Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для этой функции требуется пакет NuGet Microsoft.Testing.Extensions.OpenTelemetry .
Это расширение интегрирует OpenTelemetry с Microsoft.Testing.Platform (MTP), позволяя тестовые прогоны генерировать трассировки и метрики через стандартный SDK OpenTelemetry.
Замечание
Это расширение доступно в MTP начиная с версии 2.1.0.
Это важно
Начиная с MTP 2.4.0 расширение OpenTelemetry следует версии выпуска MTP, а ее общедоступные точки входа больше не экспериментальны.
Регистрация
Замечание
Это расширение не поддерживает автоматическую регистрацию. Его необходимо зарегистрировать вручную, отключив автоматически созданную точку входа (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) и вызвав AddOpenTelemetryProvider в методе Main .
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddOpenTelemetryProvider(
withTracing: tracing => tracing
.AddTestingPlatformInstrumentation()
.AddConsoleExporter(),
withMetrics: metrics => metrics
.AddTestingPlatformInstrumentation()
.AddConsoleExporter()
);
using var app = await builder.BuildAsync();
return await app.RunAsync();
Чтобы настроить инструментирование, атрибуты ресурсов и экспортер OTLP из стандартных OTEL_* переменных среды, вызовите:
builder.AddOpenTelemetryProviderFromEnvironment();
Этот метод добавляет инструментирование только при настройке экспортера или обратном вызове конфигурации, поэтому вы можете оставить регистрацию в приложении, если некоторые среды не экспортируют данные телеметрии.
API
AddOpenTelemetryProvider
Регистрируется провайдер OpenTelemetry в ITestApplicationBuilder. Принимает два необязательных обратных вызова:
-
withTracing: настраиваетTracerProviderBuilderдля распределенной трассировки. -
withMetrics: настраиваетMeterProviderBuilderдля сбора метрик.
AddTestingPlatformInstrumentation
Обратитесь к TracerProviderBuilder или MeterProviderBuilder, чтобы подписаться на встроенный источник активности и счетчик Microsoft.Testing.Platform.
AddTestingPlatformResource
Вызовите ResourceBuilder, чтобы добавить атрибуты тестовой сборки, хоста, операционной системы и среды выполнения. Детектор также определяет сведения о поставщике CI, пайплайне, ветке и коммите для GitHub Actions, Azure Pipelines, GitLab CI и Jenkins.
AddOpenTelemetryProviderFromEnvironment
Регистрирует трассировку, метрики, обнаружение ресурсов и экспортер OTLP из стандартных переменных среды OpenTelemetry.
OTEL_SDK_DISABLED=true отключает интеграцию. Настройте OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER или OTEL_EXPORTER_OTLP_ENDPOINT, чтобы активировать экспорт.
Источник действия и счетчик
Расширение выдает данные телеметрии в следующих условиях:
- Источник действия:
Microsoft.Testing.Platform - Метр:
Microsoft.Testing.Platform
Семантические соглашения
MTP генерирует стандартные атрибуты тестирования и кода OpenTelemetry там, где существует соответствующее соглашение, включая test.case.name, test.case.result.status, test.suite.name, code.line.number, code.file.path, code.function.name, code.stacktrace и error.type. Неудачные тесты задают состояние Error диапазона и добавляют exception событие.
MTP расширяет соглашения, добавляя дополнительные состояния результатов (skipped, error, timeout, cancelled и unknown) и тестовые атрибуты для концепций, которые OpenTelemetry не определяет. Чтобы сохранить существующие панели мониторинга, устаревшие имена атрибутов и инструментов остаются включенными по умолчанию.
Когда процесс запуска передаёт TRACEPARENT и TRACESTATE, MTP помещает тестовый запуск в эту трассировку вместо запуска новой, не связанной с ней корневой трассировки.
Сгенерированные метрики
| Инструмент | Тип | Единица | Описание |
|---|---|---|---|
test.case.duration |
Гистограмма | s |
Длительность теста, сгруппированная по статусу результата и набору тестов. |
test.case.result.count |
Счетчик | {test} |
Завершенные тесты, сгруппированные по статусу результата и набору тестов. |
test.case.active |
UpDownCounter | {test} |
Тесты, запущенные в настоящее время. |
test.run.duration |
Гистограмма | s |
Длительность выполнения, сгруппированная по состоянию результата и коду выхода. |
test.case.retry.count |
Счетчик | {test} |
Тесты, запланированные расширением повторных попыток для ещё одной попытки. |
Конфигурация среды
| Переменная среды | По умолчанию | Описание |
|---|---|---|
TRACEPARENT, TRACESTATE |
Сбросить | Контекст трассировки W3C для родительского запуска. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Присоединяет стандартные выходные данные и ошибки для тестирования диапазонов. Установите значение 0, если выходные данные могут содержать секреты. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Задает максимальные символы, сохраненные для строкового атрибута. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Выводит устаревшие имена атрибутов и инструментов вместе с именами, соответствующими семантическим соглашениям. |
OTEL_SDK_DISABLED |
Сбросить | Установите значение true, чтобы отключить пакет SDK OpenTelemetry. |
OTEL_SERVICE_NAME |
Сбросить | Переопределяет имя службы. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Сбросить | Задает конечную точку OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Сбросить | Выбирает экспортеров трассировки и метрик. |