Etiquetas de seguimiento

Trace proporciona un mecanismo para que agregues datos significativos a tus intervalos. Si usas la API de Cloud Trace V1, puedes agregar etiquetas, que son pares clave-valor, con el campo labels en 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 Agrega anotaciones de eventos para hacer un seguimiento de los intervalos.

Cuando exploras un intervalo, sus etiquetas se muestran en el Pestaña Atributos. Por ejemplo, en la siguiente captura de pantalla se muestra esta pestaña:

Ejemplo de la tabla de atributos de Cloud Trace.

Para obtener 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 etiquetaDescripció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:
status = StatusCode.UNAVAILABLE details = OS Error."
/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 clave de URL de HTTL 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.
Para la API V2, span contiene un 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 de recurso para un contenedor de GKE:

Nombre visible en la tabla Contenedor de GKE
Clave de etiqueta
Descripción
ID del proyecto
g.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ón
g.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 Clústeres, haz clic en este valor.
Espacio de nombres
g.co/r/k8s_container/namespace
Identifica el espacio de nombres. Para ir a en la página Cargas de trabajo de GKE, haz clic en este valor.
Nombre del Pod
g.co/r/k8s_container/pod_name
Identifica el Pod de GKE. Para ir a Pods details, haz clic en este valor.
Nombre del contenedor
g.co/r/k8s_container/container_name
Identifica el contenedor de GKE. Para ir a en la página de detalles del contenedor, haz clic en este valor.

Ejemplo

A continuación, se muestra una representación JSON parcial de un 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 u otra infraestructura de Google Cloud, podrías ver 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 crea muchas etiquetas personalizadas, es posible en el rendimiento debido al aumento de la cardinalidad de las 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