OpenTelemetry

Voor deze functie is het NuGet-pakket Microsoft.Testing.Extensions.OpenTelemetry vereist.

Deze extensie integreert OpenTelemetry met Microsoft. Testing.Platform (MTP), waarmee testuitvoeringen traceringen en metrische gegevens kunnen verzenden via de standaard OpenTelemetry SDK.

Opmerking

Deze extensie is beschikbaar in MTP vanaf versie 2.1.0.

Belangrijk

Vanaf MTP 2.4.0 volgt de OpenTelemetry-extensie de MTP-releaseversie en zijn de openbare toegangspunten niet meer experimenteel.

Registration

Opmerking

Deze extensie biedt geen ondersteuning voor automatische registratie. U moet het handmatig registreren door het automatisch gegenereerde toegangspunt (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) uit te schakelen en aan te roepen AddOpenTelemetryProvider in uw Main methode.

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

Als u instrumentatie, resourcekenmerken en een OTLP-exporteur wilt configureren vanuit standaardomgevingsvariabelen OTEL_* , roept u het volgende aan:

builder.AddOpenTelemetryProviderFromEnvironment();

Met de methode wordt alleen instrumentatie toegevoegd wanneer u een exporteur configureert of een callback voor configuratie doorgeeft, zodat u de registratie in de toepassing kunt verlaten wanneer sommige omgevingen geen telemetrie exporteren.

API

AddOpenTelemetryProvider

Registreert de OpenTelemetry-provider op ITestApplicationBuilder. Accepteert twee optionele callbacks:

  • withTracing: hiermee configureert u de TracerProviderBuilder voor gedistribueerde tracering.
  • withMetrics: hiermee configureert u de MeterProviderBuilder verzameling voor metrische gegevens.

AddTestingPlatformInstrumentation

Roep TracerProviderBuilder aan en abonneer u op MeterProviderBuilder om de ingebouwde Microsoft.Testing.Platform activiteitsbron en meter te gebruiken.

AddTestingPlatformResource

Roep aan ResourceBuilder om testassembly-, host-, besturingssysteem- en runtimekenmerken toe te voegen. De detector identificeert ook CI-provider, pijplijn, vertakking en doorvoerinformatie voor GitHub Actions, Azure-pipelines, GitLab CI en Jenkins.

AddOpenTelemetryProviderFromEnvironment

Configureert tracering, metrische gegevens, resourcedetectie en een OTLP-exporteur op basis van standaardomgevingsvariabelen van OpenTelemetry. OTEL_SDK_DISABLED=true schakelt de integratie uit. Configureer OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER of OTEL_EXPORTER_OTLP_ENDPOINT om export te activeren.

Activiteitsbron en meter

De extensie verzendt telemetrie onder:

  • Activiteitsbron: Microsoft.Testing.Platform
  • Meter: Microsoft.Testing.Platform

Semantische conventies

MTP verzendt standaard OpenTelemetry-tests en codekenmerken waar een conventie bestaat, waaronder test.case.name, , test.case.result.statustest.suite.name, , code.function.name, code.file.path, code.line.number, , en code.stacktrace.error.type Mislukte tests stellen de spanstatus in Error op en voegen een exception gebeurtenis toe.

MTP breidt de conventies uit met aanvullende resultaatstatussen (skipped, error, timeout, cancelleden ) en unknowntestkenmerken voor concepten die niet door OpenTelemetry worden gedefinieerd. Als u bestaande dashboards wilt behouden, blijven verouderde kenmerk- en instrumentnamen standaard ingeschakeld.

Wanneer het startproces TRACEPARENT en TRACESTATE meegeeft, plaatst MTP de testuitvoering onder die trace in plaats van een ongerelateerde root-trace te starten.

Uitgezonden metingen

Instrument Typ Eenheid Description
test.case.duration Histogram s Testduur, gegroepeerd op resultaatstatus en suite.
test.case.result.count Counter {test} Voltooide tests, gegroepeerd op resultaatstatus en suite.
test.case.active UpDownCounter {test} Tests die momenteel worden uitgevoerd.
test.run.duration Histogram s Uitvoeringsduur, gegroepeerd op resultaatstatus en afsluitcode.
test.case.retry.count Counter {test} Tests gepland voor een andere poging door de extensie voor opnieuw proberen.

Omgevingsconfiguratie

Omgevingsvariabele Verstek Description
TRACEPARENT, TRACESTATE Ongedefinieerd W3C-tracecontext voor de bovenliggende run.
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT 1 Koppelt vastgelegde standaarduitvoer en -fout aan testbereiken. Ingesteld op 0 wanneer uitvoer geheimen kan bevatten.
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT 8192 Hiermee stelt u de maximumtekens in die worden bewaard voor een tekenreekskenmerk.
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES 1 Geeft verouderde kenmerk- en instrumentnamen door naast namen volgens semantische conventies.
OTEL_SDK_DISABLED Ongedefinieerd Stel in op true om de OpenTelemetry SDK uit te schakelen.
OTEL_SERVICE_NAME Ongedefinieerd Overschrijft de servicenaam.
OTEL_EXPORTER_OTLP_ENDPOINT Ongedefinieerd Hiermee stelt u het OTLP-eindpunt in.
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER Ongedefinieerd Selecteert trace- en metriekexporteurs.