Zobrazení telemetrie pomocí služby Azure Monitor a nástrojů třetích stran

Dokončeno

Vaše aplikace shromažďuje telemetrická data a teď potřebujete komplexnější způsob, jak je zobrazit. V této lekci se dozvíte, jak zobrazit telemetrická data v mnoha různých nástrojích.

Monitorování a zobrazení telemetrických dat

Běžným způsobem, jak zobrazit telemetrická data, je společně používat Prometheus a Grafana. Prometheus je opensourcový monitorovací systém, který shromažďuje metriky z vaší aplikace nativní pro cloud. Grafana je opensourcový vizualizační nástroj, který slouží k vytváření řídicích panelů k zobrazení metrik shromážděných nástrojem Prometheus.

Prométheus

Prvním krokem je přidání kontejneru Prometheus a jeho konfigurace pro shromažďování dat z každé mikroslužby ve vaší aplikaci. Pak přidáte klientskou knihovnu Prometheus .NET, která bude shromažďovat metriky z aplikace.

snímek obrazovky zobrazující nakonfigurovanou aplikaci Prometheus zobrazující stav aplikace eShopLite.

OpenTelemetry poskytuje vývozce pro Prometheus. Tento exportér můžete do aplikace přidat zahrnutím balíčku NuGet OpenTelemetry.Exporter.Prometheus.AspNetCore. Tento balíček exportuje metriky do prometheus ve formátu, kterému dokáže porozumět. Aktuálního exportéra konzoly vyměníte za exportéra Prometheus.

Přidáte koncové body pro všechny mikroslužby ve vaší aplikaci. Například:

global:
  scrape_interval: 1s

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

Grafana

Grafana je opensourcový vizualizační nástroj, pomocí kterého můžete vytvářet řídicí panely k zobrazení metrik shromážděných nástrojem Prometheus. Grafana můžete nakonfigurovat tak, aby se připojil k Systému Prometheus, a zobrazit metriky na řídicím panelu. Stejně jako předtím přidáte do aplikace kontejner Grafana a nakonfigurujete ho tak, aby se připojil k Prometheus.

snímek obrazovky znázorňující řídicí panel ASP.NET v Grafana

Do souboru YAML přidáte Prometheus jako zdroj dat v Grafaně:

apiVersion: 1

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

Povolení distribuovaného trasování

OpenTelemetry podporuje Jaeger i Zipkin. V tomto modulu použijete Zipkin, což je opensourcový distribuovaný trasovací systém. Pomáhá shromažďovat data časování potřebná k řešení problémů s latencí v architekturách mikroslužeb. Spravuje jak kolekci, tak vyhledávání těchto dat.

Snímek obrazovky zobrazující Zipkin zobrazující závislosti aplikace eShopLite Store odesílající žádosti do služby Products

V projektu diagnostiky je potřeba přidat podporu zipkinu prostřednictvím balíčku NuGet OpenTelemetry.Exporter.Zipkin. Pak do metody AddObservability přidáte kód pro export dat do zipkinu.

Podrobnější informace o Application Insights

Existuje nástroj, který může zkombinovat zobrazení metrik a zobrazení distribuovaného trasování a pak ho sloučit s daty z protokolů. Application Insights je rozšiřitelná služba správy výkonu aplikací (APM). Můžete ho použít k monitorování živé webové aplikace. Application Insights automaticky detekuje anomálie výkonu. Obsahuje výkonné analytické nástroje, které vám pomůžou diagnostikovat problémy a pochopit, co uživatelé ve skutečnosti s vaší aplikací dělají.

snímek obrazovky zobrazující Application Insights zobrazující stav aplikace eShopLite.

Stejně jako v předchozích nástrojích musíte do svého řešení Azure.Monitor.OpenTelemetry.AspNetCorepřidat balíček NuGet a pak do projektu diagnostiky zavést Azure Monitor jako vývozce.