Spécifications : format de métrique intégrée - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Spécifications : format de métrique intégrée

Le format de métrique CloudWatch intégré est une spécification JSON utilisée pour demander à CloudWatch Logs d'extraire automatiquement les valeurs métriques intégrées dans les événements de journaux structurés. Vous pouvez l'utiliser CloudWatch pour représenter graphiquement et créer des alarmes sur les valeurs métriques extraites.

Conventions de spécification de format de métrique intégrée

Les mots-clés « DOIT », « NE DOIT PAS », « OBLIGATOIRE », « DEVRAIT », « NE DEVRAIT PAS », « RECOMMANDÉ », « PEUT » et « FACULTATIF » dans cette spécification de format doivent être interprétés tels que décrits dans Mots-clés RFC2119.

Les termes « JSON », « texte JSON », « valeur JSON », « membre », « élément », « objet », « tableau », « nombre », « chaîne », « booléen », « vrai », « faux » et « nul » dans cette spécification de format doivent être interprétés tels que définis dans la norme JavaScript Object Notation RFC8259.

Note

Si vous prévoyez de créer des alertes sur des métriques créées à l'aide du format de métrique intégrée, consultez les recommandations de la rubrique Configuration d'alertes sur les métriques créées avec le format de métrique intégrée.

Structure du document au format de métrique intégrée

Cette section décrit la structure d'un document au format de métrique intégrée. Les documents au format métrique intégré sont définis dans la norme JavaScript Object Notation RFC8259.

Sauf indication contraire, les objets définis par la présente spécification NE DOIVENT PAS contenir de membres supplémentaires. Les membres non reconnus par cette spécification DOIVENT être ignorés. Les membres définis dans cette spécification sont sensibles à la casse.

Le format métrique intégré est soumis aux mêmes limites que les événements CloudWatch Logs standard et est limité à une taille maximale de 256 Ko.

Avec le format de métrique intégré, vous pouvez suivre le traitement de vos journaux EMF par des métriques qui sont publiées dans l'espace de nom AWS/Logs de votre compte. Celles-ci peuvent être utilisées pour suivre les échecs de génération de métriques à partir d'EMF, ainsi que pour savoir si les échecs sont dus à l'analyse ou à la validation. Pour plus de détails, consultez la section Surveillance à l'aide de CloudWatch métriques.

Nœud racine

Le LogEvent message DOIT être un objet JSON valide sans données supplémentaires au début ou à la fin de la chaîne de LogEvent message. Pour plus d'informations sur la LogEvent structure, consultez InputLogEvent.

Les documents au format de métrique intégrée DOIVENT contenir le membre de niveau supérieur suivant sur le nœud racine. Il s'agit d'un objet Objet Métadonnées.

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

Le nœud racine DOIT contenir tous les membres Membres cibles définis par les références dans le MetricDirective objet.

Le nœud racine peut contenir tous les autres membres qui ne sont pas inclus dans les exigences ci-dessus. Les valeurs de ces membres DOIVENT être des types JSON valides.

Objet Métadonnées

Le _aws membre peut être utilisé pour représenter les métadonnées relatives à la charge utile qui indiquent aux services en aval comment ils doivent traiter le LogEvent. La valeur DOIT être un objet et DOIT contenir les membres suivants :

  • CloudWatchMetrics— Un tableau de données MetricDirective objet utilisé pour indiquer CloudWatch d'extraire les métriques du nœud racine du LogEvent.

    { "_aws": { "CloudWatchMetrics": [ ... ] } }
  • Timestamp (Horodatage) — Nombre représentant l'horodatage utilisé pour les métriques extraites de l'événement. Les valeurs DOIVENT être exprimées en tant que nombre de millisecondes après le 1er janv. 1970 00:00:00 UTC.

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

MetricDirective objet

L' MetricDirective objet indique aux services en aval qu'ils LogEvent contiennent des métriques qui seront extraites et publiées. CloudWatch MetricDirectives DOIT contenir les membres suivants :

  • Namespace — Chaîne représentant l'espace de CloudWatch noms de la métrique.

  • DimensionsDimensionSet réseau.

  • Metrics (Métriques) — Tableau d'objets MetricDefinition. Ce tableau NE DOIT PAS contenir plus de 100 MetricDefinition objets.

