Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta característica requiere el paquete NuGet Microsoft.Testing.Extensions.OpenTelemetry .
Esta extensión integra OpenTelemetry con Microsoft. Testing.Platform (MTP), lo que permite que las ejecuciones de pruebas emitan seguimientos y métricas a través del SDK de OpenTelemetry estándar.
Nota:
Esta extensión está disponible en MTP a partir de la versión 2.1.0.
Importante
A partir de MTP 2.4.0, la extensión OpenTelemetry sigue la versión de lanzamiento de MTP y sus puntos de entrada públicos ya no son experimentales.
Registration
Nota:
Esta extensión no admite el registro automático. Debe registrarlo manualmente deshabilitando el punto de entrada generado automáticamente (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) y llamando a AddOpenTelemetryProvider en su método 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();
Para configurar la instrumentación, los atributos de recursos y un exportador de OTLP desde variables de entorno estándar OTEL_* , llame a:
builder.AddOpenTelemetryProviderFromEnvironment();
El método añade instrumentación solo cuando se configura un exportador o se pasa una llamada de retorno de configuración, por lo que puede dejar el registro en la aplicación cuando algunos entornos no exporten telemetría.
API
AddOpenTelemetryProvider
Registra el proveedor OpenTelemetry en ITestApplicationBuilder. Acepta dos callbacks opcionales:
-
withTracing: configura elTracerProviderBuilderpara el seguimiento distribuido. -
withMetrics: configura elMeterProviderBuilderpara la recopilación de métricas.
AddTestingPlatformInstrumentation
Llame a TracerProviderBuilder o MeterProviderBuilder para suscribirse al origen y al medidor de actividad Microsoft.Testing.Platform integrados.
AddTestingPlatformResource
Llame a ResourceBuilder para agregar atributos del ensamblado de prueba, del host, del sistema operativo y del entorno de ejecución. El detector también identifica el proveedor de CI, el pipeline, la rama y la información del commit para Acciones de GitHub, Azure Pipelines, GitLab CI y Jenkins.
AddOpenTelemetryProviderFromEnvironment
Configura el trazado, las métricas, la detección de recursos y un exportador OTLP a partir de las variables de entorno estándar de OpenTelemetry.
OTEL_SDK_DISABLED=true deshabilita la integración. Configure OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTERo OTEL_EXPORTER_OTLP_ENDPOINT para activar la exportación.
Origen y medidor de actividad
La extensión emite telemetría bajo el nombre:
- Origen de la actividad:
Microsoft.Testing.Platform - Medidor:
Microsoft.Testing.Platform
Convenciones semánticas
MTP emite atributos estándar de OpenTelemetry para pruebas y código para los que existe una convención, incluidos code.stacktrace, error.type, code.file.path, code.line.number, code.function.name, test.suite.name, test.case.result.status y test.case.name. Las pruebas fallidas establecen el estado del tramo en Error y añaden un evento exception.
MTP amplía las convenciones con estados de resultado adicionales (skipped, error, timeout, cancelledy unknown) y atributos de prueba para los conceptos que OpenTelemetry no define. Para conservar los paneles existentes, los nombres de atributos e instrumentos heredados permanecen habilitados de forma predeterminada.
Cuando el proceso de lanzamiento proporciona TRACEPARENT y TRACESTATE, MTP sitúa la ejecución de prueba bajo esa traza en lugar de iniciar una traza raíz no relacionada.
Métricas emitidas
| Instrumento | Tipo | Unidad | Description |
|---|---|---|---|
test.case.duration |
Histograma | s |
Duración de la prueba, agrupada por estado del resultado y conjunto de pruebas. |
test.case.result.count |
Contador | {test} |
Pruebas completadas, agrupadas por estado del resultado y conjunto de pruebas. |
test.case.active |
UpDownCounter | {test} |
Pruebas que se están ejecutando actualmente. |
test.run.duration |
Histograma | s |
Duración de la ejecución, agrupada por estado de resultado y código de salida. |
test.case.retry.count |
Contador | {test} |
Pruebas programadas para un nuevo intento mediante la extensión de reintentos. |
Configuración de entorno
| Variable del entorno | Predeterminado | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Unset | Contexto de rastreo del W3C para la ejecución principal. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Adjunta la salida estándar y los errores capturados a los intervalos de prueba. Establézcalo en 0 cuando la salida pueda contener secretos. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Establece los caracteres máximos retenidos para un atributo de cadena. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Emite nombres de atributos e instrumentos heredados junto con los nombres según las convenciones semánticas. |
OTEL_SDK_DISABLED |
Unset | Establézcalo en true para deshabilitar el SDK de OpenTelemetry. |
OTEL_SERVICE_NAME |
Unset | Invalida el nombre del servicio. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Unset | Establece el punto de conexión de OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Unset | Selecciona exportadores de trazas y métricas. |