Cómo integrar Azure API Management con Azure Application Insights
Puede integrar fácilmente Azure Application Insights con Azure API Management. Azure Application Insights es un servicio extensible para desarrolladores web que compilan y administran aplicaciones en varias plataformas. En esta guía, hará lo siguiente:
- Recorrer cada paso de la integración de Application Insights en API Management.
- Aprender estrategias para reducir el impacto en el rendimiento de la instancia del servicio API Management.
Prerrequisitos
Necesita una instancia de Azure API Management. Cree una primero.
Crear una instancia de Application Insights
Para usar Application Insights, cree una instancia del servicio Application Insights. Para crear una instancia mediante Azure Portal, vea Recursos de Application Insights basados en áreas de trabajo.
Creación de una conexión entre Application Insights y API Management
- Vaya a la instancia del servicio Azure API Management en Azure Portal.
- Seleccione Application Insights en el menú de la izquierda.
- Seleccione +Agregar.
. - Seleccione la instancia de Application Insights que ha creado antes y proporcione una descripción breve.
- Para habilitar la supervisión de la disponibilidad de su instancia de API Management en Application Insights, seleccione la casilla Add availability monitor (Agregar supervisión de la disponibilidad).
- Este parámetro valida periódicamente si el punto de conexión de servicio de API Management está respondiendo.
- Los resultados aparecerán en el panel Disponibilidad de la instancia de Application Insights.
- Seleccione Crear.
- Compruebe que el nuevo registrador de Application Insights con una clave de instrumentación aparece ahora en la lista.
Nota
En segundo plano, se crea la entidad Logger en la instancia de API Management, que contiene la clave de instrumentación de la instancia de Application Insights.
Habilitación del registro Application Insights para la API
Vaya a la instancia del servicio Azure API Management en Azure Portal.
Seleccione API del menú de la izquierda.
Haga clic en la API, en este caso, Demo Conference API. Si está configurado, seleccione una versión.
Vaya a la pestaña Configuración de la barra superior.
Desplácese hacia abajo hasta la sección Diagnostics Logs (Registros de diagnóstico).
Marque la casilla Habilitar.
Seleccione el registrador adjunto en el menú desplegable Destino.
Escriba 100 como Sampling (%) [Muestreo (%)] y seleccione la casilla Always log errors (Registrar errores siempre).
Deje el resto de los valores sin modificar.
Advertencia
Reemplazar el valor predeterminado 0 en el campo Number of payload bytes to log (Número de bytes de carga que se van a registrar) puede disminuir considerablemente el rendimiento de las API.
Seleccione Guardar.
En segundo plano, se crea una entidad Diagnostic (Diagnóstico) con el nombre
applicationinsightsen el nivel de API.
Nota
Las solicitudes se completan correctamente una vez que API Management envía toda la respuesta al cliente.
| Nombre del valor | Tipo de valor | Descripción |
|---|---|---|
| Habilitar | boolean | Especifica si el registro de esta API está habilitado. |
| Destination | Registrador de Azure Application Insights | Especifica el registrador de Azure Application Insights que se va a usar. |
| Sampling (%) [Muestreo (%)] | Decimal | Valores de 0 a 100 (porcentaje). Especifica el porcentaje de solicitudes que se registrarán en Application Insights. Un muestreo del 0 % significa que no se registrará ninguna solicitud, mientras que un muestreo del 100 % se traduce en que se registrarán todas las solicitudes. Use esta opción para reducir el efecto sobre el rendimiento al registrar las solicitudes en Application Insights. Consulte Consecuencias en el rendimiento y muestreo de registros. |
| Always log errors (Registrar errores siempre) | boolean | Si se selecciona esta opción, se registrarán todos los errores en Application Insights, independientemente del valor de Sampling (Muestreo). |
| Registro de la dirección IP del cliente | Si se selecciona esta opción, la dirección IP del cliente para las solicitudes de API se registrará en Application Insights. | |
| Nivel de detalle | Especifica el nivel de detalle. Solo se registrarán los seguimientos personalizados de mayor nivel de gravedad. Valor predeterminado: información. | |
| Protocolo de correlación | Seleccione el protocolo usado para correlacionar la telemetría enviada por varios componentes. Valor predeterminado: heredado Para más información, consulte Correlación de Telemetría en Application Insights. |
|
| Opciones básicas: encabezados que se van a registrar | list | Especifica los encabezados que se registrarán en Application Insights para las solicitudes y las respuestas. Predeterminado: no se registra ningún encabezado. |
| Opciones básicas: número de bytes de carga que se van a registrar | integer | Especifica cuántos primeros bytes del cuerpo se registrarán en Application Insights para las solicitudes y las respuestas. Valor predeterminado: 0. |
| Opciones avanzadas: Solicitud de front-end | Especifica si las solicitudes de front-end se registran en Application Insights y cuántas se registran. Frontend request es una solicitud que entra al servicio de Azure API Management. | |
| Opciones avanzadas: Respuesta de front-end | Especifica si las respuestas de front-end se registran en Application Insights y cuántas se registran. Frontend response es una respuesta que sale del servicio de Azure API Management. | |
| Opciones avanzadas: Solicitud de back-end | Especifica si las solicitudes de back-end se registran en Application Insights y cuántas se registran. Backend request es una solicitud que sale del servicio de Azure API Management. | |
| Opciones avanzadas: Respuesta de back-end | Especifica si las respuestas de back-end se registran en Application Insights y cuántas se registran. Backend response es una respuesta que entra al servicio de Azure API Management. |
Nota
Puede especificar registradores en distintos niveles:
- Registrador de una API.
- Registrador para todas las API.
Especificación de los dos:
- si son registradores distintos, se usarán los dos (registros de multiplexación);
- si son el mismo registrador con configuraciones diferentes, el correspondiente a una sola API (nivel más granular) invalidará al correspondiente a todas las API.
Qué datos se agregan a Application Insights
Application Insights recibe:
| Elemento de telemetría | Descripción |
|---|---|
| Solicitud | Para cada solicitud entrante:
|
| Dependencia | Para cada solicitud reenviada a un servicio de back-end:
|
| Exception | Para cada solicitud con error:
|
| Seguimiento | Si configura una directiva de seguimiento. El valor severity de la directiva trace debe ser igual o mayor que el valor verbosity del registro de Application Insights. |
Emisión de métricas personalizadas
Puede emitir métricas personalizadas si configura la directiva emit-metric.
Para que las métricas agregadas previamente de Application Insights estén disponibles en API Management, tendrá que habilitar manualmente las métricas personalizadas en el servicio.
- Use la directiva
emit-metriccon la API de creación o actualización. - Agregue
"metrics":truea la carga, junto con cualquier otra propiedad.
Nota
Consulte los límites de Application Insights para más información sobre el tamaño máximo y el número de métricas y eventos por instancia de Application Insights.
Consecuencias en el rendimiento y muestreo de registros
Advertencia
Registrar todos los eventos puede tener graves consecuencias en el rendimiento, según la tasa de solicitudes de entrada.
En función de las pruebas de carga internas, habilitar la característica de registro ha provocado una reducción del 40 % al 50 % en el rendimiento cuando la tasa de solicitudes superaba las 1000 solicitudes por segundo. Application Insights se ha diseñado para evaluar el rendimiento de las aplicaciones mediante análisis estadísticos. No se ha creado para:
- Ser un sistema de auditoría.
- Registrar cada solicitud individual para API de gran volumen.
Puede manipular el número de solicitudes que se registran si ajusta el valor Muestreo. Un valor del 100 % significa que se registran todas las solicitudes, mientras que un 0 % indica que no se registra nada.
Muestreo ayuda a reducir el volumen de telemetría, lo que evita de manera eficaz una degradación significativa en el rendimiento, a la vez que brinda las ventajas del registro.
Para mejorar los problemas de rendimiento, omita lo siguiente:
- Encabezados de respuesta y solicitud.
- Registro del cuerpo.
Vídeo
Pasos siguientes
- Más información sobre Azure Application Insights.
- Tenga en cuenta el registro con Azure Event Hubs.