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 agrega instrumentación solo cuando se configura un exportador o se pasa una devolución de llamada de configuración, por lo que puede dejar el registro en la aplicación cuando algunos entornos no exportan 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 de resultado y conjunto. |
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 otro intento por la extensión de reintento. |
Configuración de entorno
| Variable del entorno | Predeterminado | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Anular | Contexto de seguimiento de W3C para la ejecución primaria. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Asocia los intervalos de salida y error estándar capturados a intervalos de pruebas. 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 heredados de atributos e instrumentos junto con nombres de convención semántica. |
OTEL_SDK_DISABLED |
Anular | Establézcalo en true para deshabilitar el SDK de OpenTelemetry. |
OTEL_SERVICE_NAME |
Anular | Invalida el nombre del servicio. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Anular | Establece el punto de conexión de OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Anular | Selecciona exportadores de trazas y métricas. |