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.

Prometeusz

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.

Zrzut ekranu przedstawiający skonfigurowaną aplikację Prometheus pokazującą kondycję aplikacji eShopLite.

OpenTelemetry zapewnia eksportera dla Rozwiązania Prometheus. Ten eksporter można dodać do aplikacji, dodając pakiet NuGet OpenTelemetry.Exporter.Prometheus.AspNetCore. 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. Możesz skonfigurować narzędzie Grafana, 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.

Zrzut ekranu przedstawiający pulpit nawigacyjny ASP.NET w narzędziu 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 czasie potrzebne do diagnostyki problemów z opóźnieniami w architekturach mikrousług. Zarządza zarówno kolekcją, jak i wyszukiwaniem tych danych.

Zrzut ekranu przedstawiający Zipkina pokazującego zależności aplikacji eShopLite Store, która wysyła żądania do usługi Products.

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

Szczegółowe informacje o usłudze Application Insights

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 zarządzania wydajnością aplikacji (APM). Można jej użyć do monitorowania aktywnej aplikacji internetowej. Usługa Application Insights 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ą.

Zrzut ekranu przedstawiający usługę Application Insights przedstawiającą kondycję aplikacji eShopLite.

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.