DimensionSet réseau

A DimensionSet est un tableau de chaînes contenant les clés de dimension qui seront appliquées à toutes les métriques du document. Les valeurs de ce tableau DOIVENT également être des membres sur le nœud racine (appelé ) Membres cibles

A NE DimensionSet DOIT PAS contenir plus de 30 clés de dimension. A DimensionSet PEUT être vide.

Le membre cible DOIT avoir une valeur de chaîne. Cette valeur NE DOIT PAS contenir plus de 1024 caractères. Le membre cible définit une dimension qui sera publiée dans le cadre de l'identité de métrique. Chaque DimensionSet utilisateur crée une nouvelle métrique dans CloudWatch. Pour obtenir de plus amples informations sur les dimensions, veuillez consulter Dimension et Dimensions.

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

Soyez prudent lorsque vous configurez votre extraction de métriques car cela affecte votre utilisation de métriques personnalisées et la facture correspondante. Si vous créez involontairement des métriques basées sur des dimensions à cardinalité élevée (telles que requestId), le format de métrique intégrée créera par définition une métrique personnalisée correspondant à chaque combinaison de dimensions unique. Pour de plus amples informations, veuillez consulter Dimensions.

MetricDefinition objet

A MetricDefinition est un objet qui DOIT contenir le membre suivant :

Un MetricDefinition objet PEUT contenir les membres suivants :

  • Unit (Unitéà — Valeur de chaîne FACULTATIVE représentant l'unité de mesure pour la métrique correspondante. Les valeurs DEVRAIENT être des unités CloudWatch métriques valides. Pour plus d'informations sur les unités valides, consultez MetricDatum. Si aucune valeur n'est fournie, la valeur par défaut NONE est supposée.

  • StorageResolution— Une valeur entière FACULTATIVE représentant la résolution de stockage pour la métrique correspondante. Si cette valeur est définie sur 1, cette métrique est une métrique haute résolution, de sorte que la métrique est CloudWatch stockée avec une résolution inférieure à la minute inférieure à une seconde. Si vous définissez cette valeur sur 60, cette métrique est une résolution standard, qui est CloudWatch stockée à une résolution d'une minute. Les valeurs DEVRAIENT être des résolutions valides CloudWatch prises en charge, 1 ou 60. Si aucune valeur n'est fournie, la valeur par défaut 60 est choisie.

    Pour plus d'informations sur les métriques haute résolution, consultez Métriques haute résolution.

Note

Si vous prévoyez de créer des alertes sur des métriques créées à l'aide du format de métrique intégrée, consultez les recommandations de la rubrique Configuration d'alertes sur les métriques créées avec le format de métrique intégrée.

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

Valeurs de référence

Les valeurs de référence sont des valeurs de chaîne qui font référence aux membres Membres cibles sur le nœud racine. Ces références ne doivent PAS être confondues avec les pointeurs JSON décrits dans RFC6901. Les valeurs cibles ne peuvent pas être imbriquées.

Membres cibles

Les cibles valides DOIVENT être des membres sur le nœud racine et ne peuvent pas être des objets imbriqués. Par exemple, une valeur _reference_ de "A.a" DOIT correspondre au membre suivant :

{ "A.a" }

Elle NE DOIT PAS correspondre au membre imbriqué :

{ "A": { "a" } }

Les valeurs valides des membres cibles dépendent de ce qui les référence. Une cible de métrique DOIT être une valeur numérique ou un tableau de valeurs numériques. Les cibles de métriques de tableau numérique NE DOIVENT PAS avoir plus de 100 membres. Une cible de dimension DOIT avoir une valeur de chaîne.

Exemple de format de métrique intégrée et schéma JSON

Voici un exemple valide de format de métrique intégré.

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

Vous pouvez utiliser le schéma suivant pour valider les documents au format de métrique intégré.

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