Tüm Ürünler
Search
Belge Merkezi

Managed Service for OpenTelemetry:Record and analyze exceptions with open source tracing clients

Son Güncelleme:Oct 06, 2026

Uygulamanız özel durumlar (exception) oluşturduğunda Managed Service for OpenTelemetry bu özel durumları izleme verilerinizde algılar ve sonuçları Exceptions sayfasında toplar. Bu sayede hata türlerini, yığın izlerini ve etkilenen izlemeleri görebilirsiniz. Otomatik enstrümantasyon (OpenTelemetry veya SkyWalking ajanları) kullanıldığında özel durumlar kod değişikliği yapılmadan yakalanır. Manuel enstrümantasyon için bu konuda desteklenen her izleme protokolü için span'lerdeki özel durumların nasıl kaydedileceği açıklanmaktadır.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • İzleme verilerini Managed Service for OpenTelemetry'ye raporlayacak şekilde yapılandırılmış bir açık kaynak izleme istemcisi. Kurulum talimatları için bkz. Bağlantı açıklaması

Managed Service for OpenTelemetry'nin özel durumları algılama yöntemi

Algılama mekanizması uygulamanızın kullandığı izleme protokolüne bağlıdır:


Protokol


Özel durumların depolandığı yer


Algılama tetikleyicisi


OpenTelemetry


Bir span'deki olay nitelikleri


exception.type niteliğinin mevcut olması


OpenTracing (Jaeger, Zipkin, SkyWalking)


Bir span'deki günlük alanları


event alanının "error" olarak ayarlanması ve error.kind alanının mevcut olması

Özel durumlar algılandıktan sonra sağlanmışsa tam yığın izleriyle birlikte Exceptions sayfasında görünür.

OpenTelemetry ile özel durumları kaydetme

Özel durumlar için OpenTelemetry anlamsal kuralları özel durum verilerinin span'lere nasıl ekleneceğini tanımlar. Managed Service for OpenTelemetry aşağıdaki olay niteliklerini kontrol eder:


Nitelik


Zorunlu


Açıklama


exception.type


Evet


Özel durum sınıfı adı. Özel durum algılamayı tetikler.


exception.message


Hayır


Özel durum mesajı metni.


exception.stacktrace


Hayır


Tam yığın izi dizesi. Exceptions sayfasında görüntülenir.

SDK'yı kullanma (önerilen)

OpenTelemetry SDK'ları yakalanan özel durum nesnesinden bu nitelikleri otomatik olarak dolduran bir recordException yöntemi sunar.

Span span = myTracer.startSpan("spanName");
try {
    // Business logic
} catch (Throwable e) {
    span.recordException(e);
    throw e;
} finally {
    span.end();
}

recordException yöntemi yakalanan özel durumdan doldurulan exception.type, exception.message ve exception.stacktrace ile bir span olayı oluşturur.

Not

Bu konudaki örnekler Java için OpenTelemetry SDK'sını kullanır. recordException yöntemi tüm OpenTelemetry SDK dillerinde mevcuttur. Dile özel kullanım bilgileri için OpenTelemetry belgelerine bakın.

Otomatik enstrümantasyonu kullanma

Uygulamanız otomatik enstrümantasyon içeren bir OpenTelemetry ajanı veya çerçevesi kullanıyorsa özel durumlar kod değişikliği yapılmadan yakalanır ve raporlanır. Managed Service for OpenTelemetry özel durum verilerini algılar ve bunları Exceptions sayfasında görüntüler.

OpenTracing ile özel durumları kaydetme

OpenTracing anlamsal kuralları özel durum verilerini span günlük alanlarında saklar. Managed Service for OpenTelemetry aşağıdaki günlük alanlarını kontrol eder:


Günlük alanı


Zorunlu


Açıklama


event


Evet


"error" olarak ayarlanmalıdır. Özel durum algılamayı tetikler.


error.kind


Evet


Özel durum sınıfı adı.


message


Hayır


Özel durum mesajı metni.


stack


Hayır


Tam yığın izi dizesi. Exceptions sayfasında görüntülenir.

Jaeger ve Zipkin: OpenTracing SDK'yı kullanma

Aşağıdaki Java örneği OpenTracing SDK kullanarak span'lerdeki özel durumları kaydeder:

public static void test() {
    Tracer tracer = GlobalTracer.get();
    Span span = tracer.buildSpan("spanName").start();

    try (Scope scope = tracer.activateSpan(span)) {
        // Business logic
    } catch (Exception e) {
        onException(e, span);
    } finally {
        span.finish();
    }
}

public static void onException(Throwable throwable, Span span) {
    if (span != null) {
        Tags.ERROR.set(span, Boolean.TRUE);
        if (throwable != null) {
            span.log(errorLogs(throwable));
        }
    }
}

private static Map<String, Object> errorLogs(Throwable throwable) {
    Map<String, Object> errorLogs = new HashMap<>();
    errorLogs.put("event", Tags.ERROR.getKey());
    errorLogs.put("error.object", throwable);
    errorLogs.put("error.kind", throwable.getClass().getName());
    String message = throwable.getCause() != null
        ? throwable.getCause().getMessage()
        : throwable.getMessage();
    if (message != null) {
        errorLogs.put("message", message);
    }
    StringWriter sw = new StringWriter();
    throwable.printStackTrace(new PrintWriter(sw));
    errorLogs.put("stack", sw.toString());
    return errorLogs;
}

Bu örnekteki temel noktalar:

  • Tags.ERROR.set(span, Boolean.TRUE) span'i bir hata span'i olarak işaretler.

  • event alanı Tags.ERROR.getKey() değerine ayarlanır; bu değer "error" olarak çözülür.

  • stack alanı StringWriter ve PrintWriter aracılığıyla tam yığın izini yakalar.

SkyWalking: otomatik özel durum yakalama

SkyWalking ajanları müdahaleci olmayan enstrümantasyon kullanarak özel durumları otomatik olarak yakalar. Kod değişikliği gerekmez. Çoğu durumda ajan özel durum verilerini kaydeder ve Managed Service for OpenTelemetry'ye raporlar; buradaki veriler Exceptions sayfasında görünür.

Özel durum verilerini görüntüleme ve analiz etme

Uygulamanız özel durumları raporladıktan sonra Managed Service for OpenTelemetry verileri Exceptions sayfasında toplar. İncelemek üzere konsolu açın:

  • Özel durum türleri ve oluşum sayıları

  • Her özel durum için yığın izleri

  • Etkilenen span'ler ve izlemeler

Tekrarlayan hataları belirlemek, özel durum eğilimlerini takip etmek ve sıklık ile etkiye göre düzeltmeleri önceliklendirmek için bu verileri kullanın.

Detaylı analiz yetenekleri için bkz. Özel durum analizi.