Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fitur ini memerlukan paket NuGet Microsoft.Testing.Extensions.OpenTelemetry .
Ekstensi ini mengintegrasikan OpenTelemetry dengan Microsoft. Testing.Platform (MTP), memungkinkan pengujian dijalankan untuk memancarkan jejak dan metrik melalui OpenTelemetry SDK standar.
Nota
Ekstensi ini tersedia di MTP yang dimulai dengan versi 2.1.0.
Penting
Dimulai dengan MTP 2.4.0, ekstensi OpenTelemetry mengikuti versi rilis MTP dan titik masuk publiknya tidak lagi eksperimental.
Registration
Nota
Ekstensi ini tidak mendukung pendaftaran otomatis. Anda harus mendaftarkannya secara manual dengan menonaktifkan titik masuk yang dihasilkan secara otomatis (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) dan memanggil AddOpenTelemetryProvider dalam metode Anda Main .
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();
Untuk mengonfigurasi instrumentasi, atribut sumber daya, dan pengekspor OTLP berdasarkan variabel lingkungan standar OTEL_*, panggil:
builder.AddOpenTelemetryProviderFromEnvironment();
Metode ini menambahkan instrumentasi hanya saat Anda mengonfigurasi pengekspor atau meneruskan panggilan balik konfigurasi, sehingga Anda dapat meninggalkan pendaftaran di aplikasi saat beberapa lingkungan tidak mengekspor telemetri.
API
AddOpenTelemetryProvider
Mendaftarkan penyedia OpenTelemetry di ITestApplicationBuilder. Menerima dua panggilan balik opsional:
-
withTracing: mengonfigurasiTracerProviderBuilderuntuk pelacakan terdistribusi. -
withMetrics: mengonfigurasiMeterProviderBuilderuntuk pengumpulan metrik.
AddTestingPlatformInstrumentation
Panggil TracerProviderBuilder atau MeterProviderBuilder untuk berlangganan sumber aktivitas bawaan dan meteran Microsoft.Testing.Platform.
AddTestingPlatformResource
Panggil ResourceBuilder untuk menambahkan assembly pengujian, host, sistem operasi, dan atribut runtime. Detektor juga mengidentifikasi informasi penyedia CI, alur, cabang, dan penerapan untuk GitHub Actions, Azure Pipelines, GitLab CI, dan Jenkins.
AddOpenTelemetryProviderFromEnvironment
Mendaftarkan pelacakan, metrik, deteksi sumber daya, dan eksportir OTLP dari variabel lingkungan OpenTelemetry standar.
OTEL_SDK_DISABLED=true menonaktifkan integrasi. Konfigurasikan OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, atau OTEL_EXPORTER_OTLP_ENDPOINT untuk mengaktifkan ekspor.
Sumber aktivitas dan meteran
Ekstensi memancarkan telemetri melalui:
- Sumber aktivitas:
Microsoft.Testing.Platform - Meter:
Microsoft.Testing.Platform
Konvensi semantik
MTP menghasilkan atribut pengujian dan kode OpenTelemetry standar jika terdapat konvensi yang sesuai, termasuk test.case.name, test.case.result.status, test.suite.name, code.file.path, code.function.name, code.line.number, code.stacktrace, dan error.type. Tes yang gagal menetapkan status span ke Error dan menambahkan event exception.
MTP memperluas konvensi dengan status hasil tambahan (skipped, error, timeout, cancelled, dan unknown) dan atribut uji untuk konsep yang tidak didefinisikan oleh OpenTelemetry. Untuk mempertahankan dasbor yang ada, atribut warisan dan nama instrumen tetap diaktifkan secara default.
Ketika proses peluncuran menyertakan TRACEPARENT dan TRACESTATE, MTP menempatkan proses uji dalam trace tersebut alih-alih memulai trace root yang tidak terkait.
Metrik yang dihasilkan
| Instrumen | Type | Unit | Description |
|---|---|---|---|
test.case.duration |
Histogram | s |
Durasi pengujian, dikelompokkan berdasarkan status hasil dan suite pengujian. |
test.case.result.count |
Counter | {test} |
Pengujian yang selesai, dikelompokkan berdasarkan status hasil dan suite pengujian. |
test.case.active |
UpDownCounter | {test} |
Pengujian yang saat ini sedang berjalan. |
test.run.duration |
Histogram | s |
Durasi proses, dikelompokkan berdasarkan status hasil dan kode keluar. |
test.case.retry.count |
Counter | {test} |
Tes yang dijadwalkan untuk dicoba lagi oleh ekstensi retry. |
Konfigurasi lingkungan
| Variabel Lingkungan | Default | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Menghapus pengaturan | Konteks pelacakan W3C untuk eksekusi induk. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Melampirkan keluaran standar dan galat standar yang ditangkap ke span pengujian. Atur ke 0 kapan output mungkin berisi rahasia. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Mengatur karakter maksimum yang dipertahankan untuk atribut string. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Memancarkan atribut warisan dan nama instrumen bersama nama konvensi semantik. |
OTEL_SDK_DISABLED |
Menghapus pengaturan | Atur ke true untuk menonaktifkan OpenTelemetry SDK. |
OTEL_SERVICE_NAME |
Menghapus pengaturan | Mengganti nama layanan. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Menghapus pengaturan | Mengatur titik akhir OTLP. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Menghapus pengaturan | Memilih pelacakan dan pengekspor metrik. |