OpenTelemetry

Tato funkce vyžaduje balíček NuGet Microsoft.Testing.Extensions.OpenTelemetry .

Toto rozšíření integruje OpenTelemetry s Microsoft.Testing.Platform (MTP), což umožňuje běhům testů emitovat stopy a metriky prostřednictvím standardní sady OpenTelemetry SDK.

Poznámka:

Toto rozšíření je k dispozici v MTP od verze 2.1.0.

Důležité

Od verze MTP 2.4.0 se rozšíření OpenTelemetry řídí verzí MTP a její veřejné vstupní body už nejsou experimentální.

Registrace

Poznámka:

Toto rozšíření nepodporuje automatickou registraci. Musíte ho zaregistrovat ručně zakázáním automaticky generovaného vstupního bodu (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) a voláním AddOpenTelemetryProvider ve vaší 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();

Chcete-li nakonfigurovat instrumentaci, atributy prostředků a exportér OTLP ze standardních proměnných prostředí OTEL_*, volejte:

builder.AddOpenTelemetryProviderFromEnvironment();

Metoda přidává instrumentaci pouze v případě, že nakonfigurujete vývozce nebo předáte zpětné volání konfigurace, takže registraci v aplikaci můžete nechat, když některá prostředí neexportuje telemetrii.

API

AddOpenTelemetryProvider

Zaregistruje poskytovatele OpenTelemetry na serveru ITestApplicationBuilder. Přijímá dvě volitelná zpětná volání:

  • withTracing: nakonfiguruje TracerProviderBuilder pro distribuované trasování.
  • withMetrics: nakonfiguruje kolekci MeterProviderBuilder metrik.

AddTestingPlatformInstrumentation

Zavolejte na TracerProviderBuilder nebo MeterProviderBuilder pro přihlášení k odběru integrovaného Microsoft.Testing.Platform zdroje a měřiče aktivit.

AddTestingPlatformResource

Použijte ResourceBuilder k přidání atributů testovacího sestavení, hostitele, operačního systému a prostředí runtime. Detektor také identifikuje poskytovatele CI, pipeline, větev a informace o commitu pro GitHub Actions, Azure Pipelines, GitLab CI a Jenkins.

AddOpenTelemetryProviderFromEnvironment

Zaregistruje trasování, metriky, detekci prostředků a vývozce OTLP ze standardních proměnných prostředí OpenTelemetry. OTEL_SDK_DISABLED=true zakáže integraci. Nakonfigurujte OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTERnebo OTEL_EXPORTER_OTLP_ENDPOINT aktivujte export.

Zdroj a měřič aktivity

Rozšíření generuje telemetrii v části:

  • Zdroj aktivity: Microsoft.Testing.Platform
  • Metr: Microsoft.Testing.Platform

Sémantické konvence

MTP generuje standardní atributy OpenTelemetry pro testování a kód tam, kde existuje konvence, včetně test.case.name, test.case.result.status, test.suite.name, code.function.name, code.file.path, code.stacktrace, code.line.number a error.type. Neúspěšné testy nastaví stav spanu na Error a přidají událost exception.

MTP rozšiřuje konvence o další stavy výsledků (skipped, error, timeout, cancelleda ) a unknownatributy testování pro koncepty, které OpenTelemetry nedefinuje. Pokud chcete zachovat existující řídicí panely, starší názvy atributů a instrumentů zůstanou ve výchozím nastavení povolené.

Když proces spuštění poskytne TRACEPARENT a TRACESTATE, MTP umístí testovací běh pod tuto trasu, místo aby spustil nesouvisející kořenovou trasu.

Vygenerované metriky

Nástroj Typ Jednotka Description
test.case.duration Histogram s Doba trvání testu seskupená podle stavu výsledků a sady testů
test.case.result.count Counter {test} Dokončené testy seskupené podle stavu výsledku a sady
test.case.active UpDownCounter {test} Testy, které jsou aktuálně spuštěné.
test.run.duration Histogram s Doba trvání spuštění, seskupené podle stavu výsledku a ukončovací kód
test.case.retry.count Counter {test} Testy naplánované rozšířením pro opakování k dalšímu pokusu.

Konfigurace prostředí

Proměnná prostředí Výchozí Description
TRACEPARENT, TRACESTATE Nenastavený Kontext trasování W3C pro nadřazený běh.
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT 1 Připojí zachycený standardní výstup a chybu k rozsahu testů. Nastavte na 0, pokud výstup může obsahovat citlivé údaje.
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT 8192 Nastaví maximální počet znaků zachovaných pro atribut řetězce.
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES 1 Vypisuje starší názvy atributů a nástrojů spolu s názvy podle sémantických konvencí.
OTEL_SDK_DISABLED Nenastavený Nastavte na true, chcete-li zakázat OpenTelemetry SDK.
OTEL_SERVICE_NAME Nenastavený Přepíše název služby.
OTEL_EXPORTER_OTLP_ENDPOINT Nenastavený Nastaví koncový bod OTLP.
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER Nenastavený Vybere trasovací a metrické exportéry.