Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Feature erfordert das NuGet-Paket "Microsoft.Testing.Extensions.OpenTelemetry ".
Diese Erweiterung integriert OpenTelemetry in Microsoft.Testing.Platform (MTP), sodass Testläufe Ablaufverfolgungen und Metriken über das standardmäßige OpenTelemetry SDK ausgeben können.
Hinweis
Diese Erweiterung ist ab Version 2.1.0 in MTP verfügbar.
Von Bedeutung
Ab MTP 2.4.0 folgt die OpenTelemetry-Erweiterung der MTP-Version, und ihre öffentlichen Einstiegspunkte sind nicht mehr experimentell.
Registration
Hinweis
Diese Erweiterung unterstützt keine automatische Registrierung. Sie müssen sie manuell registrieren, indem Sie den automatisch generierten Einstiegspunkt (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) und den Aufruf AddOpenTelemetryProvider in Ihrer Main Methode deaktivieren.
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();
Um die Instrumentierung, Ressourcenattribute und einen OTLP-Exporter anhand der standardmäßigen Umgebungsvariablen OTEL_* zu konfigurieren, rufen Sie Folgendes auf:
builder.AddOpenTelemetryProviderFromEnvironment();
Die Methode fügt die Instrumentierung nur hinzu, wenn Sie einen Exporter konfigurieren oder einen Konfigurationsrückruf übergeben, sodass Sie die Registrierung in der Anwendung verlassen können, wenn einige Umgebungen keine Telemetrie exportieren.
API
AddOpenTelemetryProvider
Registriert den OpenTelemetry-Anbieter auf ITestApplicationBuilder. Akzeptiert zwei optionale Rückrufe:
-
withTracing: konfiguriert dieTracerProviderBuilderfür die verteilte Ablaufverfolgung. -
withMetrics: konfiguriert dasMeterProviderBuilderzur Sammlung von Metriken.
AddTestingPlatformInstrumentation
Rufen Sie TracerProviderBuilder oder MeterProviderBuilder auf, um die integrierte Microsoft.Testing.Platform Aktivitätsquelle und den -zähler zu abonnieren.
AddTestingPlatformResource
Rufen Sie ResourceBuilder auf, um Testassembly-, Host-, Betriebssystem- und Runtimeattribute hinzuzufügen. Der Detektor identifiziert auch CI-Anbieter, Pipeline, Zweig und Commit-Informationen für GitHub Actions, Azure Pipelines, GitLab CI und Jenkins.
AddOpenTelemetryProviderFromEnvironment
Registriert Tracing, Metriken, Ressourcenerkennung und einen OTLP-Exporter anhand der standardmäßigen OpenTelemetry-Umgebungsvariablen.
OTEL_SDK_DISABLED=true deaktiviert die Integration. Konfigurieren OTEL_TRACES_EXPORTER, , OTEL_METRICS_EXPORTERoder OTEL_EXPORTER_OTLP_ENDPOINT zum Aktivieren des Exports.
Aktivitätsquelle und -meter
Die Erweiterung sendet Telemetrie unter:
- Aktivitätsquelle:
Microsoft.Testing.Platform - Messgerät:
Microsoft.Testing.Platform
Semantische Konventionen
MTP emittiert standardisierte OpenTelemetry-Test- und Codeattribute, für die eine Konvention existiert, einschließlich test.case.name, test.case.result.status, test.suite.name, code.function.name, code.line.number, code.file.path, code.stacktrace und error.type. Fehlgeschlagene Tests setzen den Span-Status auf Error und fügen ein exception-Ereignis hinzu.
MTP erweitert die Konventionen mit zusätzlichen Ergebniszuständen (skipped, error, timeout, cancelledund unknown) und Testattributen für Konzepte, die OpenTelemetry nicht definiert. Um vorhandene Dashboards beizubehalten, bleiben veraltete Attribut- und Instrumentnamen standardmäßig aktiviert.
Wenn der Startprozess TRACEPARENT und TRACESTATE bereitstellt, ordnet MTP den Testlauf dieser Trace zu, anstatt eine nicht zusammenhängende Root-Trace zu starten.
Ausgegebene Metriken
| Instrument | Typ | Einheit | Description |
|---|---|---|---|
test.case.duration |
Histogramm | s |
Testdauer, gruppiert nach Ergebnisstatus und Suite. |
test.case.result.count |
Counter | {test} |
Abgeschlossene Tests, gruppiert nach Ergebnisstatus und Suite. |
test.case.active |
UpDownCounter | {test} |
Derzeit ausgeführte Tests. |
test.run.duration |
Histogramm | s |
Laufzeit, gruppiert nach Ergebnisstatus und Beendigungscode. |
test.case.retry.count |
Counter | {test} |
Tests, die für einen anderen Versuch durch die Wiederholungserweiterung geplant sind. |
Umgebungskonfiguration
| Umgebungsvariable | Vorgabe | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Nicht festgelegt | W3C-Ablaufverfolgungskontext für die übergeordnete Ausführung. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Fügt erfasste Standardausgabe und Fehler an, um Die Testspanne zu testen. Auf 0 setzen, wenn die Ausgabe Geheimnisse enthalten könnte. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Legt die maximale Anzahl von Zeichen fest, die für ein Zeichenfolgenattribut beibehalten werden. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Gibt veraltete Attribut- und Instrumentnamen zusammen mit Namen gemäß semantischer Konventionen aus. |
OTEL_SDK_DISABLED |
Nicht festgelegt | Legen Sie den Wert auf true fest, um das OpenTelemetry SDK zu deaktivieren. |
OTEL_SERVICE_NAME |
Nicht festgelegt | Setzt den Dienstnamen außer Kraft. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Nicht festgelegt | Legt den OTLP-Endpunkt fest. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Nicht festgelegt | Wählt Trace- und Metrik-Exporter aus. |