Tüm Ürünler
Search
Belge Merkezi

Managed Service for OpenTelemetry:Terms

Son Güncelleme:Oct 06, 2026

Managed Service for OpenTelemetry, mikro hizmet mimarileri için dağıtık izleme sunmak üzere OpenTracing veri modelini kullanır. Bu konuda izler (trace), kapsamlar (span), veri modeli ve veri raporlama yöntemleri ele alınmaktadır.

OpenTracing, OpenTelemetry'nin öncülüdür. Managed Service for OpenTelemetry, burada açıklanan OpenTracing veri modelini destekler. OpenTelemetry standardı için bkz. OpenTelemetry belgeleri.

Temel kavramlar

Kavram Açıklama
Dağıtık izleme Bir isteğin dağıtık bir sistemdeki birden fazla hizmetten geçerken izlenmesini sağlayan yöntemdir.
İz (Trace) Dağıtık bir sistemdeki bir işlem veya sürecin uçtan uca kaydıdır. İz, kapsamlardan oluşan yönlendirilmiş döngüsüz bir grafiktir (DAG).
Kapsam (Span) Bir iz içindeki adlandırılmış ve zamanlanmış iş birimidir.
SpanContext Bir kapsamı tanımlayan (iz kimliği, kapsam kimliği) ve süreç sınırları arasında bagaj öğelerini taşıyan meta verilerdir.
Referans İki kapsam arasındaki nedensel ilişkidir. OpenTracing iki tür tanımlar: ChildOf ve FollowsFrom.
Tracer Kapsam oluşturan ve hizmetler arasında bağlam yayan arayüzdür.

Dağıtık izlemenin önemi

Modern uygulamalar, geliştiricilerin agile geliştirme ve sürekli entegrasyon gibi yöntemleri benimsediği mikro hizmet mimarilerini kullanır. Sistem mimarisi, bağımsız büyük ölçekli yazılımlardan mikro hizmet tabanlı mimarilere evrilmiştir; bu mimarilerde tek bir istek onlarca hizmeti aşabilir. Bu hizmetler farklı dillerde yazılabilir, farklı ekipler tarafından bakımı yapılabilir ve birden fazla sunucuda dağıtılabilir. Bir hizmette arıza oluştuğunda onlarca uygulama özel durumlarla karşılaşabilir ve uçtan uca görünürlük olmadan kök nedeni belirlemek pratik değildir.

Dağıtık izleme sistemi, uzak yöntem çağrılarının yürütme süreci ve harcadığı zaman dahil olmak üzere her isteğin tam yürütme yolunu ve zamanlamasını kaydeder. Bu görünürlük, sistem sorunlarını gidermek ve sistem performansını optimize etmek için önemlidir.

İzler (Traces)

Bir iz, dağıtık bir sistemdeki bir işlem veya sürecin yürütme sürecini temsil eder. OpenTracing standardında iz, birden fazla kapsamdan oluşan yönlendirilmiş döngüsüz bir grafiktir (DAG). Her kapsam, iz içinde sürekli olarak çalışan adlandırılmış ve zamanlanmış bir segmenti temsil eder.

Örneğin, bir istemci isteği hedef kaynağa ulaşmadan ve yanıt döndürmeden önce bir yük dengeleyici, bir kimlik doğrulama hizmeti ve bir faturalama hizmetinden geçebilir.

Example of a distributed call

İzleme sistemleri bunu genellikle bir zaman çizelgesi olarak gösterir; burada her satır bir kapsamı, yatay eksen ise zamanı temsil eder.

Trace displayed as a timeline

Kapsamlar (Spans)

Bir kapsam, bir iz içindeki tek bir iş birimini temsil eder. Her kapsam aşağıdaki verileri içerir:

Alan Açıklama
İşlem adı Gerçekleştirilen iş için insan tarafından okunabilir bir etikettir (kapsam adı olarak da adlandırılır).
Başlangıç zaman damgası İşlemin başladığı an.
Bitiş zaman damgası İşlemin tamamlandığı an.
Etiketler Kapsama ek açıklama getiren anahtar-değer çiftleridir. Anahtarlar dizelerdir; değerler dize, boolean veya sayı olabilir.
Günlükler Kapsam ömrü boyunca olayları kaydeden zaman damgalı anahtar-değer çiftleridir. Anahtarlar dizelerdir; değerler herhangi bir türde olabilir.
SpanContext Kapsamı tanımlamak ve süreç sınırları arasında yaymak için kullanılan meta verilerdir. Bkz. SpanContext.
Referanslar Üst-alt veya ardışık ilişkiler kuran diğer kapsamlara bağlantılardır. Sıfır veya birden fazla ilgili kapsam içerebilir.

