Trace-Kontext prüfen

Fügen Sie einen traceparent-Wert oder einen Headerblock ein, um IDs, Sampling und Weitergabedaten zu prüfen. Erzeugen Sie daraus einen Child-Kontext oder starten Sie einen neuen Root-Kontext.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
Trace-HeaderFügen Sie einen Headerblock oder einen traceparent-Wert ein.

Trace- und Baggage-Header können Service- oder Kundenkontext offenlegen. Prüfen Sie Werte, bevor Sie sie in Tickets kopieren.

tracestate-Einträge
Noch keine tracestate-Einträge.
baggage-Einträge
Noch keine baggage-Einträge.

So prüfen Sie einen Trace-Kontext

Fügen Sie einen traceparent-Wert oder einen Headerblock ein, und die Seite liest den enthaltenen W3C-Trace-Kontext: Trace-ID, Parent-Span-ID, Sampling-Flag, jedes tracestate-Element und jeden baggage-Eintrag. Die Werte werden gegen die Formatregeln der W3C-Spezifikationen Trace Context und Baggage geprüft, nicht gegen einen laufenden Dienst.

Dasselbe Panel schreibt die Propagierungs-Header auch wieder heraus. Kindkontext erzeugen behält die Trace-ID und vergibt eine neue Parent-Span-ID; Root-Kontext erzeugen beginnt einen neuen Trace; beide behalten die ursprünglichen tracestate- und baggage-Zeilen. Alles läuft im Browser — die eingefügten Header werden nicht hochgeladen — und der erzeugte Block ist bereit für curl, ein Log oder einen Fehlerbericht.

  1. Fügen Sie einen Headerblock (traceparent, tracestate, baggage) oder einen einzelnen traceparent-Wert ein und klicken Sie auf Kontext prüfen; Beispiel laden füllt ein Muster ein, wenn Sie die Ausgabeform vorher sehen möchten.
  2. Lesen Sie die Übersicht: Version, Trace-ID, Parent-Span-ID, Sampling-Zustand sowie Anzahl der tracestate- und baggage-Einträge, gefolgt von der Befundliste.
  3. Klicken Sie auf Kindkontext erzeugen, um die Trace-ID mit neuer Parent-Span-ID zu behalten, oder auf Root-Kontext erzeugen, um einen neuen Trace zu starten; der ausgehende Headerblock erscheint darunter.
  4. Mit Kopieren übernehmen Sie den erzeugten Block, mit Zurücksetzen leeren Sie Eingabe, Übersicht und beide Tabellen.

Was der Inspector Feld für Feld kontrolliert

Die traceparent-Prüfung, Regel für Regel

Ein traceparent besteht aus vier mit Bindestrichen getrennten Feldern: einer zweistelligen Hex-Version in Kleinbuchstaben, einer 32-stelligen Trace-ID, einer 16-stelligen Parent-Span-ID und einem zweistelligen Flags-Feld. Version ff ist reserviert und wird abgelehnt; Version 00 muss genau vier Felder haben, höhere Versionen dürfen weitere Felder anhängen und werden vorwärtskompatibel akzeptiert. Beide IDs müssen Hex in Kleinbuchstaben sein und dürfen nicht nur Nullen enthalten; der Sampling-Zustand steht im ersten Bit der Flags: 01 bedeutet gesampelt, 00 nicht gesampelt.

Ein Headerblock mit zwei traceparent-Zeilen wird abgelehnt: die Spezifikation verlangt genau eine. Header-Namen werden ohne Rücksicht auf Groß- und Kleinschreibung verglichen, Traceparent: wirkt also wie traceparent:, die Werte dagegen exakt: eine großgeschriebene ID, eine 31-stellige Trace-ID, ein fehlendes Feld oder ein zusätzliches Suffix scheitern jeweils mit dem Grund, der das defekte Feld nennt.

tracestate und baggage, Eintrag für Eintrag

tracestate ist eine kommagetrennte Liste von Schlüssel=Wert-Paaren. Jeder Schlüssel muss der W3C-Grammatik folgen — ein einfacher Schlüssel in Kleinbuchstaben wie acme oder ein tenant@system-Schlüssel — und die Liste darf höchstens 32 Einträge enthalten. Die Tabelle zeigt jeden Eintrag, markiert fehlerhafte Paare, kennzeichnet einen wiederholten Schlüssel und warnt, wenn die Liste das Limit überschreitet. Die Werte selbst sind Anbieterdaten und werden unverändert angezeigt.

baggage-Einträge verwenden HTTP-Token-Schlüssel und dürfen nach dem Wert Metadaten hinter einem Semikolon tragen. Ungültige Token-Schlüssel werden markiert, und eine Stichwortprüfung hebt Einträge hervor, deren Schlüssel oder Wert secret, token, password, E-Mail, authorization, cookie, session oder user nennt. Das ist ein Hinweis zum Prüfen vor dem Teilen — kein Sicherheitsscan: Er kann nicht wissen, ob ein Wert wirklich sensibel ist, und baggage-Werte werden unverändert ausgegeben, ohne Prozent-Dekodierung.

Kontext erzeugen — und was das Werkzeug nicht tut

Kindkontext erzeugen liest die Eingabe zuerst neu, behält dann die Trace-ID, erzeugt eine neue zufällige Parent-Span-ID und übernimmt Flags, tracestate und baggage: das ist der Headersatz, den ein nachgelagerter Dienst empfängt. Root-Kontext erzeugen erzeugt eine neue zufällige Trace-ID und Parent-Span-ID mit gesetztem Sampling-Flag: das ist der Headersatz, mit dem ein neuer Trace beginnt.

Dies ist ein Inspector für die W3C-Header, kein Tracing-Backend: Er kann nicht sagen, ob eine Trace-ID in Ihrem Collector existiert, und liest keine B3-, Zipkin-, Jaeger- oder anbieterspezifischen Formate. Die Eingabe verlässt den Browser nie, die Seite funktioniert nach dem Laden offline weiter, und das Werkzeug sendet die Header an keinen Server.

Zuletzt verwendet: