Visa telemetri med Azure Monitor och verktyg från tredje part

Slutförd

Din app samlar in telemetridata och du behöver nu ett mer omfattande sätt att visa dem. I den här lektionen får du se hur du visar telemetridata i många olika verktyg.

Övervaka och visa telemetridata

Ett vanligt sätt att visa telemetridata är att använda Prometheus och Grafana tillsammans. Prometheus är ett övervakningssystem med öppen källkod som samlar in mått från din molnbaserade app. Grafana är ett visualiseringsverktyg med öppen källkod som du använder för att skapa instrumentpaneler för att visa de mått som samlas in av Prometheus.

Prometheus

Det första steget är att lägga till en Prometheus-container och konfigurera den för att samla in data från varje mikrotjänst i din app. Sedan lägger du till Prometheus .NET-klientbiblioteket för att samla in mått från appen.

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

OpenTelemetry tillhandahåller en exportör för Prometheus. Du kan lägga till den här exportören i din app genom att inkludera OpenTelemetry.Exporter.Prometheus.AspNetCore NuGet-paketet. Det här paketet exporterar mått till Prometheus i ett format som det kan förstå. Du ersätter den aktuella konsolexportören med Prometheus-exportören.

Du lägger till slutpunkterna för alla mikrotjänster i din app. Till exempel:

global:
  scrape_interval: 1s

scrape_configs:
  - job_name: 'products'
    static_configs:
      - targets: ['backend:8080']
  - job_name: 'store'
    static_configs:
      - targets: ['frontend:8080']

Grafana

Grafana är ett visualiseringsverktyg med öppen källkod som du kan använda för att skapa instrumentpaneler för att visa de mått som samlas in av Prometheus. Du kan konfigurera Grafana för att ansluta till Prometheus och visa måtten på en instrumentpanel. Precis som tidigare lägger du till en Grafana-container i din app och konfigurerar den för att ansluta till Prometheus.

Screenshot that shows an ASP.NET dashboard in Grafana.

Du lägger till Prometheus som en datakälla i Grafana i en YAML-fil:

apiVersion: 1

datasources:
- name: Prometheus
  type: prometheus
  url: http://prometheus:9090 
  isDefault: true
  access: proxy
  editable: true

Aktivera distribuerad spårning

OpenTelemetry har stöd för både Jaeger och Zipkin. I den här modulen använder du Zipkin, som är ett distribuerat spårningssystem med öppen källkod. Den hjälper till att samla in tidsdata som behövs för att felsöka problem med svarstider i mikrotjänstarkitekturer. Den hanterar både insamling och sökning av dessa data.

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

I diagnostikprojektet måste du lägga till stöd för Zipkin via OpenTelemetry.Exporter.Zipkin NuGet-paketet. Sedan lägger du till kod i AddObservability metoden för att exportera data till Zipkin.

Gå djupare med Application Insights

Det finns ett verktyg som kan kombinera att titta på mått och visa distribuerad spårning och sedan sammanfoga den med data från loggar. Application Insights är en utökningsbar APM-tjänst (Application Performance Management). Du kan använda den för att övervaka ditt livewebbprogram. Application Insights identifierar automatiskt prestandaavvikelser. Den innehåller kraftfulla analysverktyg som hjälper dig att diagnostisera problem och förstå vad användarna faktiskt gör med din app.

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

Precis som föregående verktyg måste du lägga till ett NuGet-paket i din lösning Azure.Monitor.OpenTelemetry.AspNetCore och sedan introducera Azure Monitor som exportör i diagnostikprojektet.