El seguimiento proporciona un mecanismo para agregar datos significativos a tus
períodos. Si usas la API de Cloud Trace V1,
puedes agregar etiquetas, que son pares clave-valor, con el
campo labels
en la
API de Cloud Trace TraceSpan
.
Si usas la API de Cloud Trace v2, puedes agregar información con un objeto Attributes
.
Para obtener más información, consulta Cómo agregar anotaciones de eventos a los intervalos de seguimiento.
Cuando exploras un intervalo, sus etiquetas se muestran en el Pestaña Atributos. Por ejemplo, en la siguiente captura de pantalla, se ilustra esta pestaña:
Para obtener más información sobre cómo acceder a esta información, consulta Cómo buscar y explorar seguimientos
El campo labels
es un mapa de pares clave-valor. Las claves y los valores se almacenan
como cadenas de texto. Para conocer las restricciones de longitud de cadena, consulta la
Referencia de la API para labels
.
Existe un límite de 32 etiquetas por intervalo.
Claves predefinidas
Etiquetas canónicas
La siguiente tabla enumera las claves predefinidas admitidas, incluye una descripción, y, en algunos casos, incluye un ejemplo:
Clave de etiqueta | Descripción Ejemplo |
---|---|
/agent |
Identificador de agente de seguimiento."node@google-cloud/trace-agent v3.0.0" |
/component |
Identificador de componente."grpc" |
/error/message |
Un mensaje de error."Rendezvous of RPC that terminated with: |
/error/name |
Es el nombre visible del error. |
/http/client_city |
La ciudad del cliente."NYC" |
/http/client_country |
El país del cliente."US" |
/http/client_protocol |
Identificador de protocolo HTTP."1.0" |
/http/client_region |
La región del cliente."us-east4" |
/http/host |
El valor del Encabezado del host."default.example.com" |
/http/method † |
Se establece en el método de solicitud HTTP. No incluyas esta clave para solicitudes que no sean HTTP. "GET"
|
/http/path † |
Ruta de solicitud-URL."/cart/checkout" |
/http/redirected_url |
La URL anterior al redireccionamiento. En este caso, usa la etiqueta de URL de HTTL clave para almacenar la URL final. |
/http/request/size |
Cantidad de bytes en la solicitud. |
/http/response/size |
Cantidad de bytes en 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 usuario-agente de HTTP que originó la solicitud."python-requests/2.19.1" |
/stacktrace |
Es el seguimiento de pila con formato JSON.
Los seguimientos de pila no están indexados para la búsqueda. Esta etiqueta se muestra en la tabla Pila de llamadas. Solo la API V1 usa la etiqueta /stacktrace . En el caso de la API de V2, 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 de seguimiento.
Etiquetas canónicas para 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 |
La región de Google Cloud que aloja el clúster de GKE. Haz clic en el nombre del proyecto para ir a Panel de GKE en la consola de Google Cloud. |
Ubicacióng.co/r/k8s_container/location |
La ubicación física del clúster de GKE. |
Nombre del clúster:g.co/r/k8s_container/cluster_name
|
Identifica el clúster de GKE. Para ir a la página de configuración de 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 a Pods details, 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, haz clic en este valor. |
Ejemplo
La siguiente es 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://xx.xxx.xxx.xxx/", "startTime": "2019-04-02T19:37:34.149058Z", "endTime": "2019-04-02T19:37:34.151136Z", "parentSpanId": "5599906629317525335", "labels": { "/component": "default", "/http/host": "xx.xxx.xxx.xxx", "/http/status_code": "200", "/http/url": "http://xx.xxx.xxx.xxx/", "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 registro anterior se tomó de un sistema mediante un recopilador Zipkin.
En este caso, ese recopilador agregó las etiquetas con claves zipkin.io
.
Prefijo g.co
En algunos casos, las etiquetas que se muestran
contienen un prefijo g.co
. El prefijo g.co
indica
que un servicio de Google generó esta etiqueta. Si ejecutas tu servicio en App Engine o en 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 crea una etiqueta personalizada, le recomendamos que uses los siguientes formatos:
/category/product/key
para agentes de productos conocidos. Por ejemplo,/db/mongodb/read_size
short_host/path/key
para claves específicas del dominio Por ejemplo,g.co/agent
Si creas muchas etiquetas personalizadas, esto podría generar un impacto en el rendimiento debido al aumento de la cardinalidad de etiquetas.
Como se ilustra en la sección Example, si usas un archivo Zipkin o una biblioteca como OpenTelemetry, podría agregar etiquetas a los intervalos de seguimiento.
Usa OpenTelemetry
Si usas bibliotecas de OpenTelemetry, asegúrate de usar el Convenciones semánticas de OpenTelemetry cuando se crean intervalos