Spezifikation: Eingebettetes Metrikformat - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Spezifikation: Eingebettetes Metrikformat

Das CloudWatch eingebettete metrische Format ist eine JSON Spezifikation, mit der CloudWatch Logs angewiesen wird, automatisch Metrikwerte zu extrahieren, die in strukturierte Protokollereignisse eingebettet sind. Sie können CloudWatch es verwenden, um die extrahierten Metrikwerte grafisch darzustellen und Alarme zu erstellen. In diesem Abschnitt werden die Spezifikationskonventionen für eingebettete metrische Formate und die Dokumentstruktur des eingebetteten metrischen Formats beschrieben.

Konventionen der Spezifikationen für eingebettete Metrikformate

Die Schlüsselwörter „MUST“, „MUSTNOT“, „REQUIRED“, „SHALL“, „SHALLNOT“, „SHOULD“, „SHOULDNOT“, „RECOMMENDED“, „MAY“, „“ und „OPTIONAL“ in dieser Formatspezifikation sind wie unter Schlüsselwörter beschrieben zu interpretierenRFC2119.

Die Begriffe "JSON„," JSON text“, "JSONvalue“, „member“, „element“, „object“, „array“, „number“, „string“, „boolean“, „true“, „false“ und „null“ in dieser Formatspezifikation sind so zu interpretieren, wie sie in JavaScript Object Notation definiert sindRFC8259.

Anmerkung

Wenn Sie Alarme für Metriken erstellen möchten, die im eingebetteten Metrikformat erstellt wurden, siehe Alarme für Metriken setzen, die mit dem eingebetteten Metrikformat erstellt wurden für Empfehlungen.

Eingebettetes Metrikformat-Dokumentstruktur

Dieser Abschnitt beschreibt die Struktur eines Dokuments im eingebetteten Metrikformat. Dokumente im eingebetteten metrischen Format werden in JavaScript Object Notation definiert. RFC8259

Sofern nicht anders angegeben, MUST NOT enthalten Objekte, die in dieser Spezifikation definiert sind, zusätzliche Elemente. Mitglieder, die von dieser Spezifikation nicht erkannt MUST werden, werden ignoriert. In dieser Spezifikation definierte Elemente berücksichtigen Groß- und Kleinschreibung.

Das eingebettete metrische Format unterliegt denselben Beschränkungen wie standardmäßige CloudWatch Log-Ereignisse und ist auf eine maximale Größe von 256 KB begrenzt.

Mit dem eingebetteten metrischen Format können Sie die Verarbeitung Ihrer EMF Protokolle anhand von Metriken verfolgen, die im AWS/Logs Namespace Ihres Kontos veröffentlicht werden. Anhand dieser Daten können Sie nachverfolgenEMF, ob bei der Metrikgenerierung Fehler aufgetreten sind und ob Fehler beim Parsen oder bei der Validierung auftreten. Weitere Informationen finden Sie unter Überwachung mit CloudWatch Metriken.

Stammknoten

Bei der LogEvent Nachricht MUST handelt es sich um ein gültiges JSON Objekt ohne zusätzliche Daten am Anfang oder Ende der LogEvent Nachrichtenzeichenfolge. Weitere Hinweise zur LogEvent Struktur finden Sie unter InputLogEvent.

Eingebettete Dokumente im metrischen Format MUST enthalten das folgende Element der obersten Ebene auf dem Stammknoten. Dies ist ein Metadatenobjekt-Objekt.

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

Der Stammknoten MUST enthält alle Zielmitglieder Elemente, die durch die Verweise in der MetricDirective Objekt definiert sind.

Der Stammknoten MAY enthält alle anderen Mitglieder, die nicht in den obigen Anforderungen enthalten sind. Die Werte dieser Mitglieder MUST sind gültige JSON Typen.

Metadatenobjekt

Das _aws Mitglied kann verwendet werden, um Metadaten über die Nutzlast darzustellen, die nachgelagerten Dienste darüber informieren, wie sie die LogEvent verarbeiten sollen. Der Wert MUST ist ein Objekt und MUST enthält die folgenden Elemente:

  • CloudWatchMetrics— Ein Array von, das MetricDirective Objekt verwendet wird, um anzuweisen CloudWatch , Metriken aus dem Stammknoten von zu extrahieren. LogEvent

    { "_aws": { "CloudWatchMetrics": [ ... ] } }
  • Zeitstempel – Eine Zahl, die den Zeitstempel für Metriken darstellt, die aus dem Ereignis extrahiert werden. Werte MUST werden als Anzahl der Millisekunden nach dem 1. Januar 1970 00:00:00 ausgedrückt. UTC

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

MetricDirective Objekt

Das MetricDirective Objekt weist nachgelagerte Dienste an, dass es Metriken LogEvent enthält, die extrahiert und veröffentlicht werden. CloudWatch MetricDirectives MUSTenthalten die folgenden Mitglieder:

  • Namespace — Eine Zeichenfolge, die den CloudWatch Namespace für die Metrik darstellt.

  • Dimensionen – Ein DimensionSet Array.

  • Metriken– – Ein Array von MetricDefinition-Objekten. Dieses Array MUST NOT enthält mehr als 100 MetricDefinition Objekte.

