Visualización de la telemetría con Azure Monitor y herramientas de terceros

Completado

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.

Screenshot that shows the configured Prometheus app showing the health of the eShopLite app.

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.

Screenshot that shows an ASP.NET dashboard in Grafana.

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.

Screenshot that shows Zipkin showing the dependencies of the eShopLite app Store sending requests to the Products service.

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.

Screenshot that shows Application Insights showing the health of the eShopLite app.

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.