Поделиться через


.NET .NET Aspire телеметрия

Одной из основных целей .NET.NET Aspire является обеспечение простой отладки и диагностики приложений. .NET .NET Aspire интеграции автоматически настраивают конфигурации логирования, трассировки и метрик, которые иногда называются основными компонентами наблюдаемости, с помощью SDK .NETOpenTelemetry.

  • ведение журнала. События журнала описывают то, что происходит при запуске приложения. Для интеграций .NET.NET Aspire по умолчанию включен базовый набор, и более обширное логирование может быть включено по запросу для диагностики конкретных проблем.

  • трассировки: трассировки коррелируют события журнала, которые являются частью одного логического действия (например, обработка одного запроса), даже если они распределяются по нескольким компьютерам или процессам.

  • метрики: Метрики отражают характеристики эффективности и состояния приложения в виде простых числовых значений. ** В результате они имеют низкую нагрузку на производительность, и многие службы настраивают их как постоянно активную телеметрию. Это также делает их подходящими для активации оповещений при обнаружении потенциальных проблем.

Вместе эти типы телеметрии позволяют получить аналитические сведения о поведении и производительности приложения с помощью различных средств мониторинга и анализа. В зависимости от резервной службы некоторые интеграции могут поддерживать только некоторые из этих функций.

интеграция .NET AspireOpenTelemetry

Пакет SDK включает функции сбора данных из нескольких API , включая , , и . Эти API соответствуют функциям телеметрии, таким как ведение журнала, трассировка и метрики. .NET Aspire проекты определяют конфигурации пакета SDK OpenTelemetry в проекте ServiceDefaults. Для получения дополнительной информации см. настройки по умолчанию сервиса .NET.NET Aspire.

По умолчанию метод ConfigureOpenTelemetry включает ведение журнала, трассировку и метрики для приложения. Он также добавляет экспортеров для этих точек данных, чтобы их можно было собирать другими средствами мониторинга.

Экспорт данных OpenTelemetry для мониторинга

Пакет SDK для .NETOpenTelemetry упрощает экспорт этих данных телеметрии в хранилище данных или средство создания отчетов. Механизм экспорта телеметрии основан на протоколе OpenTelemetry (OTLP), который служит стандартизованным подходом для передачи данных телеметрии через REST или gRPC. Метод ConfigureOpenTelemetry также регистрирует экспортеров для предоставления данных телеметрии другим средствам мониторинга, таким как Prometheus или Azure Monitor. Дополнительные сведения см. в конфигурации OpenTelemetry.

переменные среды OpenTelemetry

OpenTelemetry содержит список известных переменных среды, которые настраивают наиболее важное поведение для сбора и экспорта данных телеметрии. OpenTelemetry SDK, включая SDK .NET, поддерживают чтение этих переменных.

.NET Aspire проекты запускаются с переменными среды, которые настраивают имя и идентификатор приложения в экспортируемой телеметрии и задают конечную точку адреса server OTLP для экспорта данных. Например:

  • OTEL_SERVICE_NAME = myfrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1ee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

Переменные среды автоматически задаются в локальной разработке.

.NET .NET Aspire локальной разработки

При создании проекта .NET Aspire панель мониторинга .NET Aspire предоставляет пользовательский интерфейс для просмотра телеметрии приложения по умолчанию. Данные телеметрии отправляются на панель мониторинга с помощью OTLP, а панель мониторинга реализует OTLP server для получения данных телеметрии и их хранения в памяти. Рабочий процесс отладки .NET.NET Aspire выглядит следующим образом:

  • Разработчик запускает проект .NET.NET Aspire с отладкой, нажимает F5.
  • .NET .NET Aspire запуск панели мониторинга и панели управления разработчика (DCP).
  • Конфигурация приложения выполняется в проекте AppHost .
    • OpenTelemetry переменные среды автоматически добавляются в .NET проекты во время настройки приложения.
    • DCP предоставляет имя (OTEL_SERVICE_NAME) и идентификатор (OTEL_RESOURCE_ATTRIBUTES) приложения в экспортируемой телеметрии.
    • Конечная точка OTLP — это порт HTTP/2, запущенный панелью мониторинга. Эта конечная точка устанавливается в переменной среды OTEL_EXPORTER_OTLP_ENDPOINT для каждого проекта. Это позволяет проектам экспортировать данные телеметрии обратно на панель мониторинга.
    • Небольшие интервалы экспорта (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL), чтобы данные были быстро доступны на панели мониторинга. Небольшие значения используются в локальной разработке для определения приоритета отклика панели мониторинга по сравнению с эффективностью.
  • DCP запускает настроенные проекты, контейнеры и исполняемые файлы.
  • После запуска приложения отправляют данные телеметрии на панель мониторинга.
  • Панель мониторинга отображает данные телеметрии практически в режиме реального времени для всех проектов .NET.NET Aspire.

Все эти действия выполняются внутри системы, поэтому в большинстве случаев разработчику просто нужно запустить приложение, чтобы увидеть этот процесс в действии.

развертывание .NET.NET Aspire

Следует настроить в средах развертывания .NET Aspire переменные среды OpenTelemetry, соответствующие их среде. Например, OTEL_EXPORTER_OTLP_ENDPOINT следует настроить для локального сборщика OTLP данной среды или для службы мониторинга.

.NET .NET Aspire телеметрия работает лучше всего в средах, поддерживающих OTLP. Экспорт OTLP отключен, если OTEL_EXPORTER_OTLP_ENDPOINT не настроен.

Для получения дополнительной информации см. развертывания .NET.NET Aspire.