Propagación de Contexto

Aprende sobre el concepto que habilita el trazado distribuido.

Con la propagación de contexto, las señales pueden correlacionarse entre sí, independientemente de dónde se generen. Aunque no está limitado a las trazas, la propagación de contexto permite que las trazas construyan información causal sobre un sistema a través de servicios que están distribuidos arbitrariamente a través de límites de procesos y redes.

Para entender la propagación de contexto, necesitas comprender dos conceptos separados: contexto y propagación.

Contexto

El contexto es un objeto que contiene la información para que el servicio emisor y receptor, o la unidad de ejecución, puedan correlacionar una señal con otra.

Cuando el Servicio A llama al Servicio B, incluye un ID de traza y un ID de span como parte del contexto. El Servicio B usa estos valores para crear un nuevo span que pertenece a la misma traza, estableciendo el span del Servicio A como su padre. De esta forma, es posible seguir el recorrido completo de una petición a través de los servicios.

Propagación

La propagación es el mecanismo que mueve el contexto entre servicios y procesos. Serializa o deserializa el objeto de contexto y proporciona la información relevante para ser propagada de un servicio a otro.

La propagación generalmente es manejada por bibliotecas de instrumentación y es transparente para el usuario. En caso de que necesites propagar manualmente el contexto, puedes utilizar la API de Propagadores.

OpenTelemetry mantiene varios propagadores oficiales. El propagador predeterminado utiliza los encabezados especificados por la especificación de W3C TraceContext.

Especificación

Para aprender más sobre la Propagación de Contexto, consulta la especificación de Contexto.