En este documento, se describe el formato en el que se almacenan los intervalos de seguimiento. El formato de los datos suele ser coherente con los archivos .proto definidos por el protocolo OTLP de OpenTelemetry. Sin embargo, los campos se pueden convertir de un tipo de datos específico de OpenTelemetry a un tipo de datos JSON antes del almacenamiento.
La API de Telemetry usa el protocolo OTLP de OpenTelemetry.
Este protocolo se basa en los archivos trace_service.proto y trace.proto. Para obtener información sobre los límites de los campos, consulta Límites de la API de Telemetry.
La API de Cloud Trace no usa el protocolo OTLP de OpenTelemetry y define un formato de datos propietario. Los datos de seguimiento que se envían a tu proyecto Google Cloud a través de esta API se convierten al formato que se describe en este documento. Sin embargo, se aplican los límites de la API de Cloud Trace.
Formato de almacenamiento de tramos
| Campo | Descripción | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trace_id |
Identificador único a nivel global del registro de seguimiento.
Este identificador es un valor numérico de 128 bits con formato de cadena hexadecimal de 16 bytes. Por ejemplo, No se acepta un valor numérico de cero. Las herramientas de visualización y análisis usan el |
||||||||||||||||
span_id |
Obligatorio. Identificador del intervalo.
Debe ser único dentro de un registro.
Este identificador es un valor numérico de 64 bits
con formato de cadena hexadecimal de 8 bytes.
Por ejemplo, No se acepta un valor numérico de cero. |
||||||||||||||||
trace_state |
Este campo corresponde al encabezado Las bibliotecas de OpenTelemetry registran automáticamente el valor del encabezado |
||||||||||||||||
parent_span_id |
Es opcional. Identifica la operación que invocó este intervalo. El intervalo "raíz" tiene el ID del intervalo principal establecido como nulo. Las herramientas de visualización utilizan la relación principal-secundaria entre los intervalos para construir la estructura de árbol. |
||||||||||||||||
name |
Obligatorio. Nombre de la operación que se realizó. El nombre puede ser el de un método o algún otro nombre del sitio por llamada. Para el mismo ejecutable y el mismo extremo, usar un nombre coherente facilita la correlación de los intervalos entre los registros. Para conocer las prácticas recomendadas, consulta Cómo nombrar tus intervalos. El nombre del tramo se limpia y se muestra en la consola de Google Cloud . |
||||||||||||||||
kind |
Especifica en qué parte del sistema se llevó a cabo la operación. El valor corresponde a la enumeración OpenTelemetry: Span Kind:
|
||||||||||||||||
start_time |
Obligatorio. Hora de inicio del período, expresada en nanosegundos. |
||||||||||||||||
start_time_unix_nano |
Hora de inicio en nanosegundos, según la época de UNIX. |
||||||||||||||||
end_time |
Obligatorio. Es la fecha y hora de finalización del período, expresada en nanosegundos. |
||||||||||||||||
end_time_unix_nano |
Es la hora de finalización en nanosegundos, según la época de UNIX. |
||||||||||||||||
receive_time |
Obligatorio. Es la hora de recepción del intervalo, expresada en nanosegundos. |
||||||||||||||||
receive_time_unix_nano |
Es la hora de finalización en nanosegundos, según la época de UNIX. |
||||||||||||||||
duration_unix_nano |
Es la duración en nanosegundos. |
||||||||||||||||
attributes |
Cada atributo es un par clave-valor. Los atributos disponibles para ti dependen de tus datos de seguimiento. La estructura de los atributos sigue el estándar de OpenTelemetry. Para obtener más información, consulta OpenTelemetry: Attributes (OpenTelemetry: Atributos). OpenTelemetry especifica convenciones semánticas para los atributos. Para obtener más información sobre estas convenciones, consulta Convenciones semánticas de seguimiento. A continuación, se muestran ejemplos de atributos: "yourcompany.your.own.key": "your own value" "network.protocol.name": "http" "network.protocol.version": "1.1" "http.response.status_code": "200" "network.peer.address": "REDACTED" |
||||||||||||||||
dropped_attributes_count |
Es la cantidad de atributos que se descartaron. Los atributos se pueden descartar porque sus claves son demasiado largas o porque hay demasiados atributos. Cuando este valor es cero, no se descartó ningún atributo. Este valor lo puede establecer la instrumentación del cliente o una aplicación. El servidor puede incrementar el valor. |
||||||||||||||||
events |
Es un evento de un momento determinado. Cada evento contiene los siguientes campos.
|
||||||||||||||||
dropped_events_count |
Es la cantidad de eventos que se descartaron. Se pueden descartar eventos porque hay demasiados. Cuando este valor es cero, no se descartó ningún evento. |
||||||||||||||||
links |
Son los vínculos asociados con el intervalo. Los vínculos son referencias de este intervalo a otro intervalo en el mismo registro o en uno diferente. Los vínculos proporcionan un mecanismo para correlacionar los tramos de un registro con los tramos de otro registro. Por ejemplo, supongamos que una operación provoca que se produzca una operación asíncrona. En este caso, hay dos registros, uno para la operación original y otro para la operación asíncrona. Puedes usar vínculos para correlacionar los intervalos en estos registros. Cada vínculo contiene los siguientes campos.
|
||||||||||||||||
dropped_links_count |
Es la cantidad de vínculos que se descartaron. Se pueden descartar vínculos porque hay demasiados. Cuando este valor es cero, no se descartaron vínculos. |
||||||||||||||||
status |
En este campo, se registra el estado de finalización de un intervalo.
El valor del subcampo
El subcampo |
||||||||||||||||
resource |
Este campo identifica el sistema de infraestructura o alojamiento desde el que se recopiló la telemetría o sobre el que trata la telemetría. Por ejemplo, considera una aplicación que se ejecuta en Google Kubernetes Engine. Los atributos de este recurso pueden incluir el nombre del proceso y el espacio de nombres. Este campo contiene los siguientes subcampos:
Para obtener más información, consulta OpenTelemetry: Recursos. |
||||||||||||||||
instrumentation_scope |
Este campo identifica el componente de la biblioteca o la aplicación para el Por ejemplo, supongamos que la aplicación "checkout-service" se implementa en Cloud Run, lo que significa que Un intervalo de cliente, como "WritePaymentInfoToStripe", podría ser un intervalo del que informa la "biblioteca de procesador de pagos", que se encuentra dentro del servicio de Cloud Run llamado "checkout-service". Este campo contiene los siguientes subcampos:
Para obtener más información, consulta OpenTelemetry: Ámbito de la instrumentación. |
||||||||||||||||
resource_schema_link |
Estos campos deben ser una URL con formato de cadena. Estos campos contienen una URL que devuelve un archivo de esquema para un recurso. OpenTelemetry define el formato del archivo de esquema y los datos. Para obtener más información, consulta OpenTelemetry: Esquemas. Estos campos solo se pueden configurar cuando se usa la API de Telemetry. Esa API no valida que los datos se ajusten al esquema declarado. |
||||||||||||||||
scope_schema_link |
Estos campos deben ser una URL con formato de cadena. Estos campos contienen una URL que devuelve un archivo de esquema para un alcance. OpenTelemetry define el formato del archivo de esquema y los datos. Para obtener más información, consulta OpenTelemetry: Esquemas. Estos campos solo se pueden configurar cuando se usa la API de Telemetry. Esa API no valida que los datos se ajusten al esquema declarado. |
||||||||||||||||
apphub |
Las etiquetas específicas de la aplicación están disponibles cuando las aplicaciones de App Hub generan intervalos de seguimiento, cuando esas aplicaciones se ejecutan en la infraestructura compatible o cuando se instrumentaron. Para obtener más información sobre la Supervisión de la aplicación y cuándo están disponibles estas etiquetas, consulta la Descripción general de la Supervisión de la aplicación. Este campo contiene los subcampos
|