Log di accesso di Envoy di Service Mesh

Le applicazioni (sidecar Envoy) che generano log di controllo sul mesh di servizi al ricevimento delle richieste hanno il seguente formato di log.

Rappresentazione JSON

{
  "bytes_sent": string,
  "x_forwarded_for": string,
  "severity_text": string,
  "observed_time_unix_nano": integer,
  "user_agent": string,
  "x_request_id": string,
  "start_time": string,
  "upstream_local_address": string,
  "connection_termination_details": string,
  "severity_number": integer,
  "resource": {
    object
  },
  "x_envoy_upstream_service_time": string,
  "response_code_details": string,
  "upstream_host": string,
  "duration": string,
  "upstream_cluster": string,
  "upstream_transport_failure_reason": string,
  "authority": string,
  "username": string,
  "protocol": string,
  "route_name": string,
  "requested_server_name": string,
  "method": string,
  "time_unix_nano": integer,
  "bytes_received": string,
  "path": string,
  "response_flags": string,
  "x_goog_api_client": string,
  "body": {
    object
  },
  "downstream_local_address": string,
  "downstream_remote_address": string,
  "response_code": string
}
Campi
bytes_sent

string

I byte inviati nel corpo. Per una connessione WebSocket, include anche i byte inviati nell'intestazione della risposta. Ad esempio, "46259"

x_forwarded_for

string

Gli indirizzi IP visitati da una richiesta dal client al server. Ad esempio, "10.200.0.1"

severity_text

string

Informazioni sul livello di gravità della voce di log. Potrebbe essere un valore vuoto.

observed_time_unix_nano

integer

Il timestamp dell'epoca di Unix in nanosecondi della raccolta della voce di log. Ad esempio, 1668556781041333000

user_agent

string

Il nome del software che recupera, esegue il rendering e facilita l'interazione dell'utente finale con i contenuti web. Si riferisce anche all'interfaccia utente implementata utilizzando tecnologie web. Ad esempio, "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

x_request_id

string

L'ID univoco di una singola richiesta. Ad esempio, "a4cadca4-662f-4a9c-af63-39a5b3275d8b"

start_time

string

L'ora di inizio della richiesta fino ai millisecondi. Ad esempio, "2022-11-15T23:59:41.041Z"

upstream_local_address

string

L'indirizzo locale della connessione upstream. Se si tratta di un indirizzo IP, include l'indirizzo e la porta. Ad esempio, "127.0.0.6:42179"

connection_termination_details

string

Ulteriori informazioni sul motivo per cui Envoy ha interrotto la connessione. Potrebbe essere un valore vuoto.

severity_number

integer

Il livello di gravità della voce di log. Ad esempio, 0

resource

object

Gli attributi della risorsa Envoy che ha prodotto la voce di log. Questi attributi sono in coppie chiave-valore nell'oggetto. Ad esempio,

{
  "log_name": string,
  "cluster_name": string,
  "node_name": string,
  "zone_name": string
}

x_envoy_upstream_service_time

string

Il tempo in millisecondi che l'host upstream ha impiegato per elaborare la richiesta. Ad esempio, "0"

response_code_details

string

Informazioni aggiuntive sul codice di risposta, ad esempio chi lo ha impostato (upstream o Envoy) e perché. Ad esempio, "via_upstream"

upstream_host

string

L'URL dell'host upstream. Ad esempio, "10.253.132.163:80"

duration

string

Durata totale in millisecondi della richiesta dall'ora di inizio all'ultimo byte inviato. Ad esempio, "4"

upstream_cluster

string

Il cluster a cui appartiene l'host upstream. Ad esempio, "inbound|80||"

upstream_transport_failure_reason

string

Se la connessione upstream non riesce a causa di un socket di trasporto, viene fornito il motivo dell'errore dal socket di trasporto. Il formato di questo campo dipende dal socket di trasporto upstream configurato. Ad esempio, "SSLV3_ALERT_CERTIFICATE_EXPIRED"

authority

string

Le informazioni sull'host e sulla porta dell'URI di destinazione. Ad esempio, "console.zone1.google.gdch.test"

username

string

L'identità dell'utente che ha avviato la richiesta. Ad esempio, "fop-cluster-admin@example.com"

protocol

string

Il tipo di protocollo della richiesta. Ad esempio, "HTTP/1.1"

route_name

string

Il nome dell'itinerario. Ad esempio, "default"

requested_server_name

string

Il valore impostato sul socket di connessione SSL per l'indicazione nome server (SNI). Ad esempio, "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"

method

string

Il nome del metodo. Ad esempio, "GET"

time_unix_nano

integer

Il timestamp dell'epoca di Unix in nanosecondi della raccolta della voce di log. Ad esempio, 1668556781041333000

bytes_received

string

I byte ricevuti nel corpo. Ad esempio, "0"

path

string

Il percorso della richiesta HTTP. Ad esempio, "/metrics"

response_flags

string

Eventuali dettagli aggiuntivi sulla risposta o sulla connessione. Ad esempio, "UH (no healthy upstream hosts)"

x_goog_api_client

string

L'identificazione del client API. Potrebbe essere un valore vuoto.

body

object

Il corpo della richiesta. Potrebbe essere un valore vuoto.

downstream_local_address

string

L'indirizzo locale della connessione downstream. Se si tratta di un indirizzo IP, include l'indirizzo e la porta. Ad esempio, "10.253.132.163:80"

downstream_remote_address

string

L'indirizzo remoto della connessione downstream. Se si tratta di un indirizzo IP, include l'indirizzo e la porta. Ad esempio, "10.200.0.1:0"

response_code

string

Il codice di risposta HTTP.

Valori possibili:

  • "200" (Riuscito)
  • "403" (Richiesta vietata)
  • "500" (Errore)