Kapsam ilişkileri

OpenTracing, kapsamlar arasında iki tür referans tanımlar:

  • ChildOf: Üst-alt ilişkisi. Örneğin, C Kapsamı A Kapsamının alt düğümüdür.

  • FollowsFrom: Ardışık ilişki. Örneğin, G Kapsamı F Kapsamından sonra çağrılır.

Aşağıdaki diyagram, tek bir iz içindeki sekiz kapsamı ve bunların ilişkilerini göstermektedir:

Causal relationships among spans in a single trace

        [Span A]  <-- root span
            |
     +------+------+
     |             |
 [Span B]      [Span C]   (ChildOf: Span C is a child of Span A)
     |             |
 [Span D]      +---+-------+
               |           |
           [Span E]    [Span F] >>> [Span G] >>> [Span H]
                                       ^
                                       |
                         (FollowsFrom: Span G follows Span F)

Aynı izin zaman çizelgesi olarak gösterimi:

Time relationships among spans in a single trace

--|-------|-------|-------|-------|-------|-------|-------|-> time

 [Span A..........................................................]
   [Span B...................................................]
      [Span D................................................]
    [Span C...............................................]
         [Span E.......]        [Span F..] [Span G..] [Span H..]

SpanContext

SpanContext, bir kapsamı tanımlamak ve süreç sınırları arasında yaymak için gereken meta verileri taşır. Şunları içerir:

  • Trace ID: Tüm iz için benzersiz bir tanımlayıcıdır.

  • Span ID: Bireysel kapsam için benzersiz bir tanımlayıcıdır.

  • Bagaj öğeleri: Hizmet sınırları boyunca iz ile birlikte hareket eden anahtar-değer çiftleridir. Bu anahtar-değer çiftlerinin de süreç sınırları arasında iletilmesi gerekir.

Tracer arayüzü

Tracer, kapsam oluşturmak ve hizmetler arasında bağlam yaymak için giriş noktasıdır. Kapsam oluşturmak için StartSpan yöntemini, bağlamı ayıklamak için Extract yöntemini ve bağlamı enjekte etmek için Inject yöntemini sağlar.

Kapsam oluşturma

Yeni bir kapsam oluşturmak ve başlatmak için StartSpan yöntemini kullanın. Yöntem, belirtilen işlem adı ve seçeneklerle bir kapsam döndürür.

// Method signature:
// StartSpan(operationName string, opts ...StartSpanOption) Span

// Create a root span (no parent).
sp := tracer.StartSpan("GetFeed")

// Create a child span.
sp := tracer.StartSpan(
    "GetFeed",
    opentracing.ChildOf(parentSpan.Context()),
)

Bağlamı hizmetler arasında yayma

İz bağlamını hizmetler arasında iletmek için Tracer iki tamamlayıcı yöntem sağlar:

  1. Inject: Başka bir hizmete istek göndermeden önce bir SpanContext'i (iz kimliği, kapsam kimliği ve bagaj öğeleri dahil) bir taşıyıcıya (HTTP üst bilgileri gibi) serileştirir.

       // Method signature:
       // Inject(sm SpanContext, format interface{}, carrier interface{}) error
    
       carrier := opentracing.HTTPHeadersCarrier(httpReq.Header)
       err := tracer.Inject(
           span.Context(),
           opentracing.HTTPHeaders,
           carrier,
       )
  2. Extract: Başka bir hizmetten istek alındığında bir SpanContext'i (iz kimliği, kapsam kimliği ve bagaj öğeleri dahil) bir taşıyıcıdan seri durumdan çıkarır.

       // Method signature:
       // Extract(format interface{}, carrier interface{}) (SpanContext, error)
    
       carrier := opentracing.HTTPHeadersCarrier(httpReq.Header)
       clientContext, err := tracer.Extract(
           opentracing.HTTPHeaders,
           carrier,
       )

Inject ve Extract birlikte, süreç ve ağ sınırları boyunca uçtan uca izlemeyi etkinleştirir.

Veri raporlama

Managed Service for OpenTelemetry, iz verilerini raporlamak için iki yöntemi destekler:

Doğrudan raporlama

Uygulama, ara sunucu olmadan iz verilerini doğrudan izleme arka ucuna gönderir.

Report data directly to the backend

Aracı üzerinden raporlama

Uygulama, iz verilerini yerel bir aracıya (Jaeger Agent gibi) gönderir; aracı verileri izleme arka ucuna iletir.

Report data through an agent