# Validador de propagación OpenTelemetry W3C traceparent / tracestate / baggage y cabeceras OTLP

Valida traceparent según la ABNF de W3C Trace Context (versión / trace-id de 16 bytes / parent-id de 8 bytes / trace-flags de 1 byte; rechaza ceros y versión ff, avisa en mayúsculas), tracestate (≤32 miembros, claves simples y tenant@sistema, avisos por duplicados) y baggage (valores percent-codificados con propiedades opacas); comprueba el Content-Type de exportación OTLP y el contexto binario de 25 bytes de grpc-trace-context-bin; correlaciona dos traceparent en un round-trip simulado (estabilidad del trace-id y colisión de span-id hijo aleatorio) y emite cabeceras normalizadas listas para reenviar.

> Página canónica: https://elysiatools.com/es/tools/opentelemetry-w3c-traceparent-tracestate-baggage-and-otlp-protobuf-headers-propagation-validator

- **Categoría:** Development

- **Palabras clave:** W3C Trace Context, traceparent, tracestate, baggage, OpenTelemetry, cabeceras OTLP, trazado distribuido, span id, validación de propagación

## Descripción general

Sintaxis de traceparent: version(2 HEX)-trace-id(32 HEX minúsculas)-parent-id(16 HEX minúsculas)-trace-flags(2 HEX); sin espacios internos; trace-id/parent-id nunca todo ceros; la versión ff está reservada e invalida; bit0 = sampled y los receptores de la versión 00 ignoran el resto. tracestate es una lista key=value separada por OWS","OWS (≤32), con claves simples (empiezan por lcalpha) o system-id@tenant, valores sin =/, ni espacios y ≤256 caracteres imprimibles. baggage: primer segmento key=value (valor limitado a baggage-octet, percent-codificación obligatoria fuera de rango, secuencias % inválidas marcan error); los ;prop posteriores son propiedades opacas. OTLP: la exportación binaria exige Content-Type: application/x-protobuf (JSON: application/json); en gRPC grpc-trace-context-bin = base64(trace-id 16B ‖ span-id 8B ‖ flags 1B), 25 bytes, con verificación de ida y vuelta frente a traceparent. Round-trip de correlación: el mismo trace-id rota span-ids nuevos en cada salto (8 bytes aleatorios, no cero, sin colisión con el padre); si el trace-id se mantiene, ambos contextos forman un único trace distribuido.

## Entradas

- **cabecera traceparent** (text): 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
- **cabecera tracestate** (text): congo=t61rcWkgMzE,rojo=00f067aa0ba902b7
- **cabecera baggage** (text): userId=alice;serverNode=DF%2028
- **transporte OTLP** (select)
- **Content-Type de exportación** (text): application/x-protobuf
- **grpc-trace-context-bin (base64)** (text): S/kvNXezTaajzpKdDg5HNgDw…
- **Segundo traceparent (correlación)** (text): 00-4bf92f35…-aabbccddeeff0011-01

## Cuándo usarlo

- Al depurar llamadas HTTP o gRPC donde el contexto de rastreo distribuido se pierde entre servicios.
- Al verificar la sintaxis de cabeceras traceparent, tracestate y baggage antes de configurar proxies inversos o API gateways.
- Al comprobar la compatibilidad de cabeceras OTLP binarias y la correlación de saltos entre un span padre y su span hijo.

## Cómo funciona

- Introduce la cabecera traceparent obligatoria y, opcionalmente, tracestate, baggage y el segundo traceparent de correlación.
- Selecciona el transporte OTLP (HTTP o gRPC) e introduce el Content-Type o la cabecera binaria grpc-trace-context-bin en base64.
- El validador analiza la gramática ABNF del W3C: comprueba versiones inválidas (ff), IDs formados enteramente por ceros, codificación hexadecimal y límites de tamaño.
- Revisa el informe detallado con advertencias de mayúsculas, entradas duplicadas en tracestate, decodificación de baggage y el estado de correlación entre saltos.

## Casos de uso

- Diagnóstico de pipelines de observabilidad de OpenTelemetry con caídas en la continuidad del trace-id.
- Auditoría de cabeceras percent-encoded en baggage y validación de propiedades opacas.
- Verificación de Content-Type en exportadores OTLP (application/x-protobuf frente a application/json).

## Preguntas frecuentes

### ¿Por qué se rechaza una cabecera traceparent con versión 'ff'?

La especificación W3C Trace Context reserva el valor de versión 'ff' como inválido para compatibilidad futura, por lo que debe ser descartado.

### ¿Qué ocurre si trace-id o parent-id contienen solo ceros?

