日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過CEL編寫訪問日志過濾規(guī)則

訪問日志是了解業(yè)務和服務網(wǎng)格運行狀態(tài)的重要觀測渠道。在訪問量較大的業(yè)務場景中,按照特定條件過濾日志,可以節(jié)約Sidecar的性能開銷,并專注于關(guān)鍵日志內(nèi)容。ASM支持使用CEL(Common Expression Language)語言設置日志過濾規(guī)則。本文介紹ASM AccessLog CEL過濾的使用方法和CEL支持的字段,幫助您自定義配置過濾規(guī)則。

過濾規(guī)則

CEL表達式返回為真的訪問日志將被輸出,反之不會輸出。

場景示例

示例一:僅輸出響應狀態(tài)碼為400以上的訪問日志

response.code >= 400

response.code表示HTTP Response的HTTP Status。當HTTP Status≥400時,表達式為真,輸出該請求的訪問日志。

示例二:僅輸出請求URI中包含login字樣的訪問日志

request.url_path.contains('login')
  • request.url_path表示HTTP Request的路徑(不包含query串)。

  • contains是CEL標準的字符串方法,返回布爾值,用于判斷字符串是否包含給定的子串。當request.url_path包含login子串時,表達式為真,輸出該請求的訪問日志。

示例三:使用邏輯與、邏輯或進行多個條件判斷

  • 邏輯與(&&)

    request.url_path.contains('login') && request.headers['x-user-type'] == 'dev'
    • request.url_path表示HTTP Request的路徑(不包含query串)。

    • request.headers表示請求中的請求頭,類型為map<string, string>。

    • 當請求的url_path包含login,且請求攜帶了x-user-type請求頭,且該請求頭的value為dev時,輸出該請求的訪問日志。

  • 邏輯或(||)

    request.url_path.contains('login') || request.url_path.contains('logout')
    • request.url_path表示HTTP Request的路徑(不包含query串)。

    • 當請求的url_path包含login或者logout時,輸出該請求的訪問日志。

CEL支持的字段說明

請求屬性

屬性

類型

說明

request.path

string

URL的路徑部分。

request.url_path

string

URL的路徑部分,但不包含query串。

request.host

string

URL的主機名部分。

request.scheme

string

URL中的Scheme部分,例如HTTP、HTTPS。

request.method

string

請求方法,例如GET、POST。

request.headers

map<string, string>

所有請求Header的map。

request.referer

string

請求中Refer頭的值。

request.useragent

string

請求攜帶的User-Agent請求頭的值。

request.time

timestamp

收到請求的首個字節(jié)的時間戳。

request.id

string

請求攜帶的x-request-id請求頭的值。

request.protocol

string

請求協(xié)議,例如HTTP/1.0、HTTP/1、HTTP/2或HTTP/3。

request.query

string

URL中的query串部分,例如name1=value1&name2=value2。

request.duration

duration

請求花費的總時長。

request.size

int

請求體的大小,如果Content-Length請求頭存在,則使用它的值。

request.total_size

int

包含請求頭的完整請求大小。

響應屬性

屬性

類型

說明

response.code

int

請求響應的HTTP狀態(tài)碼。

response.code_details

string

響應狀態(tài)碼的描述信息。

response.flags

int

除響應HTTP狀態(tài)碼之外的額外信息,以Bit Vector形式編碼。

response.grpc_status

int

響應的GRPC狀態(tài)碼。

response.headers

map<string, string>

所有響應Header的map。

response.trailers

map<string, string>

所有響應中攜帶的Trailer的map。

response.size

int

響應體大小。

response.total_size

int

包含響應頭的完整響應大小。

下游屬性

屬性

類型

說明

source.address

string

下游連接客戶端的地址。

source.port

int

下游連接客戶端的端口。

destination.address

string

下游連接的目標地址。

destination.port

int

下游連接的目標端口。

connection.id

uint

下游連接的ID。

connection.mtls

bool

是否在下游連接上啟用了TLS以及下游連接是否攜帶了證書。

connection.requested_server_name

string

下游TLS連接請求的服務器名稱。

connection.tls_version

string

下游連接的TLS版本。

connection.subject_local_certificate

string

下游連接服務端證書的Subject字段。

connection.subject_peer_certificate

string

下游連接客戶端證書的Subject字段。

connection.dns_san_local_certificate

string

下游TLS連接中服務端證書的SAN字段中的第一個DNS條目。

connection.dns_san_peer_certificate

string

下游TLS連接中客戶端證書的SAN字段中的第一個DNS條目。

connection.uri_san_local_certificate

string

下游TLS連接中服務端證書的SAN字段中的第一個URI條目。

connection.uri_san_peer_certificate

string

下游TLS連接中客戶端證書的SAN字段中的第一個URI條目。

connection.sha256_peer_certificate_digest

string

下游TLS連接中客戶端證書的SHA256哈希串。

connection.transport_failure_reason

string

傳輸失敗的原因,例如certificate validation failed。

上游屬性

屬性

類型

說明

upstream.address

string

上游連接的目標地址。

upstream.port

int

上游連接的目標端口。

upstream.tls_version

string

上游連接的TLS版本。

upstream.subject_local_certificate

string

上游連接使用的客戶端證書的Subject字段的值。

upstream.subject_peer_certificate

string

上游連接使用的服務端證書的Subject字段的值。

upstream.dns_san_local_certificate

string

上游連接客戶端證書中的SAN字段中的第一個DNS條目。

upstream.dns_san_peer_certificate

string

上游連接服務端證書中的SAN字段中的第一個DNS條目。

upstream.uri_san_local_certificate

string

上游連接客戶端證書中的SAN字段中的第一個URI條目。

upstream.uri_san_peer_certificate

string

上游連接服務端證書中的SAN字段中的第一個URI條目。

upstream.sha256_peer_certificate_digest

string

下游TLS連接中服務端證書的SHA256哈希串。

upstream.local_address

string

上游連接的客戶端本地地址。

upstream.transport_failure_reason

string

上游傳輸失敗原因,例如certificate validation failed。