Log akses Envoy Service Mesh

Aplikasi (Envoy sidecar) yang membuat log audit di service mesh setelah menerima permintaan memiliki format log berikut.

Representasi 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
}
Kolom
bytes_sent

string

Byte yang dikirim dalam isi pesan. Untuk koneksi websocket, ini juga mencakup byte yang dikirim dalam header respons. Contoh, "46259"

x_forwarded_for

string

Alamat IP yang dikunjungi oleh permintaan dari klien ke server. Contoh, "10.200.0.1"

severity_text

string

Informasi tentang tingkat keparahan entri log. Mungkin berupa nilai kosong.

observed_time_unix_nano

integer

Waktu epoch UNIX dalam nanodetik pengumpulan entri log. Contoh, 1668556781041333000

user_agent

string

Nama software yang mengambil, merender, dan memfasilitasi interaksi pengguna akhir dengan konten web. Istilah ini juga merujuk pada antarmuka pengguna yang diimplementasikan menggunakan teknologi web. Contoh, "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

x_request_id

string

ID unik dari satu permintaan. Contoh, "a4cadca4-662f-4a9c-af63-39a5b3275d8b"

start_time

string

Waktu mulai permintaan hingga milidetik. Contoh, "2022-11-15T23:59:41.041Z"

upstream_local_address

string

Alamat lokal koneksi upstream. Jika berupa alamat IP, maka akan mencakup alamat dan port. Contoh, "127.0.0.6:42179"

connection_termination_details

string

Informasi tambahan tentang alasan Envoy menghentikan koneksi. Mungkin berupa nilai kosong.

severity_number

integer

Tingkat keparahan entri log. Contoh, 0

resource

object

Atribut resource Envoy yang menghasilkan entri log. Atribut ini berada dalam pasangan nilai kunci di objek. Misalnya,

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

x_envoy_upstream_service_time

string

Waktu dalam milidetik yang dihabiskan host upstream untuk memproses permintaan. Contoh, "0"

response_code_details

string

Informasi tambahan tentang kode respons, seperti siapa yang menyetelnya (upstream atau Envoy) dan alasannya. Contoh, "via_upstream"

upstream_host

string

URL host upstream. Contoh, "10.253.132.163:80"

duration

string

Total durasi permintaan dalam milidetik dari waktu mulai hingga byte terakhir keluar. Contoh, "4"

upstream_cluster

string

Cluster yang mencakup host upstream. Contoh, "inbound|80||"

upstream_transport_failure_reason

string

Jika koneksi upstream gagal karena soket transport, koneksi akan memberikan alasan kegagalan dari soket transport. Format kolom ini bergantung pada soket transport upstream yang dikonfigurasi. Contoh, "SSLV3_ALERT_CERTIFICATE_EXPIRED"

authority

string

Informasi host dan port dari URI target. Contoh, "console.zone1.google.gdch.test"

username

string

Identitas pengguna yang memulai permintaan. Contoh, "fop-cluster-admin@example.com"

protocol

string

Jenis protokol permintaan. Contoh, "HTTP/1.1"

route_name

string

Nama rute. Contoh, "default"

requested_server_name

string

Nilai yang ditetapkan pada soket koneksi SSL untuk Server Name Indication (SNI). Contoh, "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"

method

string

Nama metode. Contoh, "GET"

time_unix_nano

integer

Waktu epoch UNIX dalam nanodetik pengumpulan entri log. Contoh, 1668556781041333000

bytes_received

string

Byte yang diterima dalam isi pesan. Contoh, "0"

path

string

Jalur permintaan HTTP. Contoh, "/metrics"

response_flags

string

Detail tambahan tentang respons atau koneksi, jika ada. Contoh, "UH (no healthy upstream hosts)"

x_goog_api_client

string

Identifikasi klien API. Mungkin berupa nilai kosong.

body

object

Isi permintaan. Mungkin berupa nilai kosong.

downstream_local_address

string

Alamat lokal koneksi hilir. Jika berupa alamat IP, maka akan mencakup alamat dan port. Contoh, "10.253.132.163:80"

downstream_remote_address

string

Alamat jarak jauh dari koneksi hilir. Jika berupa alamat IP, maka akan mencakup alamat dan port. Contoh, "10.200.0.1:0"

response_code

string

Kode respons HTTP.

Nilai yang memungkinkan:

  • "200" (Berhasil)
  • "403" (Permintaan dilarang)
  • "500" (Error)