規格:內嵌指標格式 - Amazon CloudWatch

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

規格:內嵌指標格式

內 CloudWatch 嵌度量格式是 JSON 規格,用於指示 CloudWatch 記錄檔自動擷取內嵌在結構化記錄事件中的指標值。您可以使 CloudWatch 用在擷取的量度值上繪製和建立警示。

內嵌指標格式規格慣例

本格式規格中的關鍵字「必須」、「禁止」、「必要」、「可」、「不可」、「應」、「不應」、「建議」、「能」和「選用」應按照 Key Words RFC2119 中的說明解釋。

術語「JSON」,「JSON 文本」,「JSON 值」,「成員」,「元素」,「對象」,「數組」,「數字」,「字符串」,「布爾值」,「真」,「假」和「空」將被解釋為JavaScript 對象表示法 RFC8259 中定義。

注意

如果您打算在使用內嵌指標格式建立的指標上建立警示,請參閱在以內嵌指標格式建立的指標上設定警示以取得相關建議。

內嵌指標格式文件結構

本節說明內嵌指標格式文件的結構。嵌入式度量格式文件是在JavaScript 物件標記 RFC8259 中定義的。

除非另有說明,否則此規格定義的物件「禁止」包含任何其他成員。未經此規格辨識的成員「必須」遭到忽略。此規格中定義的成員區分大小寫。

內嵌的量度格式受到與標準 CloudWatch 記錄事件相同的限制,且大小上限為 256 KB。

借助內嵌指標格式,您可以透過在您帳戶的 AWS/Logs 命名空間中發佈的指標追蹤 EMF 日誌的處理進度。這些指標可用於追蹤從 EMF 產生指標失敗的情形,以及失敗是否因剖析或驗證造成。如需詳細資訊,請參閱使用 CloudWatch 指標監視

根節點

該 LogEvent 消息必須是有效的 JSON 對象,在消 LogEvent 息字符串的開頭或結尾沒有其他數據。如需 LogEvent 結構的詳細資訊,請參閱InputLogEvent

內嵌指標格式文件「必須」在根節點上包含以下最上層成員。這是一個 中繼資料物件 物件。

{ "_aws": { "CloudWatchMetrics": [ ... ] } }

根節點必須包含所有由 MetricDirective 物件 中參考定義的 目標成員 成員。

根節點「能」包含任何其他未包含在以上需求內的成員。這些成員的值「必須」是有效的 JSON 類型。

中繼資料物件

_aws員可用來表示有關承載的中繼資料,通知下游服務應如何處理. LogEvent 其值「必須」是物件且「必須」包含下列成員:

  • CloudWatchMetricsMetricDirective 物件 用於指示 CloudWatch 從的根節點擷取度量的陣列。 LogEvent

    { "_aws": { "CloudWatchMetrics": [ ... ] } }
  • 時間戳記— 數字,表示用於從事件擷取的指標的時間戳記。其值「必須」表示為 UTC 時間 1970 年 1 月 1 日上午 00:00:00 之後的毫秒數。

    { "_aws": { "Timestamp": 1559748430481 } }

MetricDirective 物件

MetricDirective 物件會指示下游服務 LogEvent 包含將擷取並發佈至 CloudWatch的量度。 MetricDirectives 「必須」包含下列成員:

  • 命名空間 — 字串,代表測量結果的 CloudWatch 命名空間。

  • 維度— A DimensionSet 陣列

  • 指標MetricDefinition 物件的陣列。此陣列不得包含超過 100 個 MetricDefinition 物件。

DimensionSet 陣列

A DimensionSet 是字串陣列,其中包含將套用至文件中所有度量的維度索引鍵。此陣列中的值「必須」也是根節點上的成員,稱為 目標成員

A 不 DimensionSet 得包含超過 30 個維度索引鍵。A DimensionSet 可能是空的。

目標成員「必須」擁有字串值。此值不得包含超過 1,024 個字元。目標成員定義了將作為指標身分一部分發佈的維度。每個 DimensionSet 使用的項目都會在中建立新量度 CloudWatch。如需維度的詳細資訊,請參閱維度維度

{ "_aws": { "CloudWatchMetrics": [ { "Dimensions": [ [ "functionVersion" ] ], ... } ] }, "functionVersion": "$LATEST" }
注意

請在設定您的指標擷取時注意,因為這會影響您的自訂指標用量和對應的帳單。如果您不小心建立了以高基數維度 (例如 requestId) 為基礎的指標,根據設計,內嵌指標格式會建立自訂指標,對應至每個獨特的維度組合。如需詳細資訊,請參閱維度

MetricDefinition 物件

A MetricDefinition 是「必須」包含下列成員的物件:

  • 名稱— 字串 參考值 至指標 目標成員。指標目標「必須」是數值或數值的陣列。

一個 MetricDefinition 對象可以包含以下成員:

  • 單位— 選用字串值,表示對應指標的測量單位。值應該是有效的 CloudWatch 公制單位。如需有效單位的資訊,請參閱MetricDatum。如果沒有提供值,則會使用預設值 NONE。

  • StorageResolution— 選擇性整數值,代表對應量度的儲存解析度。將此值設定為 1 會將此量度指定為高解析度量,以便 CloudWatch 儲存小於一秒的分鐘解析度的量度。將此值設定為 60 會將此量度指定為標準解析度,並以 1 分鐘的解析度 CloudWatch 儲存。值應該是有效的 CloudWatch 支援解析度,1 或 60。若沒有提供值,則會使用預設值 60。

    如需高解析度指標的詳細資訊,請參閱 高解析度指標

注意

如果您打算在使用內嵌指標格式建立的指標上建立警示,請參閱在以內嵌指標格式建立的指標上設定警示以取得相關建議。

{ "_aws": { "CloudWatchMetrics": [ { "Metrics": [ { "Name": "Time", "Unit": "Milliseconds", "StorageResolution": 60 } ], ... } ] }, "Time": 1 }

參考值

參考值是參考根節點上 目標成員 成員的字串值。這些參考「不應」與 RFC6901 中說明的 JSON 指標混淆。目標值不可為巢狀。

目標成員

有效目標「必須」是根節點上的成員,且不可為巢狀物件。例如,"A.a" 的 _reference_ 值「必須」符合以下成員:

{ "A.a" }

其「禁止」與巢狀成員相符:

{ "A": { "a" } }

目標成員的有效值取決於參考目標成員的項目。指標目標「必須」是數值或數值的陣列。數值陣列指標目標不得超過 100 個成員。維度目標「必須」擁有字串值。

內嵌指標格式範例和 JSON 結構描述

以下是內嵌指標格式的有效範例。

{ "_aws": { "Timestamp": 1574109732004, "CloudWatchMetrics": [ { "Namespace": "lambda-function-metrics", "Dimensions": [["functionVersion"]], "Metrics": [ { "Name": "time", "Unit": "Milliseconds", "StorageResolution": 60 } ] } ] }, "functionVersion": "$LATEST", "time": 100, "requestId": "989ffbf8-9ace-4817-a57c-e4dd734019ee" }

您可以使用以下結構描述來驗證內嵌指標格式文件。

{ "type": "object", "title": "Root Node", "required": [ "_aws" ], "properties": { "_aws": { "$id": "#/properties/_aws", "type": "object", "title": "Metadata", "required": [ "Timestamp", "CloudWatchMetrics" ], "properties": { "Timestamp": { "$id": "#/properties/_aws/properties/Timestamp", "type": "integer", "title": "The Timestamp Schema", "examples": [ 1565375354953 ] }, "CloudWatchMetrics": { "$id": "#/properties/_aws/properties/CloudWatchMetrics", "type": "array", "title": "MetricDirectives", "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items", "type": "object", "title": "MetricDirective", "required": [ "Namespace", "Dimensions", "Metrics" ], "properties": { "Namespace": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Namespace", "type": "string", "title": "CloudWatch Metrics Namespace", "examples": [ "MyApp" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 1024 }, "Dimensions": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions", "type": "array", "title": "The Dimensions Schema", "minItems": 1, "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions/items", "type": "array", "title": "DimensionSet", "minItems": 0, "maxItems": 30, "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions/items/items", "type": "string", "title": "DimensionReference", "examples": [ "Operation" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 250 } } }, "Metrics": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics", "type": "array", "title": "MetricDefinitions", "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items", "type": "object", "title": "MetricDefinition", "required": [ "Name" ], "properties": { "Name": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/Name", "type": "string", "title": "MetricName", "examples": [ "ProcessingLatency" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 1024 }, "Unit": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/Unit", "type": "string", "title": "MetricUnit", "examples": [ "Milliseconds" ], "pattern": "^(Seconds|Microseconds|Milliseconds|Bytes|Kilobytes|Megabytes|Gigabytes|Terabytes|Bits|Kilobits|Megabits|Gigabits|Terabits|Percent|Count|Bytes\\/Second|Kilobytes\\/Second|Megabytes\\/Second|Gigabytes\\/Second|Terabytes\\/Second|Bits\\/Second|Kilobits\\/Second|Megabits\\/Second|Gigabits\\/Second|Terabits\\/Second|Count\\/Second|None)$" }, "StorageResolution": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/StorageResolution", "type": "integer", "title": "StorageResolution", "examples": [ 60 ] } } } } } } } } } } }