指標篩選條件的篩選條件模式語法 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

指標篩選條件的篩選條件模式語法

注意

指標篩選條件與 CloudWatch Logs Insights 查詢的差異

指標篩選條件與 CloudWatch Logs Insights 查詢的不同之處在於,每次找到相符的日誌時,都會將指定的數值新增至指標篩選條件。如需詳細資訊,請參閱配置指標篩選條件的指標值

如需有關如何使用 Amazon CloudWatch Logs Insights 查詢語言查詢日誌群組的資訊,請參閱 CloudWatch Logs Insights 語言查詢語法

一般篩選條件模式範例

如需適用於指標篩選條件以及訂閱篩選條件篩選條件日誌事件的一般篩選條件模式語法,請參閱適用於指標篩選條件、訂閱篩選條件和篩選條件日誌事件的篩選條件模式語法,其中包括下列範例:

  • 支援的規則運算式 (regex) 語法

  • 在非結構化日誌事件中比對詞彙

  • 在 JSON 日誌事件中比對詞彙

  • 比對以空格分隔的日誌事件中的詞彙

指標篩選條件可讓您搜尋和篩選進入 CloudWatch Logs 的日誌資料、從篩選的日誌資料中擷取指標觀測項目,以及將資料點轉換為 CloudWatch Logs 指標。定義要在傳送至 CloudWatch Logs 的日誌資料中尋找的詞彙和模式。指標篩選條件指派給日誌群組,並且指派給日誌群組的所有篩選條件都會套用於其日誌串流。

當指標篩選條件與某個詞彙相符時,便會以指定的數值增加指標的計數。例如:您可以建立指標篩選條件來搜尋與計算日誌事件中單字 ERROR (錯誤) 的出現次數。

您可以對指標指派度量單位和維度。例如:如果您建立了一個指標篩選條件,以計算單字 ERROR (錯誤) 在日誌事件中出現的次數,則可以指定一個名為 ErrorCode 的維度,以顯示包含 ERROR (錯誤) 這個單字的日誌事件總數,並根據回報的錯誤代碼篩選資料。

提示

指派度量單位給指標時,務必指定正確的單位。如果隨後再更改單位,則更改可能無法生效。如需 CloudWatch 支援的單位完整清單,請參閱 Amazon CloudWatch API 參考 中的 MetricDatum

配置指標篩選條件的指標值

建立指標篩選條件時,您可以定義篩選條件模式,並指定指標的值和預設值。您可以將指標值設置為數字、名稱標識符或數字識別碼。如果您未指定預設值,指標篩選條件找不到相符項目時,CloudWatch 將不會回報資料。我們建議您指定預設值,即使該值為 0。設定預設值有助於 CloudWatch 更準確地回報資料,防止 CloudWatch 彙總起伏不定的指標。CloudWatch 每分鐘彙總並報告指標值。

指標篩選條件在日誌事件中找到相符項目時,會根據指標值增加指標的計數。如果指標篩選條件未找到相符項目,CloudWatch 會回報指標的預設值。例如:假設有一個日誌群組,每分鐘發佈兩個記錄且指標值為 1,預設值為 0。如果指標篩選條件第一分鐘內,在兩個日誌記錄中找到相符項目,則該分鐘的指標值為 2。如果指標篩選條件第二分鐘內,未在任何一筆記錄中找到相符項目,則該分鐘的預設值為 0。如果將維度分配給指標篩選條件產生的指標,則無法為這些指標指定預設值。

您也可以設置指標篩選條件,使用從日誌事件中擷取的值 (而非靜態值) 來增加指標。如需詳細資訊,請參閱使用日誌事件中的值來增加指標的值

從 JSON 或空格分隔日誌事件的值中將維度連同指標一起發佈

您可以使用 CloudWatch 主控台或 AWS CLI 建立指標篩選條件,以發佈 JSON 和空格分隔日誌事件產生的指標維度。維度是名稱/數值配對,僅適用於 JSON 和空格分隔的篩選條件模式。您可以建立最多包含三個維度的 JSON 和空格分隔的指標篩選條件。如需維度以及如何將維度指派給指標的詳細資訊,請參閱下列各節:

重要

