Service Mesh Envoy 访问日志

在服务网格上接收到请求时生成审核日志的应用(Envoy 边车)具有以下日志格式。

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
}
字段
bytes_sent

string

正文中发送的字节数。对于 WebSocket 连接,它还包括在响应标头中发送的字节数。例如 "46259"

x_forwarded_for

string

从客户端到服务器的请求所访问的 IP 地址。例如 "10.200.0.1"

severity_text

string

有关日志条目严重级别的信息。它可能是空值。

observed_time_unix_nano

integer

日志条目收集的 UNIX 纪元时间(以纳秒为单位)。例如 1668556781041333000

user_agent

string

用于检索、呈现并促进最终用户与网页内容互动的软件的名称。它还指使用 Web 技术实现的界面。例如 "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

x_request_id

string

单个请求的唯一 ID。例如 "a4cadca4-662f-4a9c-af63-39a5b3275d8b"

start_time

string

请求的开始时间(精确到毫秒)。例如 "2022-11-15T23:59:41.041Z"

upstream_local_address

string

上游连接的本地地址。如果是 IP 地址,则包含地址和端口。例如 "127.0.0.6:42179"

connection_termination_details

string

有关 Envoy 终止连接的其他信息。它可能是空值。

severity_number

integer

日志条目的严重级别。例如 0

resource

object

生成日志条目的 Envoy 资源的属性。这些属性以键值对的形式存在于对象中。例如,

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

x_envoy_upstream_service_time

string

上游主机处理请求所用的时间(以毫秒为单位)。例如 "0"

response_code_details

string

有关响应代码的其他信息,例如由谁(上游或 Envoy)设置以及设置原因。例如 "via_upstream"

upstream_host

string

上游主机的网址。例如 "10.253.132.163:80"

duration

string

从开始时间到最后一个字节输出的请求总时长(以毫秒为单位)。例如 "4"

upstream_cluster

string

上游主机所属的集群。例如 "inbound|80||"

upstream_transport_failure_reason

string

如果上游连接因传输套接字而失败,则提供来自传输套接字的失败原因。此字段的格式取决于配置的上游传输套接字。例如 "SSLV3_ALERT_CERTIFICATE_EXPIRED"

authority

string

目标 URI 中的主机和端口信息。例如 "console.zone1.google.gdch.test"

username

string

发起请求的用户身份。例如 "fop-cluster-admin@example.com"

protocol

string

请求的协议类型。例如 "HTTP/1.1"

route_name

string

路线的名称。例如 "default"

requested_server_name

string

在 SSL 连接套接字上为服务器名称指示 (SNI) 设置的值。例如 "outbound_.80_._.fleet-admin-platform-admin-ui.gpc-system.svc.cluster.local"

method

string

方法的名称。例如 "GET"

time_unix_nano

integer

日志条目收集的 UNIX 纪元时间(以纳秒为单位)。例如 1668556781041333000

bytes_received

string

正文中收到的字节数。例如 "0"

path

string

HTTP 请求的路径。例如 "/metrics"

response_flags

string

有关响应或连接的其他详细信息(如有)。例如 "UH (no healthy upstream hosts)"

x_goog_api_client

string

API 客户端标识。它可能是空值。

body

object

请求正文。它可能是空值。

downstream_local_address

string

下游连接的本地地址。如果是 IP 地址,则包含地址和端口。例如 "10.253.132.163:80"

downstream_remote_address

string

下游连接的远程地址。如果是 IP 地址,则包含地址和端口。例如 "10.200.0.1:0"

response_code

string

HTTP 响应代码。

可能的值:

  • "200" (成功)
  • "403" (禁止的请求)
  • "500" (错误)