Visualización de la telemetría con Azure Monitor y herramientas de terceros
La aplicación recopila datos de telemetría y ahora necesita una manera más completa de verlo. En esta unidad, verá cómo ver los datos de telemetría en muchas herramientas diferentes.
Supervisión y visualización de datos de telemetría
Una manera común de ver los datos de telemetría es usar Prometheus y Grafana juntos. Prometheus es un sistema de supervisión de código abierto que recopila métricas de la aplicación nativa de la nube. Grafana es una herramienta de visualización de código abierto que se usa para crear paneles para ver las métricas recopiladas por Prometheus.
Prometheus
El primer paso es agregar un contenedor de Prometheus y configurarlo para recopilar datos de cada microservicio de la aplicación. A continuación, agregue la biblioteca cliente de .NET de Prometheus para recopilar métricas de la aplicación.
OpenTelemetry proporciona un exportador para Prometheus. Puede agregar este exportador a la aplicación mediante la inclusión del paquete NuGet OpenTelemetry.Exporter.Prometheus.AspNetCore
. Este paquete exporta las métricas a Prometheus en un formato que puede comprender. Reemplace al exportador de consola actual por el exportador de Prometheus.
Agregue los puntos de conexión para todos los microservicios de la aplicación. Por ejemplo:
global:
scrape_interval: 1s
scrape_configs:
- job_name: 'products'
static_configs:
- targets: ['backend:8080']
- job_name: 'store'
static_configs:
- targets: ['frontend:8080']
Grafana
Grafana es una herramienta de visualización de código abierto que puede usar para crear paneles para ver las métricas recopiladas por Prometheus. Puede configurar Grafana para conectarse a Prometheus y mostrar las métricas en un panel. Al igual que antes, agrega un contenedor de Grafana a la aplicación y lo configura para conectarse a Prometheus.
Agregue Prometheus como origen de datos a Grafana en un archivo YAML:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
access: proxy
editable: true
Habilitación del seguimiento distribuido
OpenTelemetry admite Jaeger y Zipkin. En este módulo, usará Zipkin, que es un sistema de seguimiento distribuido de código abierto. Ayuda a recopilar los datos de tiempo necesarios para solucionar problemas de latencia en arquitecturas de microservicios. Administra tanto la colección como la búsqueda de estos datos.
En el proyecto de diagnóstico, debe agregar compatibilidad con Zipkin a través del paquete NuGet OpenTelemetry.Exporter.Zipkin
. A continuación, agregue código al método AddObservability
para exportar datos a Zipkin.
Profundización con Application Insights
Hay una herramienta que puede combinar las métricas y ver el seguimiento distribuido y, a continuación, combinarla con datos de los registros. Application Insights es un servicio de Application Performance Management (APM) extensible. Puede usarlo para supervisar la aplicación web activa. Application Insights detecta automáticamente anomalías en el rendimiento. Incluye herramientas de análisis eficaces que le ayudan a diagnosticar problemas y comprender lo que hacen realmente los usuarios con la aplicación.
Al igual que las herramientas anteriores, debe agregar un paquete NuGet a la solución Azure.Monitor.OpenTelemetry.AspNetCore
y, a continuación, introducir Azure Monitor como exportador al proyecto de diagnóstico.