Dwa popularne standardy propagacji śledzenia komunikatów.

1. W3C Trace Context (standard propagacji śledzenia przyjęty przez W3C):

Ten standard został wprowadzony, aby zapewnić jednolity format propagacji kontekstu śledzenia między różnymi systemami, serwisami i narzędziami. Działa niezależnie od…


This content originally appeared on DEV Community and was authored by Andrzej Korcz

Image description

1. W3C Trace Context (standard propagacji śledzenia przyjęty przez W3C):

Ten standard został wprowadzony, aby zapewnić jednolity format propagacji kontekstu śledzenia między różnymi systemami, serwisami i narzędziami. Działa niezależnie od implementacji i ma na celu ujednolicenie formatu w różnych środowiskach. W3C Trace Context składa się z dwóch kluczowych nagłówków:

  • traceparent: To główny nagłówek w W3C Trace Context. Zawiera najważniejsze informacje o kontekście śledzenia:
    • Wersja: Numer wersji standardu (obecnie 00).
    • Trace ID: Globalny unikalny identyfikator całego śledzenia (np. cała ścieżka od producenta do konsumenta).
    • Parent ID (Span ID): Identyfikator spana reprezentującego bezpośredniego rodzica w śledzeniu.
    • Flagi: Informacje na temat próbkowania (czy dany span ma być śledzony i przesyłany do systemu zbierającego).

Przykład nagłówka traceparent:



  traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01


Gdzie:

  • 00 to wersja.
  • 4bf92f3577b34da6a3ce929d0e0e4736 to Trace ID.
  • 00f067aa0ba902b7 to Parent ID (Span ID).
  • 01 to flagi (bit flagi próbkowania, gdzie 01 oznacza, że span ma być śledzony).

    • tracestate: To dodatkowy nagłówek używany w W3C Trace Context. Zawiera bardziej zaawansowane informacje, które mogą być specyficzne dla dostawcy systemu śledzenia (np. dodatkowe dane potrzebne narzędziu śledzącemu). Pozwala na propagowanie dodatkowych metadanych związanych z śledzeniem, np. priorytety lub informacje specyficzne dla narzędzia (np. Jaeger, Zipkin).

Przykład:



  tracestate: congo=t61rcWkgMzE


2. B3 Propagation (standard używany przez Zipkin):

B3 to inny, popularny standard propagacji kontekstu śledzenia, stosowany głównie w systemie Zipkin, ale obsługiwany także przez inne tracery, takie jak Jaeger. B3 działa w sposób nieco prostszy niż W3C Trace Context i składa się z kilku nagłówków:

  • x-B3-TraceId: To globalny identyfikator śledzenia (trace). Odpowiada za identyfikację całego cyklu śledzenia, podobnie jak Trace ID w W3C. Ten identyfikator jest unikalny dla całego śledzenia i pozwala połączyć wszystkie spany w jeden trace.

Przykład:



  x-B3-TraceId: 4bf92f3577b34da6a3ce929d0e0e4736


  • x-B3-ParentSpanId: Identyfikator rodzica aktualnego spana. Ten nagłówek zawiera ID spana, który bezpośrednio poprzedza obecny span. Jest on podobny do Parent ID w W3C Trace Context.

Przykład:



  x-B3-ParentSpanId: 00f067aa0ba902b7


  • x-B3-SpanId: To identyfikator spana w ramach śledzenia. Każdy span w trace ma swój unikalny identyfikator, który odróżnia go od innych spanów w danym trace. Jest podobny do Parent ID w W3C Trace Context, ale dotyczy konkretnego spana, a nie rodzica.

Przykład:



  x-B3-SpanId: 00f067aa0ba902b7


  • x-B3-Sampled: To flaga określająca, czy dany span (i cały trace) powinien być próbkowany i wysyłany do systemu zbierającego. Możliwe wartości to:
    • 1 oznacza, że span ma być śledzony.
    • 0 oznacza, że span nie będzie śledzony.

Przykład:



x-B3-Sampled: 1




Podział nagłówków:

  • W3C Trace Context:

    • traceparent
    • tracestate
  • B3 Propagation (Zipkin):

    • x-B3-TraceId
    • x-B3-ParentSpanId
    • x-B3-SpanId
    • x-B3-Sampled

Jakie są różnice między tymi standardami?

  • W3C Trace Context jest bardziej nowoczesnym, ujednoliconym standardem wspieranym przez organizację W3C, co oznacza, że jest neutralny w stosunku do narzędzi do śledzenia (np. Jaeger, Zipkin). Umożliwia bardziej elastyczną propagację informacji o śledzeniu, w tym dostarczanie zaawansowanych metadanych poprzez tracestate.

  • B3 jest starszym standardem propagacji, który został wprowadzony przez Zipkin. Jest prostszy i używa osobnych nagłówków dla każdego elementu kontekstu śledzenia (trace ID, span ID itd.), zamiast jednej złożonej struktury, jak w W3C Trace Context.

Co to oznacza dla Twojej aplikacji?

  • Twoja aplikacja aktualnie obsługuje zarówno W3C Trace Context (traceparent, tracestate), jak i B3 (x-B3-*).
  • W wielu przypadkach, systemy takie jak Jaeger, Zipkin, lub OpenTelemetry potrafią obsługiwać oba standardy, ale powinno się wybrać jeden spójny standard propagacji. Korzystanie z obu może wprowadzać zamieszanie i niespójności, zwłaszcza gdy różne systemy interpretują nagłówki inaczej.
  • Jeśli chcesz mieć pełną kontrolę nad śledzeniem, najlepiej jest zdecydować się na jeden standard (najczęściej rekomendowany jest W3C Trace Context, ponieważ jest to standard uznawany przez W3C i ma szersze wsparcie).

Jeśli twój system korzysta z różnych narzędzi do śledzenia (np. Jaeger, Zipkin) i musisz wspierać oba standardy, konieczne może być skonfigurowanie odpowiednich integracji lub middleware, które będą konwertować nagłówki między tymi standardami.


This content originally appeared on DEV Community and was authored by Andrzej Korcz


Print Share Comment Cite Upload Translate Updates
APA

Andrzej Korcz | Sciencx (2024-10-04T13:17:32+00:00) Dwa popularne standardy propagacji śledzenia komunikatów.. Retrieved from https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/

MLA
" » Dwa popularne standardy propagacji śledzenia komunikatów.." Andrzej Korcz | Sciencx - Friday October 4, 2024, https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/
HARVARD
Andrzej Korcz | Sciencx Friday October 4, 2024 » Dwa popularne standardy propagacji śledzenia komunikatów.., viewed ,<https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/>
VANCOUVER
Andrzej Korcz | Sciencx - » Dwa popularne standardy propagacji śledzenia komunikatów.. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/
CHICAGO
" » Dwa popularne standardy propagacji śledzenia komunikatów.." Andrzej Korcz | Sciencx - Accessed . https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/
IEEE
" » Dwa popularne standardy propagacji śledzenia komunikatów.." Andrzej Korcz | Sciencx [Online]. Available: https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/. [Accessed: ]
rf:citation
» Dwa popularne standardy propagacji śledzenia komunikatów. | Andrzej Korcz | Sciencx | https://www.scien.cx/2024/10/04/dwa-popularne-standardy-propagacji-sledzenia-komunikatow/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.