維度包含與自訂指標相同收費的值。為了避免費用出乎意料,請勿將高基數欄位指定為維度,例如 IPAddressrequestID

從日誌事件擷取的指標會以自訂指標收費。為了避免費用意外過高,如果指標篩選條件針對您已指定的維度,在一定時間內產生 1000 個不同的名稱/值組,Amazon 可能會停用該指標篩選條件。

您可以建立帳單警示,通知您預估的費用。如需詳細資訊,請參閱建立帳單警示以監控預估 AWS 費用

下列範例程式碼片段描述如何在 JSON 指標篩選條件中指定維度。

Example: JSON log event
{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ {"name": "a", "id": 1 }, {"name": "b", "id": 2 } ] }
注意

如果要使用 JSON 日誌事件範例測試指標篩選條件範例,則必須在單行中輸入JSON 日誌範例。

Example: Metric filter

每當 JSON 日誌事件包含屬性 eventType"sourceIPAddress" 時,指標篩選條件會增加指標。

{ $.eventType = "*" && $.sourceIPAddress != 123.123.* }

當您建立 JSON 指標篩選條件時,您可以將指標篩選條件中的任何屬性指定為維度。例如:若要設定 eventType 作為維度,請使用下列內容:

"eventType" : $.eventType

指標範例包含一個名為 "eventType" 的維度,其維度值在日誌事件範例中為 "UpdateTrail"

下列範例程式碼片段,描述如何在空格分隔的指標篩選條件中指定維度。

Example: Space-delimited log event
127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
Example: Metric filter
[ip, server, username, timestamp, request, status_code, bytes > 1000]

當空格分隔的日誌事件包含篩選條件中指定的任何欄位時,該指標篩選條件會增加指標。例如:指標篩選條件在空格分隔的日誌事件範例中查找下列欄位和值。

{ "$bytes": "1534", "$status_code": "404", "$request": "GET /index.html HTTP/1.0", "$timestamp": "10/Oct/2000:13:25:15 -0700", "$username": "frank", "$server": "Prod", "$ip": "127.0.0.1" }

當您建立空格分隔的指標篩選條件時,您可以將指標篩選條件中的任何欄位指定為維度。例如:若要設定 server 作為維度,請使用下列內容:

"server" : $server

指標篩選條件範例中有一個名為 server 的維度,其維度值在日誌事件範例中為 "Prod"

Example: Match terms with AND (&&) and OR (||)

您可以使用邏輯運算子邏輯與 ("&&") 和邏輯或 ("||") 建立包含條件的空格分隔的指標篩條件。下列指標篩選條件會傳回第一個單字為 ERROR 或 WARN 超級字串的日誌事件。

[w1=ERROR || w1=%WARN%, w2]

使用日誌事件中的值來增加指標的值

您可以建立指標篩選條件來發佈日誌事件中找到的數值。本節中的過程中使用下列範例指標篩選條件,來示範如何將 JSON 日誌事件中的數值發佈到指標。

{ $.latency = * } metricValue: $.latency
建立在日誌事件中發佈的值的指標篩選條件
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 在導覽窗格中,選擇 Logs (日誌),然後選擇 Log groups (日誌群組)。

  3. 選擇或建立日誌群組。

    如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的在 CloudWatch Logs 中建立日誌群組

  4. 選擇 Actions (動作),然後選擇 Create metric filter (建立指標篩選條件)。

  5. 針對 Filter Pattern (篩選條件模式),輸入 { $.latency = * },然後選擇 Next (下一步)。

  6. 針對 Metric Name (指標名稱),輸入 myMetric

  7. 針對 Metric Value (指標值),輸入 $.latency

  8. (選用) 針對 Default Value (預設值),輸入 0,然後選擇 Next (下一步)。

    我們建議您指定預設值,即使該值為 0。設定預設值有助於 CloudWatch 更準確地回報資料,防止 CloudWatch 彙總起伏不定的指標。CloudWatch 每分鐘彙總並報告指標值。

  9. 選擇 Create metric filter (建立指標篩選條件)

指標篩選條件的範例與 JSON 日誌事件範例中的詞彙 "latency" 相符,並將數值 50 發佈到指標 myMetric

{ "latency": 50, "requestType": "GET" }