Telemetrie weergeven met Azure Monitor en hulpprogramma's van derden

Voltooid

Uw app verzamelt telemetriegegevens en u hebt nu een uitgebreidere manier nodig om deze weer te geven. In deze les ziet u hoe u telemetriegegevens in veel verschillende hulpprogramma's kunt weergeven.

Telemetriegegevens bewaken en weergeven

Een veelvoorkomende manier om telemetriegegevens weer te geven, is door Prometheus en Grafana samen te gebruiken. Prometheus is een opensource-bewakingssysteem dat metrische gegevens verzamelt van uw cloudeigen app. Grafana is een opensource-visualisatieprogramma dat u gebruikt om dashboards te maken om de metrische gegevens weer te geven die door Prometheus zijn verzameld.

Prometheus

De eerste stap is het toevoegen van een Prometheus-container en het configureren voor het verzamelen van gegevens van elke microservice in uw app. Vervolgens voegt u de Prometheus .NET-clientbibliotheek toe om metrische gegevens uit de app te verzamelen.

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

OpenTelemetry biedt een exporteur voor Prometheus. U kunt deze exporteur toevoegen aan uw app door het OpenTelemetry.Exporter.Prometheus.AspNetCore NuGet-pakket op te slaan. Met dit pakket worden metrische gegevens geƫxporteerd naar Prometheus in een indeling die het kan begrijpen. U vervangt de huidige consoleexporteur door de Prometheus-exporteur.

U voegt de eindpunten toe voor alle microservices in uw app. Voorbeeld:

global:
  scrape_interval: 1s

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

Grafana

Grafana is een opensource-visualisatieprogramma dat u kunt gebruiken om dashboards te maken om de metrische gegevens weer te geven die door Prometheus zijn verzameld. U kunt Grafana configureren om verbinding te maken met Prometheus en de metrische gegevens weer te geven in een dashboard. Net als voorheen voegt u een Grafana-container toe aan uw app en configureert u deze om verbinding te maken met Prometheus.

Screenshot that shows an ASP.NET dashboard in Grafana.

U voegt Prometheus als gegevensbron toe aan Grafana in een YAML-bestand:

apiVersion: 1

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

Gedistribueerde tracering inschakelen

OpenTelemetry biedt ondersteuning voor zowel Jaeger als Zipkin. In deze module gebruikt u Zipkin, een opensource gedistribueerd traceringssysteem. Het helpt tijdsgegevens te verzamelen die nodig zijn om latentieproblemen in microservicearchitecturen op te lossen. Het beheert zowel de verzameling als het opzoeken van deze gegevens.

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

In uw diagnostische project moet u ondersteuning voor Zipkin toevoegen via het OpenTelemetry.Exporter.Zipkin NuGet-pakket. Vervolgens voegt u code toe aan de AddObservability methode om gegevens te exporteren naar Zipkin.

Ga dieper in op Application Insights

Er is een hulpprogramma dat het bekijken van metrische gegevens kan combineren en gedistribueerde tracering kan bekijken en deze vervolgens kan samenvoegen met gegevens uit logboeken. Application Insights is een uitbreidbare APM-service (Application Performance Management). U kunt deze gebruiken om uw live webtoepassing te bewaken. Application Insights detecteert automatisch prestatieafwijkingen. Het bevat krachtige analysehulpprogramma's waarmee u problemen kunt diagnosticeren en inzicht krijgt in wat gebruikers daadwerkelijk met uw app doen.

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

Net als bij de voorgaande hulpprogramma's moet u een NuGet-pakket toevoegen aan uw oplossing Azure.Monitor.OpenTelemetry.AspNetCore en vervolgens Azure Monitor introduceren als exporteur in uw diagnostische project.