OpenTelemetry

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ır TracerProviderBuilder.
  • withMetrics: ölçüm toplama için MeterProviderBuilder yapı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.