Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa funzionalità richiede il pacchetto NuGet Microsoft.Testing.Extensions.OpenTelemetry .
Questa estensione integra OpenTelemetry con Microsoft. Testing.Platform (MTP), che consente alle esecuzioni di test di generare tracce e metriche tramite OpenTelemetry SDK standard.
Annotazioni
Questa estensione è disponibile in MTP a partire dalla versione 2.1.0.
Importante
A partire da MTP 2.4.0, l'estensione OpenTelemetry segue la versione di rilascio MTP e i relativi punti di ingresso pubblici non sono più sperimentali.
Registration
Annotazioni
Questa estensione non supporta la registrazione automatica. È necessario registrarla manualmente disabilitando il punto di ingresso generato automaticamente (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) e chiamando AddOpenTelemetryProvider nel Main metodo .
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();
Per configurare la strumentazione, gli attributi della risorsa e un esportatore OTLP a partire dalle variabili d'ambiente standard OTEL_*, chiamare:
builder.AddOpenTelemetryProviderFromEnvironment();
Il metodo aggiunge strumentazione solo quando si configura un utilità di esportazione o si passa un callback di configurazione, quindi è possibile lasciare la registrazione nell'applicazione quando alcuni ambienti non esportano i dati di telemetria.
API
AddOpenTelemetryProvider
Registra il provider OpenTelemetry su ITestApplicationBuilder. Accetta due i callback facoltativi:
-
withTracing: configuraTracerProviderBuilderper la traccia distribuita. -
withMetrics: configuraMeterProviderBuilderper la raccolta di metriche.
AddTestingPlatformInstrumentation
Chiamare TracerProviderBuilder o MeterProviderBuilder per iscriversi all'origine e al contatore dell'attività predefiniti Microsoft.Testing.Platform.
AddTestingPlatformResource
Usare ResourceBuilder per aggiungere gli attributi dell'assembly di test, dell'host, del sistema operativo e del runtime. Il rilevatore identifica anche le informazioni sul provider CI, sulla pipeline, sul branch e sul commit per GitHub Actions, Azure Pipelines, GitLab CI e Jenkins.
AddOpenTelemetryProviderFromEnvironment
Registra il tracciamento, le metriche, il rilevamento delle risorse e un esportatore OTLP dalle variabili d'ambiente OpenTelemetry standard.
OTEL_SDK_DISABLED=true disabilita l'integrazione. Configurare OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTERo OTEL_EXPORTER_OTLP_ENDPOINT per attivare l'esportazione.
Origine e contatore dell'attività
L'estensione trasmette dati di telemetria in:
- Origine attività:
Microsoft.Testing.Platform - Metro:
Microsoft.Testing.Platform
Convenzioni semantiche
MTP genera attributi standard di test e codice OpenTelemetry in cui esiste una convenzione, tra cui test.case.name, test.case.result.status, code.function.nametest.suite.name, code.file.pathcode.line.number, , code.stacktrace, e error.type. I test non superati impostano lo stato dell'intervallo su Error e aggiungono un exception evento.
MTP estende le convenzioni con stati di risultato aggiuntivi (skipped, error, cancelledtimeout, e unknown) e attributi di test per i concetti che OpenTelemetry non definisce. Per mantenere i dashboard esistenti, i nomi degli attributi e degli strumenti legacy rimangono abilitati per impostazione predefinita.
Quando il processo di avvio fornisce TRACEPARENT e TRACESTATE, MTP inserisce l'esecuzione del test in tale traccia anziché avviare una traccia radice non correlata.
Metriche emesse
| Strumento | Tipo | Unità | Description |
|---|---|---|---|
test.case.duration |
Istogramma | s |
Durata del test, raggruppata per stato del risultato e suite. |
test.case.result.count |
Contatore | {test} |
Test completati, raggruppati per stato del risultato e suite. |
test.case.active |
UpDownCounter | {test} |
Test attualmente in esecuzione. |
test.run.duration |
Istogramma | s |
Durata dell'esecuzione, raggruppata in base allo stato dei risultati e al codice di uscita. |
test.case.retry.count |
Contatore | {test} |
Test programmati per un nuovo tentativo dall'estensione di ripetizione. |
Configurazione dell'ambiente
| Variabile di ambiente | Predefinito | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Non impostato | Contesto di traccia W3C per l'esecuzione principale. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Allega l'output standard acquisito e l'errore per testare gli intervalli. Imposta su 0 quando l'output potrebbe contenere informazioni sensibili. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Imposta i caratteri massimi conservati per un attributo stringa. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Emette nomi di attributi legacy e nomi degli strumenti insieme ai nomi della convenzione semantica. |
OTEL_SDK_DISABLED |
Non impostato | Impostare il valore su true per disabilitare l'SDK OpenTelemetry. |
OTEL_SERVICE_NAME |
Non impostato | Sovrascrive il nome del servizio. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Non impostato | Imposta l'endpoint OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Non impostato | Seleziona gli esportatori di tracce e metriche. |