Wyświetlanie danych telemetrycznych za pomocą usługi Azure Monitor i narzędzi innych firm

Ukończone

Aplikacja zbiera dane telemetryczne i teraz potrzebujesz bardziej kompleksowego sposobu ich wyświetlania. W tej lekcji dowiesz się, jak wyświetlać dane telemetryczne w wielu różnych narzędziach.

Monitorowanie i wyświetlanie danych telemetrycznych

Typowym sposobem wyświetlania danych telemetrycznych jest użycie rozwiązania Prometheus i Grafana razem. Prometheus to system monitorowania typu open source, który zbiera metryki z aplikacji natywnej dla chmury. Grafana to narzędzie do wizualizacji typu open source, które służy do tworzenia pulpitów nawigacyjnych w celu wyświetlania metryk zebranych przez rozwiązanie Prometheus.

Prometheus

Pierwszym krokiem jest dodanie kontenera Prometheus i skonfigurowanie go do zbierania danych z każdej mikrousługi w aplikacji. Następnie należy dodać bibliotekę klienta platformy .NET Prometheus, aby zbierać metryki z aplikacji.

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

OpenTelemetry zapewnia eksportera dla Rozwiązania Prometheus. Ten eksporter można dodać do aplikacji, dołączając OpenTelemetry.Exporter.Prometheus.AspNetCore pakiet NuGet. Ten pakiet eksportuje metryki do rozwiązania Prometheus w formacie, który może zrozumieć. Należy zastąpić bieżącego eksportera konsoli eksporterem Prometheus.

Punkty końcowe są dodawane dla wszystkich mikrousług w aplikacji. Na przykład:

global:
  scrape_interval: 1s

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

Grafana

Grafana to narzędzie do wizualizacji typu open source, którego można użyć do tworzenia pulpitów nawigacyjnych w celu wyświetlania metryk zebranych przez rozwiązanie Prometheus. Narzędzie Grafana można skonfigurować tak, aby nawiązać połączenie z rozwiązaniem Prometheus i wyświetlić metryki na pulpicie nawigacyjnym. Podobnie jak wcześniej, dodasz kontener Grafana do aplikacji i skonfigurujesz go w celu nawiązania połączenia z rozwiązaniem Prometheus.

Screenshot that shows an ASP.NET dashboard in Grafana.

Rozwiązanie Prometheus jest dodawane jako źródło danych do narzędzia Grafana w pliku YAML:

apiVersion: 1

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

Włączanie śledzenia rozproszonego

Platforma OpenTelemetry obsługuje zarówno Jaeger, jak i Zipkin. W tym module użyjesz narzędzia Zipkin, który jest rozproszonym systemem śledzenia typu open source. Pomaga zbierać dane o chronometrażu potrzebne do rozwiązywania problemów z opóźnieniami w architekturach mikrousług. Zarządza zarówno kolekcją, jak i wyszukiwaniem tych danych.

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

W projekcie diagnostycznym należy dodać obsługę pliku Zipkin za pośrednictwem OpenTelemetry.Exporter.Zipkin pakietu NuGet. Następnie dodasz kod do AddObservability metody w celu wyeksportowania danych do pliku Zipkin.

Więcej informacji można znaleźć w Szczegółowe informacje aplikacji

Istnieje narzędzie, które może łączyć przeglądanie metryk i wyświetlanie śledzenia rozproszonego, a następnie scalić je z danymi z dzienników. Application Insights to rozszerzalna usługa umożliwiająca zarządzanie wydajnością aplikacji. Można jej użyć do monitorowania aktywnej aplikacji internetowej. Aplikacja Szczegółowe informacje automatycznie wykrywa anomalie wydajności. Zawiera zaawansowane narzędzia analityczne ułatwiające diagnozowanie problemów i zrozumienie, co użytkownicy faktycznie robią z aplikacją.

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

Podobnie jak w przypadku poprzednich narzędzi, musisz dodać pakiet NuGet do rozwiązania Azure.Monitor.OpenTelemetry.AspNetCore , a następnie wprowadzić usługę Azure Monitor jako eksportera do projektu diagnostycznego.