DimensionSet Array

A DimensionSet ist ein Array von Zeichenketten, die die Dimensionsschlüssel enthalten, die auf alle Metriken im Dokument angewendet werden. Die Werte in diesem Array sind MUST ebenfalls Elemente auf dem Stammknoten, der als Zielmitglieder

A DimensionSet MUST NOT enthält mehr als 30 Dimensionsschlüssel. A DimensionSet MAY sei leer.

Das Zielmitglied MUST hat einen Zeichenkettenwert. Dieser Wert MUST NOT enthält mehr als 1024 Zeichen. Das Zielelement definiert eine Dimension, die als Teil der Metrikidentität veröffentlicht wird. Jeder DimensionSet Benutzer erstellt eine neue Metrik in CloudWatch. Weitere Informationen zu Dimensionen finden Sie unter Dimension und Dimensionen.

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

Seien Sie vorsichtig, wenn Sie die Metrikextraktion konfigurieren, da sich dies auf Ihre benutzerdefinierte Metrikauslastung und die entsprechende Rechnung auswirkt. Wenn Sie versehentlich Metriken basierend auf hohen Kardinalitätsdimensionen erstellen (z. B. requestId), erstellt das eingebettete Metrikformat standardmäßig eine benutzerdefinierte Metrik, die jeder eindeutigen Dimensionskombination entspricht. Weitere Informationen finden Sie unter Dimensionen.

MetricDefinition Objekt

A MetricDefinition ist ein Objekt, das das folgende Mitglied MUST enthält:

  • Name – Eine Zeichenfolge Referenzwerte auf eine Metrik Zielmitglieder. Metrische Ziele MUST sind entweder ein numerischer Wert oder ein Array von numerischen Werten.

Ein MetricDefinition Objekt MAY enthält die folgenden Elemente:

  • Einheit — Ein OPTIONAL Zeichenkettenwert, der die Maßeinheit für die entsprechende Metrik darstellt. Werte SHOULD sind gültige CloudWatch metrische Einheiten. Hinweise zu gültigen Einheiten finden Sie unter MetricDatum. Wenn kein Wert angegeben wird, NONE wird ein Standardwert von angenommen.

  • StorageResolution— Ein OPTIONAL ganzzahliger Wert, der die Speicherauflösung für die entsprechende Metrik darstellt. Wenn dieser Wert auf 1 gesetzt wird, handelt es sich bei dieser Metrik um eine Metrik mit hoher Auflösung, sodass die Metrik mit einer Auflösung von unter einer Minute bis zu einer Sekunde CloudWatch gespeichert wird. Wenn dieser Wert auf 60 gesetzt wird, handelt es sich bei dieser Metrik um eine Standardauflösung, die mit einer Auflösung von 1 Minute CloudWatch gespeichert wird. Werte SHOULD sind gültige CloudWatch unterstützte Auflösungen, 1 oder 60. Wenn kein Wert angegeben wird, wird der Standardwert 60 angenommen.

    Weitere Informationen zu hochauflösenden Metriken finden Sie unter Hochauflösende Metriken.

Anmerkung

Wenn Sie Alarme für Metriken erstellen möchten, die im eingebetteten Metrikformat erstellt wurden, siehe Alarme für Metriken setzen, die mit dem eingebetteten Metrikformat erstellt wurden für Empfehlungen.

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

Referenzwerte

Referenzwerte sind Zeichenfolgenwerte, die Zielmitglieder-Elemente auf dem Stammknoten referenzieren. Diese Verweise NOT sollten mit den in RFC6901 beschriebenen JSON Zeigern verwechselt werden. Zielwerte können nicht verschachtelt werden.

Zielmitglieder

Gültige Ziele MUST sind Mitglieder auf dem Stammknoten und können keine verschachtelten Objekte sein. Ein _reference_-Wert von "A.a" MUST entspricht beispielsweise dem folgenden Element:

{ "A.a" }

Er MUST NOT entspricht dem verschachtelten Element:

{ "A": { "a" } }

Gültige Werte von Zielelementen hängen davon ab, was sie referenziert. Ein metrisches Ziel MUST kann ein numerischer Wert oder ein Array von numerischen Werten sein. Metrikziele mit numerischen Arrays MUST NOT haben mehr als 100 Mitglieder. Ein Dimensionsziel MUST hat einen Zeichenkettenwert.

Beispiel und JSON Schema für eingebettetes metrisches Format

Im Folgenden finden Sie ein gültiges Beispiel für ein eingebettetes Metrikformat.

{ "_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" }

Sie können das folgende Schema verwenden, um Dokumente im eingebetteten Metrikformat zu validieren.

{ "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 ] } } } } } } } } } } }