Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu özellik , Microsoft.Testing.Extensions.OpenTelemetry NuGet paketini gerektirir.
Bu uzantı, test çalıştırmalarının standart OpenTelemetry SDK'sı aracılığıyla iz ve metrik yaymasına olanak tanıyan OpenTelemetry ile Microsoft.Testing.Platform (MTP) bütünleştirir.
Uyarı
Bu uzantı, 2.1.0 sürümünden itibaren MTP'de kullanılabilir.
Önemli
MTP 2.4.0 sürümünden itibaren OpenTelemetry uzantısı MTP sürümüne uyar ve genel giriş noktaları artık deneysel değildir.
Registration
Uyarı
Bu uzantı otomatik kaydı desteklemez. Otomatik olarak oluşturulan giriş noktasını (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) devre dışı bırakarak ve AddOpenTelemetryProvider'i Main yönteminizde çağırarak, onu el ile kaydetmeniz gerekir.
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();
Enstrümantasyonu, kaynak özniteliklerini ve standart OTEL_* ortam değişkenlerini kullanarak bir OTLP dışa aktarıcısını yapılandırmak için şunu çağırın:
builder.AddOpenTelemetryProviderFromEnvironment();
Yöntem, yalnızca bir dışa aktarıcı yapılandırdığınızda veya bir yapılandırma geri çağrısı ilettiğinizde enstrümantasyon ekler; böylece bazı ortamlarda telemetri dışa aktarılmasa bile kaydını uygulamada tutabilirsiniz.
API
AddOpenTelemetryProvider
OpenTelemetry sağlayıcısını ITestApplicationBuilder üzerinde kaydeder. İsteğe bağlı iki geri çağırma kabul eder:
-
withTracing: dağıtılmış izlemeyi yapılandırırTracerProviderBuilder. -
withMetrics: ölçüm toplama içinMeterProviderBuilderyapılandırır.
AddTestingPlatformInstrumentation
TracerProviderBuilder veya MeterProviderBuilder öğesini çağırarak yerleşik Microsoft.Testing.Platform etkinlik kaynağına ve ölçüme abone olun.
AddTestingPlatformResource
Test derlemesi, ana bilgisayar, işletim sistemi ve çalışma zamanı özniteliklerini eklemek için ResourceBuilder öğesini çağırın. Algılayıcı ayrıca GitHub Actions, Azure Pipelines, GitLab CI ve Jenkins için CI sağlayıcısı, işlem hattı, dal ve işleme bilgilerini tanımlar.
AddOpenTelemetryProviderFromEnvironment
Standart OpenTelemetry ortam değişkenlerinden izleme, ölçümler, kaynak algılama ve bir OTLP dışa aktarıcısını kaydeder.
OTEL_SDK_DISABLED=true tümleştirmeyi devre dışı bırakır. Dışa aktarmayı etkinleştirmek için OTEL_METRICS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT veya OTEL_TRACES_EXPORTER yapılandırın.
Etkinlik kaynağı ve ölçümü
Uzantı, aşağıdakiler altında telemetri yayar:
- Etkinlik kaynağı:
Microsoft.Testing.Platform - Metre:
Microsoft.Testing.Platform
Anlamsal kurallar
MTP, test.case.result.status, test.suite.name, code.line.number, code.stacktrace, code.function.name, code.file.path, test.case.name ve error.type dahil olmak üzere, bir kuralın bulunduğu durumlarda standart OpenTelemetry test ve kod özniteliklerini yayar. Başarısız testler, span durumunu Error olarak ayarlar ve bir exception olayı ekler.
MTP, kuralları OpenTelemetry'nin tanımlamadığı kavramlar için ek sonuç durumları (skipped, error, timeout, cancelledve ) ve unknowntest öznitelikleriyle genişletir. Mevcut panoları korumak için eski öznitelik ve araç adları varsayılan olarak etkin kalır.
Başlatma işlemi TRACESTATE ve TRACEPARENT sağladığında MTP, test çalıştırmasını ilişkisiz bir kök iz başlatmak yerine bu izin altına yerleştirir.
Üretilen metrikler
| Araç | Türü | Birim | Description |
|---|---|---|---|
test.case.duration |
Histogram | s |
Sonuç durumuna ve test paketine göre gruplanmış test süresi. |
test.case.result.count |
Counter | {test} |
Tamamlanan testler, sonuç durumuna ve pakete göre gruplandırılır. |
test.case.active |
UpDownCounter | {test} |
Çalışmakta olan testler. |
test.run.duration |
Histogram | s |
Çalıştırma süresi, sonuç durumuna ve çıkış koduna göre gruplandırılır. |
test.case.retry.count |
Counter | {test} |
Yeniden deneme uzantısı tarafından başka bir deneme için zamanlanmış testler. |
Ortam ayarları
| Ortam değişkeni | Varsayılan | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Ayarı kaldır | Ana çalıştırma için W3C iz bağlamı. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Yakalanan standart çıkışı ve hatayı test aralıklarına ekler. Çıktı gizli bilgiler içerebilecekse 0 olarak ayarlayın. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Bir dize özniteliği için tutulan en fazla karakteri ayarlar. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Anlamsal konvansiyon adlarının yanı sıra eski öznitelik ve enstrüman adlarını da yayar. |
OTEL_SDK_DISABLED |
Ayarı kaldır |
true OpenTelemetry SDK'sını devre dışı bırakmak için olarak ayarlayın. |
OTEL_SERVICE_NAME |
Ayarı kaldır | Hizmet adını geçersiz kılar. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Ayarı kaldır | OTLP uç noktasını ayarlar. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Ayarı kaldır | İz ve metrik dışa aktarıcılarını seçer. |