OpenTelemetry

Den här funktionen kräver NuGet-paketet Microsoft.Testing.Extensions.OpenTelemetry .

Det här tillägget integrerar OpenTelemetry med Microsoft. Testing.Platform (MTP), vilket gör att testkörningar kan generera spårningar och mått via standard-OpenTelemetry SDK.

Anmärkning

Det här tillägget är tillgängligt i MTP från och med version 2.1.0.

Viktigt!

Från och med MTP 2.4.0 följer OpenTelemetry-tillägget MTP-versionen och dess offentliga startpunkter är inte längre experimentella.

Registration

Anmärkning

Det här tillägget stöder inte automatisk registrering. Du måste registrera den manuellt genom att inaktivera den automatiskt genererade startpunkten (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) och anropa AddOpenTelemetryProvider i din Main metod.

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();

Om du vill konfigurera instrumentation, resursattribut och en OTLP-exportör från standardmiljövariabler OTEL_* anropar du:

builder.AddOpenTelemetryProviderFromEnvironment();

Metoden lägger bara till instrumentation när du konfigurerar en exportör eller skickar ett konfigurationsåteranrop, så att du kan lämna registreringen i programmet när vissa miljöer inte exporterar telemetri.

API (gränssnitt för programmering av applikationer)

AddOpenTelemetryProvider

Registrerar OpenTelemetry-providern på ITestApplicationBuilder. Accepterar två valfria återanrop:

  • withTracing: konfigurerar TracerProviderBuilder för distribuerad spårning.
  • withMetrics: konfigurerar MeterProviderBuilder för insamling av metrik.

AddTestingPlatformInstrumentation

Anropa TracerProviderBuilder eller MeterProviderBuilder för att prenumerera på den inbyggda Microsoft.Testing.Platform-aktivitetskällan och mätaren.

AddTestingPlatformResource

Anropa ResourceBuilder för att lägga till testsammansättnings-, värd-, operativsystems- och körningsattribut. Detektorn identifierar även CI-provider, pipeline, gren och incheckningsinformation för GitHub Actions, Azure-pipelines, GitLab CI och Jenkins.

AddOpenTelemetryProviderFromEnvironment

Registrerar spårning, mått, resursidentifiering och en OTLP-exportör från standardvariabler för OpenTelemetry-miljön. OTEL_SDK_DISABLED=true inaktiverar integreringen. Konfigurera OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTEReller OTEL_EXPORTER_OTLP_ENDPOINT för att aktivera export.

Aktivitetskälla och mätare

Tillägget genererar telemetri under:

  • Aktivitetskälla: Microsoft.Testing.Platform
  • Mätare: Microsoft.Testing.Platform

Semantiska konventioner

MTP genererar standardattribut för OpenTelemetry-testning och kod där det finns en konvention, inklusive test.case.name, test.case.result.status, test.suite.namecode.function.name, code.file.path, , code.line.number, code.stacktraceoch error.type. Misslyckade tester anger span-status till Error och lägger till en exception händelse.

MTP utökar konventionerna med ytterligare resultattillstånd (skipped, error, timeout, cancelled och unknown) och testattribut för begrepp som OpenTelemetry inte definierar. För att bevara befintliga instrumentpaneler förblir äldre attribut och instrumentnamn aktiverade som standard.

När startprocessen levererar TRACEPARENT och TRACESTATE placerar MTP testkörningen under det spåret i stället för att starta ett orelaterat rotspår.

Utskickade mätvärden

Instrument Type Enhet Description
test.case.duration Histogram s Testvaraktighet, grupperad efter resultatstatus och svit.
test.case.result.count Counter {test} Slutförda tester, grupperade efter resultatstatus och svit.
test.case.active Upp-och-ner-räknare {test} Tester som körs för närvarande.
test.run.duration Histogram s Körningsvaraktighet, grupperad efter resultatstatus och slutkod.
test.case.retry.count Counter {test} Tester som schemalagts för ett nytt försök av återförsökstillägget.

Miljökonfiguration

Miljövariabel Standardinställning Description
TRACEPARENT, TRACESTATE Inaktivera W3C-spårningskontext för den överordnade körningen.
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT 1 Kopplar insamlade standardutdata och fel till testintervall. Ange till 0 när utdata kan innehålla hemligheter.
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT 8192 Anger maximalt antal tecken som behålls för ett strängattribut.
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES 1 Genererar äldre attribut och instrumentnamn tillsammans med semantiska konventionsnamn.
OTEL_SDK_DISABLED Inaktivera Ange till true för att inaktivera OpenTelemetry-SDK:n.
OTEL_SERVICE_NAME Inaktivera Åsidosätter tjänstnamnet.
OTEL_EXPORTER_OTLP_ENDPOINT Inaktivera Anger OTLP-slutpunkten.
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER Inaktivera Väljer spår- och mätvärdesexportörer.