En este documento, se describe brevemente el contexto, que se refiere al estado y a la propagación de contexto, que hace referencia a pasar información de estado a operaciones secundarias. Para el seguimiento distribuido, el ID de seguimiento y el ID del intervalo que se está procesando se deben pasar a las operaciones secundarias.
Las operaciones secundarias crean un intervalo y establecen los siguientes campos:
- ID de intervalo: Es un identificador único para la operación secundaria. Si la misma operación se ejecuta varias veces, entonces hay varios intervalos para esa operación, cada uno con un identificador único.
- ID de seguimiento: Es el identificador único de la operación de extremo a extremo en la que una operación general particular. Se proporciona el valor de este campo por la madre o el padre.
- ID de intervalo superior: Es el identificador único del intervalo superior.
El superior proporciona el valor de este campo.
Para los intervalos raíz, este ID es
null
.
Los valores de los campos de ID de seguimiento, ID de intervalo y ID de intervalo superior permiten que un sistema de seguimiento distribuido vincule correctamente los intervalos para formar un seguimiento. Por ejemplo, Cloud Trace almacena intervalos en un repositorio y usa estos Campos de ID para identificar qué intervalos componen un seguimiento.
El contexto puede incluir otra información de estado que sea útil para la distribución el seguimiento de conversiones. Por ejemplo, el estándar del Consorcio World Wide Web (W3C) incluye Información sobre si el intervalo superior se muestreó.
Protocolos para la propagación de contextos
En las siguientes secciones, se describe cómo los protocolos de solicitud específicos propagan el contexto.
Solicitudes HTTP
En el caso de las solicitudes HTTP, la propagación de contexto suele realizarse a través de los encabezados HTTP, como los encabezados traceparent
y tracestate
, que estandarizó el W3C.
Los servicios de Google Cloud que admiten la propagación del contexto de seguimiento suelen admitir
traceparent
y el encabezado X-Cloud-Trace-Context
heredado
Cuando sea posible, te recomendamos que utilices
Encabezado traceparent
en tus aplicaciones. Tu
es posible que tu aplicación deba usar el encabezado X-Cloud-Trace-Context
heredado
deba admitir la recepción del contexto de seguimiento en un formato diferente.
Si tienes una aplicación que solo admite el encabezado X-Cloud-Trace-Context
, te recomendamos que la actualices para que admita y priorice el encabezado traceparent
. Tu aplicación puede seguir usando el
El encabezado X-Cloud-Trace-Context
como solución de resguardo
En la siguiente tabla, se resumen algunas diferencias significativas entre los dos encabezados:
Atributo | traceparent Encabezado |
Encabezado X-Cloud-Trace-Context |
---|---|---|
Separadores | guiones (-) |
barra diagonal (/) y punto y coma (;) |
Representación del ID de intervalo |
Hexadecimal | Decimal |
Encabezado X-Cloud-Trace-Context
heredado
El encabezado X-Cloud-Trace-Context
que usa Google Cloud es anterior al
Especificación W3C.
Para la retrocompatibilidad, algunos servicios de Google Cloud siguen aceptando,
generando y propagando el encabezado X-Cloud-Trace-Context
. Sin embargo, es
lo más probable es que estos sistemas también admitan el encabezado traceparent
.
El encabezado X-Cloud-Trace-Context
tiene el siguiente formato:
X-Cloud-Trace-Context: TRACE_ID/SPAN_ID;o=OPTIONS
Los campos del encabezado se definen de la siguiente manera:
TRACE_ID
es un valor hexadecimal de 32 caracteres que representa un número de 128 bits.SPAN_ID
es una representación decimal de 64 bits del ID de intervalo sin firma.OPTIONS
admite0
(elemento superior sin muestrear) y1
(se muestreó el elemento superior).
Solicitudes gRPC
Para las solicitudes gRPC, la propagación de contexto se logra mediante
Los metadatos de gRPC, que se implementan sobre los encabezados HTTP.
Las aplicaciones de gRPC pueden usar el encabezado traceparent
o un
clave de contexto de metadatos llamada grpc-trace-bin
.
Para los componentes de tu propiedad, te recomendamos que uses el encabezado traceparent
.
Propagación del contexto para los servicios de Google Cloud
Los servicios de Google Cloud pueden actuar como iniciadores o intermediarios en la solicitud el procesamiento de datos. Por ejemplo, se sabe que los siguientes servicios participan en procesar solicitudes:
- Apigee
- App Engine
- Cloud Endpoints
- Funciones de Cloud Run
- Cloud Load Balancing
- Cloud Run
- Cloud Scheduler
- Cloud Tasks
- Pub/Sub
La compatibilidad con la iniciación y propagación del contexto de seguimiento es que dependen del servicio específico de Google Cloud. Para solicitar que un servicio de Google Cloud agregue compatibilidad con la propagación de contexto, usar la Herramienta de seguimiento de errores de Google
Propagación del contexto en tus aplicaciones
Algunas bibliotecas de instrumentación, como OpenTelemetry,
propagar automáticamente un objeto context
que contenga los datos necesarios
para el seguimiento. Si usas estos tipos de bibliotecas, los intervalos
generadas por tu aplicación estén configurados correctamente. Para obtener una lista de las bibliotecas de OpenTelemetry que admiten el seguimiento, consulta APIs y SDK de lenguaje. Para una instrumentación
Ejemplo, consulta Genera seguimientos y métricas con Go.
Si dependes de una biblioteca de código abierto, determina si la propagación de contextos está disponible y si se requiere configuración.
Cuando no hay una biblioteca de instrumentación adecuada, debes asegurarte de que tu aplicación se propague el contexto de seguimiento a las operaciones secundarias.
¿Qué sigue?
Obtén más información sobre el muestreo de seguimiento.
Recursos de OpenTelemetry: