# OpenTelemetry-W3C-traceparent-/tracestate-/baggage- und OTLP-Header-Propagierungs-Validator

Prüft traceparent nach der W3C-Trace-Context-ABNF (Version / 16-Byte-Trace-ID / 8-Byte-Parent-ID / 1-Byte-Trace-Flags; Nullen und Version ff werden abgelehnt, Großschreibung verwarnt), tracestate (≤32 Mitglieder, einfache und tenant@system-Schlüssel, Duplikat-Warnungen) und baggage (prozent-kodierte Werte mit opaken Properties); validiert den OTLP-Export-Content-Type und den 25-Byte-Binärkontext von grpc-trace-context-bin; korreliert zwei traceparent in einem simulierten Round-Trip (Trace-ID-Stabilität und Kollision einer zufälligen Child-Span-ID) und gibt normalisierte Header aus.

> Kanonische Seite: https://elysiatools.com/de/tools/opentelemetry-w3c-traceparent-tracestate-baggage-and-otlp-protobuf-headers-propagation-validator

- **Kategorie:** Development

- **Schlagwörter:** W3C Trace Context, traceparent, tracestate, baggage, OpenTelemetry, OTLP-Header, verteiltes Tracing, Span-ID, Propagierungs-Validierung

## Überblick

Traceparent-Syntax: version(2 HEX)-trace-id(32 HEX klein)-parent-id(16 HEX klein)-trace-flags(2 HEX); keine inneren Leerzeichen; trace-id/parent-id nie Null; Version ff ist reserviert und ungültig; Bit0 = sampled, Version-00-Empfänger ignorieren den Rest. tracestate ist eine key=value-Liste getrennt durch OWS","OWS (≤32), Schlüssel einfach (lcalpha-Beginn) oder system-id@tenant, Werte ohne =/, Leerzeichen und ≤256 druckbare Zeichen. baggage: erstes Segment key=value (Wert nur aus baggage-octet, außerhalb Percent-Kodierung Pflicht, ungültige %-Folgen sind Fehler); folgende ;prop sind opake Properties. OTLP: Binär-Export verlangt Content-Type: application/x-protobuf (JSON: application/json); in gRPC gilt grpc-trace-context-bin = base64(trace-id 16B ‖ span-id 8B ‖ flags 1B), 25 Bytes, mit Rückprüfung gegen traceparent. Korrelations-Round-Trip: dieselbe Trace-ID rotiert pro Sprung neue Span-IDs (8 Zufallsbytes, nicht Null, kollisionsfrei zum Parent); eine stabile Trace-ID vereint die Kontexte zu einem verteilten Trace.

## Eingaben

- **traceparent-Header** (text): 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
- **tracestate-Header** (text): congo=t61rcWkgMzE,rojo=00f067aa0ba902b7
- **baggage-Header** (text): userId=alice;serverNode=DF%2028
- **OTLP-Transport** (select)
- **Export-Content-Type** (text): application/x-protobuf
- **grpc-trace-context-bin (Base64)** (text): S/kvNXezTaajzpKdDg5HNgDw…
- **Zweites traceparent (Korrelation)** (text): 00-4bf92f35…-aabbccddeeff0011-01

## Wann verwenden

- Beim Debuggen von unterbrochenen verteilten Traces zwischen Microservices über HTTP oder gRPC.
- Zur Verifizierung von OTLP-Export-Headern wie Content-Type und grpc-trace-context-bin vor dem Senden an Collector.
- Beim Testen von benutzerdefinierten Instrumentierungen auf korrekte Header-Propagierung und Span-ID-Rotation.

## Funktionsweise

- Analysiert den traceparent-Header auf korrekte ABNF-Syntax (Version, 16-Byte-Trace-ID, 8-Byte-Parent-ID, Flags) und lehnt reservierte Werte wie Version ff oder reine Null-IDs ab.
- Validiert tracestate-Listen (maximal 32 Elemente, korrekte Tenant-Schlüssel) und prüft baggage-Einträge auf prozent-kodierte Werte und opake Properties.
- Prüft OTLP-Content-Types (application/x-protobuf bzw. application/json) und dekodiert 25-Byte-Binärkontexte aus grpc-trace-context-bin zum Abgleich mit dem traceparent.
- Führt bei Angabe eines zweiten traceparent-Headers einen Korrelationsabgleich durch, um die Trace-ID-Stabilität über Hops hinweg sowie Span-ID-Kollisionen zu prüfen.

## Anwendungsfälle

- Prüfung manuell generierter Tracing-Header in API-Gateway-Plugins und Service-Meshes.
- Validierung von OTLP-Metadaten und gRPC-Binärkontexten beim Aufbau von Custom Exportern.
- Fehleranalyse bei Trace-Verlusten durch ungültige Prozentkodierung im baggage-Header.

## Häufig gestellte Fragen

### Warum wird die traceparent-Version 'ff' abgelehnt?

Laut W3C-Trace-Context-Spezifikation ist die Versionsnummer 'ff' explizit für zukünftige Erweiterungen reserviert und gilt derzeit als ungültig.

### Welcher Content-Type ist für den binären OTLP-Export erforderlich?

Für den binären OTLP-Protobuf-Export über HTTP ist der Header Content-Type: application/x-protobuf zwingend vorgeschrieben.

### Wie ist der Header grpc-trace-context-bin aufgebaut?

