Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esse recurso requer o pacote NuGet Microsoft.Testing.Extensions.OpenTelemetry .
Essa extensão integra OpenTelemetry com Microsoft. Testing.Platform (MTP), permitindo execuções de teste para emitir rastreamentos e métricas por meio do SDK do OpenTelemetry padrão.
Observação
Essa extensão está disponível no MTP a partir da versão 2.1.0.
Importante
A partir da versão 2.4.0 do MTP, a extensão OpenTelemetry passa a seguir a versão de lançamento do MTP, e seus pontos de entrada públicos deixam de ser experimentais.
Registration
Observação
Essa extensão não dá suporte ao registro automático. Você deve registrá-lo manualmente desabilitando 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 recurso e um exportador OTLP a partir de variáveis de ambiente padrão OTEL_*, chame:
builder.AddOpenTelemetryProviderFromEnvironment();
O método adiciona instrumentação somente quando você configura um exportador ou passa um callback de configuração, de modo que você pode manter o registro no aplicativo mesmo quando alguns ambientes não exportam telemetria.
API
AddOpenTelemetryProvider
Registra o provedor OpenTelemetry em ITestApplicationBuilder. Aceita dois retornos de chamada opcionais:
-
withTracing: configura oTracerProviderBuilderpara rastreamento distribuído. -
withMetrics: configura aMeterProviderBuilderpara a coleta de métricas.
AddTestingPlatformInstrumentation
Use TracerProviderBuilder ou MeterProviderBuilderpara assinar a origem de atividades e o medidor integrados Microsoft.Testing.Platform.
AddTestingPlatformResource
Use ResourceBuilder para adicionar atributos do assembly de teste, do host, do sistema operacional e do tempo de execução. O detector também identifica informações sobre o provedor de CI, o pipeline, a branch e o commit para GitHub Actions, Azure Pipelines, GitLab CI e Jenkins.
AddOpenTelemetryProviderFromEnvironment
Registra rastreamento, métricas, detecção de recursos e um exportador OTLP com base nas variáveis de ambiente padrão do OpenTelemetry.
OTEL_SDK_DISABLED=true desabilita a integração. Configure OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER ou OTEL_EXPORTER_OTLP_ENDPOINT para ativar a exportação.
Origem e métricas de atividade
A extensão emite telemetria em:
- Origem da atividade:
Microsoft.Testing.Platform - Medidor:
Microsoft.Testing.Platform
Convenções semânticas
O MTP emite atributos padrão de teste e código do OpenTelemetry para os quais 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 com falha definem o status do intervalo como Error e adicionam um evento exception.
O MTP estende as convenções com estados de resultado adicionais (skipped, error, , timeoute cancelled) e unknownatributos de teste para conceitos que o OpenTelemetry não define. Para preservar os painéis existentes, os atributos legados e os nomes de instrumentos permanecem habilitados por padrão.
Quando o processo de inicialização fornece TRACEPARENT e TRACESTATEo MTP coloca a execução de teste sob esse rastreamento em vez de iniciar um rastreamento raiz não relacionado.
Métricas emitidas
| Instrumento | Tipo | Unidade | Descrição |
|---|---|---|---|
test.case.duration |
Histograma | s |
Duração do teste, agrupada por status de resultado e pacote. |
test.case.result.count |
Contador | {test} |
Testes concluídos, agrupados por status de resultado e pacote. |
test.case.active |
UpDownCounter | {test} |
Testes que estão em execução no momento. |
test.run.duration |
Histograma | s |
Duração da execução, agrupada por status de resultado e código de saída. |
test.case.retry.count |
Contador | {test} |
Testes agendados para uma nova tentativa pela extensão de nova tentativa. |
Configuração do ambiente
| Variável de ambiente | Default | Descrição |
|---|---|---|
TRACEPARENT, TRACESTATE |
Remover definição | Contexto de rastreamento 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. Defina como 0 quando a saída puder conter segredos. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Define o máximo de caracteres retidos para um atributo de cadeia de caracteres. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Emite nomes de atributos e instrumentos herdados junto com nomes da convenção semântica. |
OTEL_SDK_DISABLED |
Remover definição | Defina como true para desabilitar o SDK do OpenTelemetry. |
OTEL_SERVICE_NAME |
Remover definição | Substitui o nome do serviço. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Remover definição | Define o ponto de extremidade OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Remover definição | Seleciona exportadores de rastros e métricas. |