Просмотр телеметрии с помощью Azure Monitor и сторонних средств
Приложение собирает данные телеметрии, и теперь вам нужен более полный способ его просмотра. В этом уроке вы узнаете, как просматривать данные телеметрии во многих различных средствах.
Мониторинг и просмотр данных телеметрии
Распространенный способ просмотра данных телеметрии — использовать Prometheus и Grafana вместе. Prometheus — это система мониторинга с открытым кодом, которая собирает метрики из облачного приложения. Grafana — это средство визуализации с открытым исходным кодом, которое используется для создания панелей мониторинга для просмотра метрик, собранных Prometheus.
Прометей
Первым шагом является добавление контейнера Prometheus и его настройка для сбора данных из каждой микрослужбы в приложении. Затем вы добавите клиентскую библиотеку Prometheus .NET для сбора метрик из приложения.
OpenTelemetry предоставляет экспортера для Prometheus. Вы можете добавить этот экспортер в приложение, включив пакет NuGet OpenTelemetry.Exporter.Prometheus.AspNetCore
. Этот пакет экспортирует метрики в Prometheus в формате, который он может понять. Вы заменяете текущий экспортер консоли на экспортер Prometheus.
Вы добавляете конечные точки для всех микрослужб в приложении. Например:
global:
scrape_interval: 1s
scrape_configs:
- job_name: 'products'
static_configs:
- targets: ['backend:8080']
- job_name: 'store'
static_configs:
- targets: ['frontend:8080']
Grafana
Grafana — это средство визуализации с открытым исходным кодом, которое можно использовать для создания панелей мониторинга для просмотра метрик, собранных Prometheus. Вы можете настроить Grafana для подключения к Prometheus и отображения метрик на панели мониторинга. Как и раньше, вы добавляете контейнер Grafana в приложение и настраиваете его для подключения к Prometheus.
Вы добавляете Prometheus в качестве источника данных в Grafana в файле YAML:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
access: proxy
editable: true
Включить распределенную трассировку
OpenTelemetry поддерживает как Jaeger, так и Zipkin. В этом модуле используется Zipkin, которая является системой распределенной трассировки с открытым кодом. Он помогает собирать данные о времени, необходимые для устранения проблем с задержкой в архитектурах микрослужб. Он управляет как коллекцией, так и поиском этих данных.
В проекте диагностики необходимо добавить поддержку Zipkin через пакет NuGet OpenTelemetry.Exporter.Zipkin
. Затем вы добавите код в метод AddObservability
для экспорта данных в Zipkin.
Углубите свои знания с помощью Application Insights
Существует инструмент, который может объединить просмотр метрик и просмотр распределенной трассировки, а затем объединить его с данными из журналов. Application Insights — это расширяемая служба управления производительностью приложений (APM). Его можно использовать для мониторинга динамического веб-приложения. Application Insights автоматически обнаруживает аномалии производительности. Он включает мощные средства аналитики, помогающие диагностировать проблемы и понять, что пользователи на самом деле делают с приложением.
Как и предыдущие средства, необходимо добавить пакет NuGet в решение Azure.Monitor.OpenTelemetry.AspNetCore
, а затем в качестве экспортера в проект диагностики ввести Azure Monitor.