Etichette di Trace

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Trace offre un meccanismo per annotare i tuoi intervalli con dati significativi. Se utilizzi l'API Cloud Trace V1, puoi creare queste annotazioni utilizzando il campo labels nell'oggetto TraceSpan dell'API Cloud Trace. Se utilizzi l'API Cloud Trace V2, puoi creare annotazioni con gli attributi. Per ulteriori informazioni sulle opzioni di annotazione, consulta la pagina relativa all'annotazione delle sezioni.

La maggior parte delle etichette viene visualizzata nella tabella Etichette quando viene visualizzata la visualizzazione a cascata di Trace:

Pagina elenco di tracce con etichette e un'analisi dello stack visualizzate.

Esistono altre posizioni in cui vengono visualizzate le etichette:

  • Il riquadro Dettagli elenca le etichette HTTP più comuni.
  • La tabella Stack di chiamate elenca i contenuti dell'etichetta stacktrace. Questa tabella viene visualizzata solo se l'intervallo contiene un'analisi dello stack.
  • La tabella Container GKE mostra le etichette canoniche per un container GKE. Ogni riga della tabella si riferisce a un'etichetta specifica e il valore è un link che puoi utilizzare per visualizzare le informazioni sulla risorsa in modo più dettagliato.

Il campo labels è una mappa delle coppie chiave-valore. Le chiavi e i valori sono archiviati come stringhe. Per le limitazioni sulla lunghezza delle stringhe, consulta la documentazione di riferimento per l'API labels.

Esiste un limite di 32 etichette per intervallo.

Chiavi predefinite

Etichette canoniche

La tabella riportata di seguito elenca le chiavi predefinite supportate, include una descrizione e, in alcuni casi, include un esempio:

Chiave di etichettaEsempio di
descrizione
/agent Identificatore dell'agente Trace.
"node@google-cloud/trace-agent v3.0.0"
/component Identificatore del componente.
"grpc"
/error/message Un messaggio di errore.
"Rendezvous of RPC that terminated with:
status = StatusCode.UNAVAILABLE details = OS Error."
/error/name Nome visualizzato per l'errore.
/http/client_city La città del cliente.
"NYC"
/http/client_country Il paese del cliente.
"US"
/http/client_protocol Identificatore del protocollo HTTP.
"1.0"
/http/client_region L'area geografica del client.
"us-east4"
/http/host Il valore dell'intestazione host.
"default.example.com"
/http/method Imposta sul metodo di richiesta HTTP.
Non includere questa chiave per le richieste non HTTP.
"GET"
/http/path Percorso dell'URL della richiesta.
"/cart/checkout"
/http/redirected_url L'URL prima del reindirizzamento.
In questo caso, utilizza l'etichetta dell'URL HTTL della chiave per archiviare l'URL finale.
/http/request/size Numero di byte nella richiesta.
/http/response/size Numero di byte nella risposta.
/http/route Il percorso corrispondente.
"/cart/checkout/:item_id"
/http/status_code Codice di stato della risposta HTTP.
"200"
/http/url URL di richiesta HTTP completo.
"http://example.com"
/http/user_agent Informazioni sullo user agent HTTP che ha creato la richiesta.
"python-requests/2.19.1"
/stacktrace Analisi dello stack in formato JSON. Le analisi dello stack non sono indicizzate per la ricerca.
Questa etichetta viene visualizzata nella tabella Stack di chiamate.
L'etichetta /stacktrace è utilizzata solo dall'API V1.
Per l'API 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"
          }
        ]
      }
    },

Questa etichetta e il relativo valore vengono visualizzati nella tabella Dettagli inclusa nella visualizzazione Dettagli traccia.

Etichette canoniche per GKE

Nella tabella seguente sono elencate tutte le etichette canoniche per un container GKE:

Nome visualizzato nella tabella Container GKE
Chiave di etichetta
Descrizione
ID progetto
g.co/r/k8s_container/project_id
Il progetto Google Cloud che ospita il cluster GKE. Fai clic sul nome del progetto per accedere alla dashboard di GKE nella console Google Cloud.
Località
g.co/r/k8s_container/location
La località fisica del cluster GKE.
Nome cluster
g.co/r/k8s_container/cluster_name
Identifica il cluster GKE. Per andare alla pagina di configurazione Cluster, fai clic su questo valore.
Spazio dei nomi
g.co/r/k8s_container/namespace
Identifica lo spazio dei nomi. Per andare alla pagina Carichi di lavoro di GKE, fai clic su questo valore.
Nome pod
g.co/r/k8s_container/pod_name
Identifica il pod GKE. Per andare alla dashboard Dettagli pod, fai clic su questo valore.
Nome container
g.co/r/k8s_container/container_name
Identifica il container GKE. Per andare alla pagina dei dettagli del contenitore, fai clic su questo valore.

Esempio

Di seguito è riportata una rappresentazione JSON parziale di un oggetto Trace che include più etichette:

{
  "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"
      }
    }
  ]
}

La traccia di cui sopra è stata recuperata da un sistema che utilizza un raccoglitore Zipkin. In questo caso, le etichette con chiavi zipkin.io sono state aggiunte dal raccoglitore.

Prefisso g.co

In alcuni casi, le etichette visualizzate nella vista a cascata della traccia contengono un prefisso g.co. Il prefisso g.co indica che questa etichetta è stata generata da un servizio Google. Se esegui il servizio su App Engine o altra infrastruttura Google Cloud, potresti vedere etichette come le seguenti:

Chiave di etichetta Valore etichetta di esempio
g.co/agent opencensus-go[0.15.0]
g.co/gce/instanceid 12345678900000000

Etichette personalizzate

Puoi creare etichette personalizzate. Se crei un'etichetta personalizzata, ti consigliamo di utilizzare i seguenti formati:

  • /category/product/key per gli agenti di prodotti noti. Ad esempio, /db/mongodb/read_size.
  • short_host/path/key per chiavi specifiche del dominio. Ad esempio, g.co/agent.

La creazione di molte etichette personalizzate potrebbe influire sul rendimento a causa dell'aumento delle cardinalità delle etichette.

Come illustrato nella sezione Esempio, se utilizzi un Zipkin raccoglitore o una libreria come OpenCensus, è possibile che vengano aggiunte etichette ai tuoi intervalli di traccia.

Usare OpenCensus

Se utilizzi le librerie OpenCensus, devi utilizzare il nome dell'attributo OpenCensus. Per trovare una tabella che elenca il nome dell'attributo OpenCensus con il nome predefinito dell'etichetta di Cloud Trace, vedi Attributi.