Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Eigendom van de provider kiezen
Kies of MTP of uw toepassing eigenaar is van de OpenTelemetry-providers.
Providers van MTP gebruiken
Schakel het automatisch gegenereerde startpunt (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) uit en roep AddOpenTelemetryProvider aan 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.
Gebruik toepassingseigen providers
Vanaf MTP 2.5 previewversie roept u AddTestingPlatformDiagnostics aan wanneer uw toepassing OpenTelemetry al configureert via Aspire ServiceDefaults, Microsoft.Extensions.Hosting of een andere composition root. Met deze methode worden de activiteitsbron en - Microsoft.Testing.Platform meter geactiveerd zonder een TracerProvider of MeterProviderte maken, leeg te maken of te verwijderen.
Registreer de provider die eigendom is van de toepassing met AddTestingPlatformInstrumentation bij de tracing- en metriekbuilders. De toepassing behoudt de regie over de providers, exporteurs, resource-identiteit en opschoning.
Voor een door MSBuild gegenereerd gehost toegangspunt verwijs je naar Microsoft.Testing.Extensions.Hosting, stel je TestingPlatformHostFactory in op de hostfactorymethode en stel je het volgende in:
<TestingPlatformOpenTelemetryMode>HostOwned</TestingPlatformOpenTelemetryMode>
HostOwned roept alleen AddTestingPlatformDiagnosticsaan; er worden geen providers gemaakt of de resource-id van de host vervangen. Zie Hostintegratie voor de levenscyclus van de host en de fabrieksvereisten.
API
AddTestingPlatformDiagnostics
Activeert de activiteitsbron en meter van MTP voor listeners die eigendom zijn van de toepassing of voor OpenTelemetry-providers, zonder het eigendom van de provider over te dragen aan MTP.
AddOpenTelemetryProvider
Registreert de OpenTelemetry-provider op ITestApplicationBuilder. Accepteert twee optionele callbacks:
-
withTracing: hiermee configureert u deTracerProviderBuildervoor gedistribueerde tracering. -
withMetrics: hiermee configureert u deMeterProviderBuilderverzameling 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.
Hulpfuncties voor specifieke resources
Voor een provider die eigendom is van een toepassing, roept u AddTestingPlatformTestResource aan om testspecifieke identiteit toe te voegen en AddTestingPlatformCIResource de herkomst van CI en broncodebeheer toe te voegen. Deze gerichte helpers vervangen niet de kenmerken van de toepassing service.*, host.*, os.* of process.*.
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.
MSTest-uitvoeringsspans
Vanaf MSTest 4.5 en MTP 2.5 preview gebruiken systeemeigen MSTest-uitvoeringen één canonieke MTP-activiteit voor elke testuitvoering. MSTest maakt de activiteit actueel terwijl de testconstructor, initialisatie, testmethode, opschoning en aangepaste TestMethodAttribute code worden uitgevoerd. Automatisch geïnstrumenteerde activiteiten HttpClient, SQL, Entity Framework, WCF en aangepaste activiteiten worden daardoor onderliggende elementen van de testactiviteit.
MTP voegt het uiteindelijke resultaat, de timing, uitvoer en artefacten toe aan dezelfde activiteit en stopt het bij de eindtijd van de uitvoering die door MSTest is vastgelegd. Dit gedrag voorkomt dubbele frameworks en resultatenspanne en voorkomt dat asynchrone resultaatverwerking de testduur vergroot.
Testframeworks die niet gebruikmaken van de canonieke uitvoerings-API behouden de compatibiliteitstopologie: de uitvoeringsactiviteit van het framework en de MTP-resultaatactiviteit blijven hetzelfde en de resultaatactiviteit is gekoppeld aan de activiteit die actueel was toen het framework de update in uitvoering publiceerde.
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. |