Er enthält genau 25 Base64-kodierte Bytes, bestehend aus einer 16-Byte-Trace-ID, einer 8-Byte-Span-ID und einem 1-Byte-Trace-Flags-Feld.

### Wie viele Einträge darf ein tracestate-Header maximal enthalten?

Die W3C-Spezifikation erlaubt maximal 32 durch Kommas getrennte Schlüssel-Wert-Paare in der tracestate-Liste.

### Was prüft der Round-Trip-Vergleich mit einem zweiten traceparent?

Er prüft, ob die Trace-ID über Aufrufe hinweg identisch bleibt und ob die neue Child-Span-ID gültig ist und nicht mit dem Parent kollidiert.

## Ähnliche Tools

- [Hash-Algorithmus-Vergleich](https://elysiatools.com/de/tools/hash-algorithm-comparator): Hasht dieselbe Eingabe mit MD5, SHA-1, SHA-256, SHA-512, BLAKE2b und BLAKE3 und vergleicht sie: Ausgabelänge, Hex/Base64-Digest, Sicherheitsstatus (gebrochen/modern) und relatives Geschwindigkeits-Benchmark. Gut für Lehre, Algorithmuswahl und Prüfsummenkontrolle.
- [PKCE Code Verifier & Challenge Generator](https://elysiatools.com/de/tools/pkce-code-verifier-generator): Erzeugt, validiert und verifiziert OAuth2-/OIDC-PKCE (RFC 7636) Code-Verifier-/Challenge-Paare. Drei Modi: (1) ein frisches Paar aus kryptografisch sicheren Zufallsbytes (256/384/512/768 Bit) erzeugen, (2) einen eigenen Verifier gegen den RFC prüfen — Länge (43–128), Zeichensatz \[A-Za-z0-9-._~\] und ≥256 Bit Entropie, und (3) ein Paar verifizieren durch Neuberechnung von BASE64URL(SHA256(verifier)). Optional werden die vollständige Autorisierungs-URL und der Token-Austausch-Body gebaut. Ergänzt den generischen Nonce-Generator (der nur das Paar ausgibt) um RFC-Konformitäts-Audit und Paar-Verifikation.
- [RSA Verschlüsseln / Entschlüsseln](https://elysiatools.com/de/tools/rsa-encrypt-decrypt): Verschlüsselt Text mit einem öffentlichen RSA-Schlüssel oder entschlüsselt den Geheimtext mit dem passenden privaten Schlüssel, mit OAEP-Padding (SHA-1 oder SHA-256). Lange Nachrichten werden blockweise verarbeitet. Schlüssel und Daten bleiben lokal. PKCS#1 v1.5 wird bewusst nicht angeboten (Node deaktiviert es für die Entschlüsselung wegen Bleichenbacher-Angriffen).
- [Data-URI-Generator](https://elysiatools.com/de/tools/data-uri-generator): Konvertiert Dateien in Data URIs (Base64 oder prozent-kodiert), um Bilder, Schriftarten und Ressourcen direkt in HTML, CSS oder Markdown einzubetten
- [Base64 Konverter](https://elysiatools.com/de/tools/base64-converter): Kodiert und dekodiert Daten zu/von Base64-Format mit URL-safe Optionen
- [Erweiterte Text-Codecs (Base65536 + netstring)](https://elysiatools.com/de/tools/extended-text-base-codecs): Kodiere/Dekodiere mit selteneren Codecs: Base65536 (binär → dichtes Unicode) und netstring (selbstbegrenzendes Framing).
- [OCR-PDF-zu-strukturiertes-JSON-Brücke](https://elysiatools.com/de/tools/ocr-pdf-to-structured-json-bridge): Extrahiert die PDF-Textebene mit Geometrie (Zeilen nach y-Position, Tabellen nach Spaltenlücken, Überschriften nach Schriftgröße, Doppelpunkt-Schlüsselwerte) und füllt Feld für Feld ein benutzerdefiniertes JSON Schema — Labels werden über normalisierte Schlüssel gepaart, Werte zu deklarierten Typen konvertiert und mit ajv validiert.
- [Leet-Speak-Konverter](https://elysiatools.com/de/tools/leet-speak-converter): Wandelt Text in Leet Speak (1337) und zurück um. Kodiert mit den Stilen Basis, Voll oder Großbuchstaben oder dekodiert Leet in Klartext.

## Beispiele

- [OpenTelemetry Beispiele](https://elysiatools.com/de/samples/opentelemetry): OpenTelemetry Observability-Standards Beispiele einschließlich Instrumentierung, Tracing, Metriken und Logging in mehreren Sprachen und Frameworks
- [Distributed Tracing Beispiele](https://elysiatools.com/de/samples/distributed-tracing-samples): Umfassende Beispiele für verteiltes Tracing mit Jaeger, OpenTelemetry und modernen Observability Tools
- [MP3 Audio-Beispiele ohne Urheberrechte](https://elysiatools.com/de/samples/mp3-samples): Sammlung urheberrechtsfreier Audio-Beispiele zum Testen und Entwickeln, einschließlich Naturklänge, Meditationsmusik und Umgebungsgeräusche
- [Web Python Bildverarbeitung Beispiele](https://elysiatools.com/de/samples/web-image-processing-python): Web Python Bildverarbeitungsbeispiele mit PIL/Pillow einschließlich Lesen, Speichern, Skalieren und Formatkonvertierung
