Trace fornisce un meccanismo per aggiungere dati significativi ai tuoi intervalli. Se utilizzi l'Cloud Trace API V1,
puoi aggiungere etichette, ovvero coppie chiave-valore, utilizzando il
campo labels
nell'oggetto
TraceSpan
dell'Cloud Trace API.
Se utilizzi l'Cloud Trace API V2, puoi aggiungere informazioni con un oggetto Attributes
.
Per maggiori informazioni, consulta
Aggiungere annotazioni di eventi per gli intervalli di traccia.
Quando esplori un intervallo, le relative etichette vengono visualizzate nella scheda Attributi. Ad esempio, lo screenshot seguente illustra questa scheda:
Per informazioni su come accedere a queste informazioni, vedi Trovare ed esplorare tracce.
Il campo labels
è una mappa di coppie chiave-valore. Le chiavi e i valori sono
memorizzati come stringhe. Per le limitazioni relative alla lunghezza delle stringhe, consulta il riferimento API per labels
.
Esiste un limite di 32 etichette per intervallo.
Chiavi predefinite
Etichette canoniche
La seguente tabella elenca le chiavi predefinite supportate, include una descrizione e, in alcuni casi, include un esempio:
Chiave di etichetta | Descrizione Esempio |
---|---|
/agent |
Identificatore agente Trace."node@google-cloud/trace-agent v3.0.0" |
/component |
Identificatore componente."grpc" |
/error/message |
Un messaggio di errore."Rendezvous of RPC that terminated with:
|
/error/name |
Nome visualizzato dell'errore. |
/http/client_city |
La città del cliente."NYC" |
/http/client_country |
Il paese del cliente."US" |
/http/client_protocol |
Identificatore di protocollo HTTP."1.0" |
/http/client_region |
La regione del client."us-east4" |
/http/host |
Il valore dell'intestazione host."default.example.com"
|
/http/method † |
Imposta il metodo di richiesta HTTP. Non includere questa chiave per le richieste non HTTP. "GET"
|
/http/path † |
Percorso URL richiesta."/cart/checkout" |
/http/redirected_url |
L'URL prima del reindirizzamento. In questo caso, utilizza l'etichetta 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 della richiesta HTTP completo."http://example.com"
|
/http/user_agent |
Informazioni sullo user agent HTTP che ha originato la richiesta."python-requests/2.19.1"
|
/stacktrace |
Analisi dello stack in formato JSON.
Le analisi dello stack non vengono indicizzate per la ricerca. Questa etichetta viene visualizzata nella tabella Stack di chiamate. L'etichetta /stacktrace viene 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
La seguente tabella elenca tutte le etichette canoniche per un container GKE:
Nome visualizzato nella tabella Container GKE Chiave etichetta |
Descrizione |
---|---|
ID progettog.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 del clusterg.co/r/k8s_container/cluster_name
|
Identifica il cluster GKE. Per andare alla pagina di configurazione Cluster, fai clic su questo valore. |
Spazio dei nomig.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 podg.co/r/k8s_container/pod_name
|
Identifica il pod GKE. Per accedere alla dashboard Dettagli pod, fai clic su questo valore. |
Nome containerg.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 precedente è stata acquisita da un sistema utilizzando un raccoglitore Zipkin.
In questo caso, le etichette con zipkin.io
chiavi sono state aggiunte dal raccoglitore.
Prefisso g.co
In alcuni casi, le etichette visualizzate
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 su un'altra infrastruttura di Google Cloud, potresti vedere etichette come le seguenti:
Chiave di etichetta | Valore etichetta di esempio |
---|---|
g.co/agent |
opentelemetry-js 1.18.1; google-cloud-trace-exporter 2.1.0 |
g.co/r/generic_node/location |
global |
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 le chiavi specifiche del dominio. Ad esempio,g.co/agent
.
La creazione di molte etichette personalizzate potrebbe influire sulle prestazioni grazie alla maggiore cardinalità delle etichette.
Come illustrato nella sezione Esempio, se utilizzi un raccoglitore Zipkin o una libreria come OpenTelemetry, potrebbero aggiungere etichette agli intervalli di traccia.
Utilizzo di OpenTelemetry
Se utilizzi librerie OpenTelemetry, assicurati di utilizzare le Convenzioni semantiche di OpenTelemetry durante la creazione di intervalli.