Trace te ofrece un mecanismo para añadir datos significativos a tus spans. Si usas la API Cloud Trace V1, puedes añadir etiquetas, que son pares clave-valor, mediante el campo labels
del objeto TraceSpan
de la API Cloud Trace.
Si usas la versión 2 de la API Cloud Trace, puedes añadir información con un objeto Attributes
.
Cuando exploras un intervalo, las etiquetas de ese intervalo se muestran en la pestaña Atributos. Por ejemplo, en la siguiente captura de pantalla se muestra esta pestaña:
Para obtener información sobre cómo acceder a esta información, consulta Buscar y explorar trazas.
El campo labels
es un mapa de pares clave-valor. Las claves y los valores se almacenan como cadenas. Para consultar las restricciones de longitud de las cadenas, consulta la referencia de la API de labels
.
Hay un límite de 32 etiquetas por intervalo.
Claves predefinidas
Etiquetas canónicas
En la siguiente tabla se enumeran las claves predefinidas admitidas, se incluye una descripción y, en algunos casos, un ejemplo:
Clave de etiqueta | Descripción Ejemplo |
---|---|
/agent |
Identificador del agente de traza."node@google-cloud/trace-agent v3.0.0" |
/component |
Identificador del componente."grpc" |
/error/message |
Un mensaje de error."Rendezvous of RPC that terminated with:
|
/error/name |
Nombre visible del error. |
/http/client_city |
Ciudad del cliente."NYC" |
/http/client_country |
El país del cliente."US" |
/http/client_protocol |
Identificador del protocolo HTTP."1.0" |
/http/client_region |
La región del cliente."us-east4" |
/http/host |
Valor del
encabezado Host."default.example.com"
|
/http/method † |
Se asigna al método de solicitud HTTP. No incluyas esta clave en las solicitudes que no sean HTTP. "GET"
|
/http/path † |
Ruta de la URL de solicitud."/cart/checkout" |
/http/redirected_url |
URL anterior a la redirección. En este caso, use la etiqueta de URL de HTTL para almacenar la URL final. |
/http/request/size |
Número de bytes de la solicitud. |
/http/response/size |
Número de bytes de la respuesta. |
/http/route † |
La ruta coincidente."/cart/checkout/:item_id" |
/http/status_code † |
Código de estado de respuesta HTTP."200" |
/http/url |
URL de solicitud HTTP completa."http://example.com"
|
/http/user_agent |
Información sobre el user-agent HTTP que ha originado la solicitud."python-requests/2.19.1"
|
/stacktrace |
Seguimiento de pila con formato JSON.
Los rastreos de pila no se indexan para la búsqueda. Esta etiqueta se muestra en la tabla Pila de llamadas. La etiqueta /stacktrace solo se usa en la API V1. En la API V2, el span contiene un campo stackTrace .
|
"stackTrace": { "stackFrames": { "frame": [ { "functionName": { "value": "serverMethodTrace [as func]" }, "fileName": { "value": "/usr/src/app/node_modules/@google-cloud/trace-agent/build/src/plugins/plugin-grpc.js" }, "lineNumber": "249", "columnNumber": "28" }, { "functionName": { "value": "anonymous function" }, "fileName": { "value": "/usr/src/app/node_modules/grpc/src/server.js" }, "lineNumber": "592", "columnNumber": "13" } ] } }, |
†
Esta etiqueta y su valor se muestran en la tabla Detalles, que se incluye en la vista Detalles del seguimiento.
Etiquetas canónicas de GKE
En la siguiente tabla se enumeran todas las etiquetas canónicas de un contenedor de GKE:
Nombre visible en la tabla Contenedor de GKE Clave de etiqueta |
Descripción |
---|---|
ID del proyectog.co/r/k8s_container/project_id |
El Google Cloud proyecto que aloja el clúster de GKE. Haz clic en el nombre del proyecto para ir al panel de control de GKE en la Google Cloud consola. |
Ubicacióng.co/r/k8s_container/location |
Ubicación física del clúster de GKE. |
Nombre del clústerg.co/r/k8s_container/cluster_name
|
Identifica el clúster de GKE. Para ir a la página de configuración Clusters (Clústeres), haz clic en este valor. |
Espacio de nombresg.co/r/k8s_container/namespace
|
Identifica el espacio de nombres. Para ir a la página Cargas de trabajo de GKE, haz clic en este valor. |
Nombre del podg.co/r/k8s_container/pod_name
|
Identifica el pod de GKE. Para ir al panel de control Detalles de los pods, haz clic en este valor. |
Nombre del contenedorg.co/r/k8s_container/container_name
|
Identifica el contenedor de GKE. Para ir a la página de detalles del contenedor, haga clic en este valor. |
Ejemplo
A continuación, se muestra una representación JSON parcial de un objeto Trace
que incluye varias etiquetas:
{ "projectId": "a-sample-project", "traceId": "00000000000000004db6dd68e7d37f57", "spans": [ { "spanId": "12913864118554233534", "kind": "RPC_SERVER", "name": "http://192.0.2.0/", "startTime": "2024-04-02T19:37:34.149058Z", "endTime": "2025-04-02T19:37:34.151136Z", "parentSpanId": "5599906629317525335", "labels": { "/component": "default", "/http/host": "192.0.2.0", "/http/status_code": "200", "/http/url": "http://192.0.2.0/", "zipkin.io/http.route": "/**", "/http/method": "GET", "zipkin.io/endpoint.ipv4": "10.16.1.6", "zipkin.io/http.path": "/", "zipkin.io/mvc.controller.class": "ResourceHttpRequestHandler" } } ] }
El seguimiento anterior se ha tomado de un sistema que usa un recolector de Zipkin.
En este caso, el recolector ha añadido las etiquetas con las claves zipkin.io
.
Prefijo g.co
En algunos casos, las etiquetas que se muestran
contienen el prefijo g.co
. El prefijo g.co
indica que esta etiqueta se ha generado mediante un servicio de Google. Si ejecutas tu servicio en App Engine u otra infraestructura de Google Cloud , es posible que veas etiquetas como las siguientes:
Clave de etiqueta | Valor de etiqueta de muestra |
---|---|
g.co/agent |
opentelemetry-js 1.18.1; google-cloud-trace-exporter 2.1.0 |
g.co/r/generic_node/location |
global |
Etiquetas personalizadas
Puedes crear etiquetas personalizadas. Si creas una etiqueta personalizada, te recomendamos que utilices los siguientes formatos:
/category/product/key
para agentes de productos conocidos. Por ejemplo,/db/mongodb/read_size
.short_host/path/key
para las claves específicas de dominio. Por ejemplo,g.co/agent
.
Si crea muchas etiquetas personalizadas, puede que el rendimiento se vea afectado debido al aumento de la cardinalidad de las etiquetas.
Como se muestra en la sección Ejemplo, si usas un recolector de Zipkin o una biblioteca como OpenTelemetry, es posible que se añadan etiquetas a tus intervalos de seguimiento.
Usar OpenTelemetry
Si usas bibliotecas de OpenTelemetry, asegúrate de usar las convenciones semánticas de OpenTelemetry al crear spans.