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, die verwendet wird, um CloudWatch Logs anzuweisen, Metrikwerte, die in strukturierte Protokollereignisse eingebettet sind, automatisch zu extrahieren. Sie können CloudWatch es verwenden, um die extrahierten Metrikwerte grafisch darzustellen und Alarme zu erstellen.

Konventionen der Spezifikationen für eingebettete Metrikformate

Die Schlüsselwörter „MUSS“, „DARF NICHT“, „NOTWENDIG“, „SOLL“, „SOLL NICHT“, „SOLLTE“, „SOLLTE NICHT“, „EMPFOHLEN“, „KANN“ und „OPTIONAL“ in dieser Formatspezifikation sind wie in den Key Words RFC2119 beschrieben zu interpretieren.

Die Begriffe „JSON“, „JSON-Text“, „JSON-Wert“, „Mitglied“, „Element“, „Objekt“, „Array“, „Zahl“, „Zeichenfolge“, „Boolean“, „wahr“, „falsch“ und „Null“ in dieser Formatspezifikation sind so zu interpretieren, wie sie in JavaScript Object Notation RFC8259 definiert sind.

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 sind in Object Notation RFC8259 definiert. JavaScript

Sofern nicht anders angegeben, DÜRFEN in dieser Spezifikation definierte Objekte KEINE zusätzlichen Elemente enthalten. Elemente, die von dieser Spezifikation nicht erkannt werden, MÜSSEN ignoriert werden. 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 Metrikformat können Sie die Verarbeitung Ihrer EMF-Protokolle nach Metriken verfolgen, die im AWS/Logs-Namespace Ihres Kontos veröffentlicht werden. Diese können verwendet werden, um die fehlgeschlagene Metrikgenerierung von EMF nachzuverfolgen und festzustellen, ob Fehler aufgrund der Analyse oder der Validierung auftreten. Weitere Informationen finden Sie unter Überwachung mit CloudWatch Metriken.

Stammknoten

Die LogEvent Nachricht MUSS ein gültiges JSON-Objekt ohne zusätzliche Daten am Anfang oder Ende der LogEvent Nachrichtenzeichenfolge sein. Weitere Hinweise zur LogEvent Struktur finden Sie unter InputLogEvent.

Dokumente im eingebetteten Metrikformat MÜSSEN das folgende Element der obersten Ebene auf dem Stammknoten enthalten. Dies ist ein Metadatenobjekt-Objekt.

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

Der Stammknoten MUSS alle Zielmitglieder-Elemente enthalten, die durch die Verweise in MetricDirective Objekt definiert sind.

Der Stammknoten KANN alle anderen Elemente enthalten, die nicht in den oben genannten Anforderungen enthalten sind. Die Werte dieser Elemente MÜSSEN gültige JSON-Typen sein.

Metadatenobjekt

Das _aws Element kann verwendet werden, um Metadaten über die Nutzlast darzustellen, die nachgelagerten Dienste darüber informieren, wie sie diese verarbeiten sollen. LogEvent Der Wert MUSS ein Objekt sein und MUSS die folgenden Elemente enthalten:

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

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

    { "_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 MUSS die folgenden Mitglieder enthalten:

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

  • Dimensionen – Ein DimensionSet Array.

  • Metriken– – Ein Array von MetricDefinition-Objekten. Dieses Array DARF NICHT mehr als 100 MetricDefinition Objekte enthalten.

DimensionSet Array

A DimensionSet ist ein Array von Zeichenketten, die die Dimensionsschlüssel enthalten, die auf alle Metriken im Dokument angewendet werden. Die Werte innerhalb dieses Arrays MÜSSEN auch Elemente auf dem Stammknoten sein, die als das Zielmitglieder bezeichnet werden.

A DimensionSet DARF NICHT mehr als 30 Dimensionsschlüssel enthalten. A DimensionSet KANN leer sein.

Das Zielelement MUSS einen Zeichenfolgenwert haben. Dieser Wert DARF NICHT mehr als 1024 Zeichen enthalten. 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 enthalten MUSS:

  • Name – Eine Zeichenfolge Referenzwerte auf eine Metrik Zielmitglieder. Metrikziele MÜSSEN entweder aus einem numerischen Wert oder einem Array von numerischen Werten bestehen.

Ein MetricDefinition Objekt KANN die folgenden Mitglieder enthalten:

  • Einheit – Ein OPTIONALER Zeichenfolgenwert, der die Maßeinheit für die entsprechende Metrik darstellt. Die Werte SOLLTEN gültige CloudWatch metrische Einheiten sein. Hinweise zu gültigen Einheiten finden Sie unter MetricDatum. Wenn kein Wert angegeben wird, wird der Standardwert NONE angenommen.

  • StorageResolution— Ein OPTIONALER Ganzzahlwert, 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. Die Werte SOLLTEN gültige CloudWatch unterstützte Auflösungen sein, 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 Referenzen sollten NICHT mit den in RFC6901 beschriebenen JSON Pointers verwechselt werden. Zielwerte können nicht verschachtelt werden.

Zielmitglieder

Gültige Ziele MÜSSEN Elemente auf dem Stammknoten sein und dürfen keine verschachtelten Objekte sein. Ein _reference_-Wert von "A.a" MUSS beispielsweise mit dem folgenden Element übereinstimmen:

{ "A.a" }

Er DARF NICHT mit dem verschachtelten Element übereinstimmen:

{ "A": { "a" } }

Gültige Werte von Zielelementen hängen davon ab, was sie referenziert. Ein Metrikziel MUSS ein numerischer Wert oder ein Array numerischer Werte sein. Numerische Array-Metrikziele DÜRFEN NICHT mehr als 100 Mitglieder haben. Ein Dimensionsziel MUSS einen Zeichenfolgenwert haben.

Beispiel für ein eingebettetes Metrikformat und JSON-Schema

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