Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta funcionalidade requer o pacote Microsoft.Testing.Extensions.OpenTelemetry NuGet.
Esta extensão integra OpenTelemetry com Microsoft. Testing.Platform (MTP), permitindo que testes emitam traços e métricas através do SDK padrão OpenTelemetry.
Observação
Esta extensão está disponível em MTP a partir da versão 2.1.0.
Importante
A partir do MTP 2.4.0, a extensão OpenTelemetry segue a versão de lançamento do MTP e os seus pontos de entrada públicos deixaram de ser experimentais.
Registo
Observação
Esta extensão não suporta registo automático. Tem de o registar manualmente, desativando o ponto de entrada gerado automaticamente (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) e chamando AddOpenTelemetryProvider no seu 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 a instrumentação, os atributos de recursos e um exportador OTLP a partir de variáveis de ambiente padrão OTEL_*, chame:
builder.AddOpenTelemetryProviderFromEnvironment();
O método só adiciona instrumentação quando configuras um exportador ou passes um callback de configuração, por isso podes deixar o registo na aplicação quando alguns ambientes não exportam telemetria.
API
AddOpenTelemetryProvider
Regista o fornecedor OpenTelemetry em ITestApplicationBuilder. Aceita dois callbacks opcionais:
-
withTracing: configura oTracerProviderBuilderpara rastreamento distribuído. -
withMetrics: configura aMeterProviderBuilderpara a recolha de métricas.
AddTestingPlatformInstrumentation
Chame TracerProviderBuilder ou MeterProviderBuilder para subscrever à fonte de atividade e ao contador incorporados Microsoft.Testing.Platform.
AddTestingPlatformResource
Chame ResourceBuilder para adicionar atributos de assembly de teste, host, sistema operativo e ambiente de execução. O detetor também identifica informações sobre o fornecedor de CI, pipeline, branch e commit para GitHub Actions, Azure Pipelines, GitLab CI e Jenkins.
AddOpenTelemetryProviderFromEnvironment
Regista o rastreio, as métricas, a deteção de recursos e um exportador OTLP a partir das variáveis de ambiente padrão do OpenTelemetry.
OTEL_SDK_DISABLED=true Desativa a integração. Configurar OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, ou OTEL_EXPORTER_OTLP_ENDPOINT para ativar a exportação.
Fonte de atividade e medidor
A extensão emite telemetria embaixo:
- Fonte da atividade:
Microsoft.Testing.Platform - Medidor:
Microsoft.Testing.Platform
Convenções semânticas
O MTP emite atributos padrão de teste OpenTelemetry e código onde existe uma convenção, incluindo test.case.name, test.case.result.status, test.suite.name, code.function.name, code.file.path, code.line.number, , code.stacktrace, , e error.type. Testes falhados definem o estado do span para Error e adicionam um exception evento.
O MTP estende as convenções com estados de resultado adicionais (skipped, error, timeout, cancelled, e unknown) e atributos de teste para conceitos que o OpenTelemetry não define. Para preservar os painéis existentes, os nomes antigos de atributos e instrumentos continuam ativados por predefinição.
Quando o processo de arranque fornece TRACEPARENT e TRACESTATE, o MTP associa a execução de teste a esse rastreio, em vez de iniciar um rastreio raiz não relacionado.
Métricas emitidas
| Instrumento | Tipo | Unidade | Description |
|---|---|---|---|
test.case.duration |
Histogram | s |
Duração do teste, agrupada por estado do resultado e conjunto. |
test.case.result.count |
Counter | {test} |
Testes concluídos, agrupados por estado dos resultados e conjunto de testes. |
test.case.active |
UpDownCounter | {test} |
Testes que estão a decorrer atualmente. |
test.run.duration |
Histogram | s |
Duração da corrida, agrupada por estado do resultado e código de saída. |
test.case.retry.count |
Counter | {test} |
Testes agendados para uma nova tentativa pela extensão de nova tentativa. |
Configuração do ambiente
| Variável de ambiente | Predefinição | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Não definido | Contexto de rastreio W3C para a execução principal. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Anexa a saída padrão capturada e o erro aos intervalos de teste. Definido para 0 quando a saída pode conter segredos. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Define o número máximo de caracteres retidos para um atributo de string. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Emite nomes antigos de atributos e de instrumentos juntamente com nomes de convenções semânticas. |
OTEL_SDK_DISABLED |
Não definido | Defina como true para desativar o SDK do OpenTelemetry. |
OTEL_SERVICE_NAME |
Não definido | Substitui o nome do serviço. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Não definido | Define o endpoint OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Não definido | Seleciona exportadores de rastreio e de métricas. |