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


Использование открытых трассировок телеметрии и действий

Построитель данных (DAB) поддерживает OpenTelemetry для распределенной трассировки и метрик, что позволяет отслеживать и диагностировать поведение приложения в REST, GraphQL, операциях базы данных и внутреннем ПО промежуточного слоя.

Трассировки построителя данных

DAB создает "действия" OpenTelemetry для:

  • Входящие HTTP-запросы (конечные точки REST)
  • операции GraphQL
  • Запросы базы данных (на сущность)
  • Внутренние действия ПО промежуточного слоя (например, обработка запросов, отслеживание ошибок)

Каждое действие включает подробные теги (метаданные), такие как:

  • http.method, , http.urlhttp.querystringstatus.code
  • action.type (CRUD, операция GraphQL)
  • user.role, user-agent
  • data-source.type, data-source.name
  • api.type (REST или GraphQL)

Ошибки и исключения также трассируются с подробными сведениями.

Метрики построителя данных

DAB выдает метрики OpenTelemetry, такие как:

  • Всего запросов: счетчик, помеченный методом HTTP, состоянием, конечной точкой и типом API.
  • Ошибки: счетчик, помеченный типом ошибки, методом HTTP, состоянием, конечной точкой и типом API.
  • Длительность запроса: гистограмма (в миллисекундах), помеченная методом HTTP, состоянием, конечной точкой и типом API.
  • Активные запросы: счетчик вверх и вниз для одновременных запросов.

Метрики используют API .NET Meter и пакет SDK OpenTelemetry.

Configuration

open-telemetry Добавьте раздел runtime.telemetry в файл конфигурации.

{
    "runtime": {
        "telemetry": {
            "open-telemetry": {
                "enabled": true,
                "endpoint": "http://otel-collector:4317",
                "service-name": "dab",
                "exporter-protocol": "grpc"
            }
        }
    }
}

Параметры командной строки

Настройте OpenTelemetry с помощью флагов CLI:

  • dab configure --otel-enabled true
  • dab configure --otel-endpoint "http://otel-collector:4317"
  • dab configure --otel-protocol "grpc"
  • dab configure --otel-service-name "dab"
  • dab configure --otel-headers

Экспорт и визуализация

Данные телеметрии экспортируются через пакет SDK для .NET OpenTelemetry в настроенную серверную часть, например Azure Monitor или Jaeger. Убедитесь, что серверная часть запущена и доступен по указанному адресу endpoint.

Заметки о реализации

  • Трассировки и метрики охватывают все операции REST, GraphQL и базы данных
  • Обработчики по промежуточного слоя и ошибок также выдают данные телеметрии
  • Контекст распространяется с помощью запросов