La especificación prohíbe identificadores compuestos exclusivamente por ceros (all-zero); se consideran nulos e invalidan el contexto de traza.

### ¿Cuántos miembros permite como máximo la cabecera tracestate?

La especificación limita tracestate a un máximo de 32 elementos clave=valor separados por coma.

### ¿Qué formato debe tener grpc-trace-context-bin en llamadas gRPC?

Debe ser una cadena base64 que decodifique exactamente 25 bytes: 16 bytes de trace-id, 8 bytes de span-id y 1 byte de trace-flags.

### ¿Cómo valida la herramienta la correlación entre dos cabeceras traceparent?

Comprueba que el trace-id sea idéntico en ambos saltos y que el nuevo span-id no sea cero ni colisione con el span-id del padre.

## Herramientas relacionadas

- [Comparador de algoritmos hash](https://elysiatools.com/es/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b y BLAKE3 a la misma entrada y compáralos lado a lado: longitud de salida, digest hex/Base64, estado de seguridad (roto/moderno) y benchmark de velocidad relativa. Útil para enseñanza, elegir algoritmo o verificar checksums.
- [Generador de PKCE Code Verifier y Challenge](https://elysiatools.com/es/tools/pkce-code-verifier-generator): Genera, valida y verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Tres modos: (1) generar un par nuevo a partir de bytes aleatorios criptográficos (256/384/512/768 bits), (2) auditar un verifier existente frente al RFC — longitud (43–128), charset \[A-Za-z0-9-._~\] y ≥256 bits de entropía, y (3) verificar un par recomputando BASE64URL(SHA256(verifier)). Opcionalmente construye la URL completa de autorización y el cuerpo del intercambio de token. Complementa al nonce-genérico (que solo emite el par) con auditoría de cumplimiento RFC y verificación de pares.
- [Cifrado / Descifrado RSA](https://elysiatools.com/es/tools/rsa-encrypt-decrypt): Cifra texto con una clave pública RSA o descifra el texto cifrado con la clave privada correspondiente, usando padding OAEP (SHA-1 o SHA-256). Maneja mensajes largos por bloques. Las claves y datos se quedan en local. No se ofrece PKCS#1 v1.5 (Node lo deshabilita para descifrar por ataques Bleichenbacher).
- [Generador de Data URI](https://elysiatools.com/es/tools/data-uri-generator): Convierte archivos en Data URIs (Base64 o porcentaje-codificado) para incrustar imágenes, fuentes y recursos directamente en HTML, CSS o Markdown
- [Convertidor Base64](https://elysiatools.com/es/tools/base64-converter): Codifica y decodifica datos hacia/desde formato Base64 con opciones URL-safe
- [Códecs de texto extendidos (Base65536 + netstring)](https://elysiatools.com/es/tools/extended-text-base-codecs): Codifica y decodifica con códecs menos comunes: Base65536 (binario → Unicode denso) y netstring (encuadre auto-delimitante).
- [Puente de PDF (OCR) a JSON estructurado](https://elysiatools.com/es/tools/ocr-pdf-to-structured-json-bridge): Extrae la capa de texto del PDF con geometría (líneas por posición y, tablas por huecos de columna, títulos por tamaño de fuente, pares clave-valor con dos puntos) y rellena campo a campo un JSON Schema del usuario — etiquetas emparejadas por claves normalizadas, valores coaccionados a los tipos declarados y validados con ajv.
- [Conversor de Leet Speak](https://elysiatools.com/es/tools/leet-speak-converter): Convierte texto a y desde leet speak (1337). Codifica con estilos Básico, Completo o Mayúsculas, o decodifica leet a texto plano.

## Ejemplos

- [Ejemplos de OpenTelemetry](https://elysiatools.com/es/samples/opentelemetry): Ejemplos de estándares de observabilidad OpenTelemetry incluyendo instrumentación, trazado, métricas y logging en múltiples lenguajes y frameworks
- [Muestras de Trazado Distribuido](https://elysiatools.com/es/samples/distributed-tracing-samples): Ejemplos completos de trazado distribuido usando Jaeger, OpenTelemetry y herramientas de observabilidad modernas
- [Muestras MP3 Sin Derechos de Autor](https://elysiatools.com/es/samples/mp3-samples): Colección de muestras de audio sin derechos de autor para pruebas y desarrollo, incluyendo sonidos de la naturaleza, música de meditación y audio ambiental
- [Ejemplos de Procesamiento de Imágenes Web Python](https://elysiatools.com/es/samples/web-image-processing-python): Ejemplos de procesamiento de imágenes Web Python usando PIL/Pillow incluyendo lectura, guardado, redimensionamiento y conversión de formato
