CloudWatch syntaxe des expressions de recherche - 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.

CloudWatch syntaxe des expressions de recherche

Une expression de recherche valide dispose du format suivant.

SEARCH(' {Namespace, DimensionName1, DimensionName2, ...} SearchTerm', 'Statistic')

Par exemple :

SEARCH('{AWS/EC2,InstanceId} MetricName="CPUUtilization"', 'Average')
  • La première partie de la requête après le mot SEARCH, délimitée par des accolades, est le schéma de métrique à rechercher. Le schéma de métrique contient un espace de noms de métrique et un ou plusieurs noms de dimension. L'inclusion d'un schéma de métrique dans une requête de recherche est facultative. Si cette valeur est spécifiée, le schéma de métrique doit contenir un espace de noms et peut éventuellement contenir un ou plusieurs noms de dimension qui sont valides dans cet espace de noms.

    Vous n'avez pas besoin d'utiliser des guillemets à l'intérieur du schéma de métrique, sauf si un espace de noms ou un nom de dimension comprend des espaces ou des caractères non alphanumériques. Dans ce cas, vous devez placer le nom qui contient ces caractères dans des guillemets doubles.

  • Le SearchTerm est également facultatif, mais une recherche valide doit contenir le schéma de métrique, le SearchTerm, ou les deux à la fois. Il contient SearchTerm généralement un ou plusieurs comptesIDs, noms de métriques ou valeurs de dimension. Le SearchTerm peut inclure plusieurs termes à rechercher, à la fois par correspondance partielle et par correspondance exacte. Il peut également contenir des opérateurs booléens.

    L'utilisation d'un identifiant de compte dans un ne SearchTerm fonctionne que dans les comptes configurés comme comptes de surveillance à des fins d' CloudWatch observabilité entre comptes. La syntaxe pour un ID de compte dans un SearchTerm est :aws.AccountId = 444455556666. Vous pouvez également utiliser 'LOCAL' pour spécifier le compte de surveillance lui-même : :aws.AccountId = 'LOCAL'

    Pour de plus amples informations, veuillez consulter CloudWatch observabilité entre comptes.

    Le SearchTerm peut inclure un ou plusieurs identifiants, par exemple, MetricName= comme dans cet exemple, mais l'utilisation d'indicateurs n'est pas obligatoire.

    Le schéma de métrique et le SearchTerm doivent être placés dans des guillemets simples.

  • StatisticIl s'agit du nom de toute CloudWatch statistique valide. Il doit être entouré de guillemets simples. Pour de plus amples informations, veuillez consulter Statistiques.

L'exemple précédent effectue une recherche dans l'espace de noms AWS/EC2 pour les métriques qui disposent de InstanceId comme nom de dimension. Elle renvoie toutes les métriques CPUUtilization trouvées, avec le graphique illustrant la statistique Average.

Une expression de recherche ne peut trouver que les métriques ayant généré des données au cours des deux dernières semaines.

Limites d'expression de recherche

La taille maximale de la requête d'expression de recherche est de 1 024 caractères. Vous pouvez avoir jusqu'à 100 expressions de recherche dans un même graphique. Un graphique peut afficher jusqu'à 500 séries temporelles.

CloudWatch expressions de recherche : Tokenisation

Lorsque vous spécifiez unSearchTerm, la fonction de recherche recherche des jetons, qui sont des sous-chaînes générées CloudWatch automatiquement à partir de noms de métriques complets, de noms de dimensions, de valeurs de dimension et d'espaces de noms. CloudWatch génère des jetons qui se distinguent par la majuscule en forme de chameau dans la chaîne d'origine. Les caractères numériques servent également comme le début de nouveaux jetons et les caractères non alphanumériques servent de délimiteurs, créant des jetons avant et après les caractères non alphanumériques.

Une chaîne continue du même type de caractère jeton délimiteur entraîne un jeton.

Tous les jetons sont générés en minuscules. Le tableau suivant montre des exemples de jetons générés.

Chaîne d'origine Jetons générés

CustomCount1

customcount1, custom, count, 1

SDBFailure

sdbfailure, sdb, failure

Project2-trial333

project2trial333, project, 2, trial, 333

CloudWatch expressions de recherche : Correspondances partielles

Lorsque vous spécifiez unSearchTerm, le terme de recherche est également tokenisé. CloudWatchtrouve des métriques sur la base de correspondances partielles, c'est-à-dire des correspondances entre un jeton unique généré à partir du terme de recherche et un jeton unique généré à partir d'un nom de métrique, d'un espace de noms, d'un nom de dimension ou d'une valeur de dimension.

Les recherches de correspondances partielles pour correspondre à un seul jeton ne sont pas sensibles à la casse. Par exemple, l'utilisation de n'importe quelle expression de recherche peut renvoyer la métrique CustomCount1 :

  • count

  • Count

  • COUNT

Cependant, l'utilisation de couNT en tant qu'expression de recherche ne trouvera pas CustomCount1, car la casse dans le terme recherché couNT provoque la création de jetons dans cou et NT.

Les recherches peuvent également correspondre à des jetons composites, qui sont plusieurs jetons qui apparaissent consécutivement dans le nom d'origine. La recherche est sensible à la casse pour faire correspondre un jeton composite. Par exemple, si le terme d'origine est CustomCount1, les recherches de CustomCount ou de Count1 réussissent, mais les recherches de customcount ou de count1 échouent.

CloudWatch expressions de recherche : correspondances exactes

Vous pouvez définir une recherche pour trouver uniquement des correspondances exactes de votre terme de recherche en utilisant des guillemets autour du terme recherché qui nécessite une correspondance exacte. Ces guillemets doubles sont entourés de guillemets simples utilisés par l'ensemble du terme recherché. Par exemple, SEARCH(' {MyNamespace}, "CustomCount1" ', 'Maximum') trouve la chaîne exacte CustomCount1 si elle existe en tant que nom de dimension, nom de métrique ou valeur de dimension dans l'espace de noms nommé MyNamespace. Toutefois, la recherche SEARCH(' {MyNamespace}, "customcount1" ', 'Maximum') ou SEARCH(' {MyNamespace}, "Custom" ', 'Maximum') ne trouve pas cette chaîne.

Vous pouvez combiner des conditions de correspondance partielles et des conditions de correspondance exactes dans une seule expression de recherche. Par exemple,SEARCH(' {AWS/NetworkELB, LoadBalancer} "ConsumedLCUs" OR flow ', 'Maximum') renvoie la métrique Elastic Load Balancing nommée ConsumedLCUs, ainsi que toutes les métriques ou dimensions Elastic Load Balancing qui contiennent le jeton flow.

L'utilisation de la correspondance exacte est également un bon moyen pour trouver des noms dotés de caractères spéciaux, tels que les caractères non alphanumériques ou des espaces, comme dans l'exemple suivant.

SEARCH(' {"My Namespace", "Dimension@Name"}, "Custom:Name[Special_Characters" ', 'Maximum')

CloudWatch expressions de recherche : exclusion d'un schéma métrique

Tous les exemples présentés jusqu'à présent incluent un schéma de métrique, en accolades. Les recherches qui omettent un schéma de métrique sont également valides.

Par exemple, SEARCH(' "CPUUtilization" ', 'Average') renvoie tous les noms de métriques, les noms de dimensions, les valeurs de dimension et les espaces de noms qui correspondent exactement à la chaîne CPUUtilization. Dans les espaces de noms des AWS métriques, cela peut inclure des métriques provenant de plusieurs services, notamment Amazon EC2 ECS SageMaker, Amazon et d'autres.

Pour limiter cette recherche à un seul AWS service, la meilleure pratique consiste à spécifier l'espace de noms et toutes les dimensions nécessaires dans le schéma métrique, comme dans l'exemple suivant. Bien que cela réduise la recherche pour l'espace de noms AWS/EC2, il renvoie toujours des résultats d'autres métriques si vous avez défini CPUUtilization comme valeur de dimension pour ces métriques.

SEARCH(' {AWS/EC2, InstanceType} "CPUUtilization" ', 'Average')

Sinon, vous pouvez ajouter l'espace de noms dans le SearchTerm, comme illustré dans l'exemple suivant. Mais la recherche ne correspond à aucune chaîne AWS/EC2 dans cet exemple, même si elle était un nom ou une valeur de dimension personnalisée.

SEARCH(' "AWS/EC2" MetricName="CPUUtilization" ', 'Average')

CloudWatch expressions de recherche : Spécification des noms de propriétés dans la recherche

La correspondance exacte de recherche suivante pour "CustomCount1" renvoie toutes les métriques dotées exactement de ce nom.

SEARCH(' "CustomCount1" ', 'Maximum')

Mais elle renvoie également des métriques avec des noms de dimension, des valeurs de dimension ou des espaces de noms de CustomCount1. Pour mieux structurer votre recherche, vous pouvez spécifier le nom de la propriété du type d'objet que vous souhaitez rechercher dans vos recherches. L'exemple suivant recherche tous les espaces de noms et renvoie les métriques nommées CustomCount1.

SEARCH(' MetricName="CustomCount1" ', 'Maximum')

Vous pouvez également utiliser des espaces de noms et des paires nom/valeur de dimension en tant que noms des propriétés, comme dans les exemples suivants. Le premier exemple illustre également que vous pouvez utiliser les noms de propriété avec des correspondances partielles de recherche.

SEARCH(' InstanceType=micro ', 'Average')
SEARCH(' InstanceType="t2.micro" Namespace="AWS/EC2" ', 'Average')

CloudWatch expressions de recherche : caractères non alphanumériques

Les caractères non alphanumériques servent de délimiteurs et indiquent où les noms des métriques, dimensions, espaces de noms et termes de recherche doivent être séparés en jetons. Lorsque les termes provoquent la création de jetons, les caractères non alphanumériques sont enlevés et n'apparaissent pas dans les jetons. Par exemple, Network-Errors_2 génère les jetons network, errors et 2.

Votre terme de recherche peut inclure des caractères non alphanumériques. Si ces caractères apparaissent dans vos termes de recherche, ils peuvent spécifier des jetons composites dans une correspondance partielle. Par exemple, l'ensemble de recherches suivant trouverait les métriques nommées Network-Errors-2 ou NetworkErrors2.

network/errors network+errors network-errors Network_Errors

Lorsque vous faites une recherche de valeur exacte, les caractères non alphanumériques utilisés dans la recherche exacte doivent être les bons caractères qui apparaissent dans la chaîne recherchée. Par exemple, si vous voulez trouver Network-Errors-2, la recherche de "Network-Errors-2" aboutit, mais une recherche de "Network_Errors_2" échoue.

Lorsque vous effectuez une recherche de correspondance exacte, les caractères suivants doivent être placés dans une séquence d'échappement avec une barre oblique inverse.

" \ ( )

Par exemple, pour trouver le nom de la métrique Europe\France Traffic(Network) en correspondance exacte, utilisez le terme de recherche "Europe\\France Traffic\(Network\)"

CloudWatch expressions de recherche : opérateurs booléens

La recherche prend en charge l'utilisation des opérateurs booléens AND, OR et NOT dans le SearchTerm. Les opérateurs booléens sont entourés de guillemets simples que vous utilisez pour insérer l'ensemble du terme recherché. Les opérateurs booléens sont sensibles à la casse. Par conséquent, and, or et not ne sont pas valides comme opérateurs booléens.

Vous pouvez utiliser AND explicitement dans votre recherche, par exemple SEARCH('{AWS/EC2,InstanceId} network AND packets', 'Average'). Si vous n'utilisez aucun opérateur booléen entre les termes recherchés, cela implique une recherche de ceux-ci comme s'il y avait un opérateur AND, ce qui génère les mêmes résultats de recherche qu'avec SEARCH(' {AWS/EC2,InstanceId} network packets ', 'Average').

Utilisez NOT pour exclure des résultats les sous-ensembles de données. Par exemple, SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" NOT i-1234567890123456 ', 'Average') renvoie CPUUtilization pour toutes vos instances, à l'exception de l'instance i-1234567890123456. Vous pouvez également utiliser une clause NOT comme seul terme de recherche. Par exemple, SEARCH( 'NOT Namespace=AWS ', 'Maximum') génère toutes vos métriques personnalisées (métriques avec des espaces de noms qui n'incluent pas AWS).

Vous pouvez utiliser plusieurs expressions NOT dans une requête. Par exemple, SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" NOT "ProjectA" NOT "ProjectB" ', 'Average') renvoie l'élément CPUUtilization de toutes les instances de la région, à l'exception de celles ayant des valeurs de dimension ProjectA ou ProjectB.

Vous pouvez combiner des opérateurs booléens pour des recherches plus puissantes et détaillées, comme dans les exemples suivants. Utilisez des parenthèses pour regrouper les opérateurs.

Les deux exemples suivants renvoient tous les noms de métriques contenant ReadOps à la fois les EBS espaces de noms EC2 et.

SEARCH(' (EC2 OR EBS) AND MetricName=ReadOps ', 'Maximum')
SEARCH(' (EC2 OR EBS) MetricName=ReadOps ', 'Maximum')

L'exemple suivant restreint la recherche précédente pour trouver uniquement les résultats qui comprennent ProjectA, qui pourrait être la valeur d'une dimension.

SEARCH(' (EC2 OR EBS) AND ReadOps AND ProjectA ', 'Maximum')

L'exemple suivant utilise des groupes imbriqués. Elle renvoie les métriques Lambda pour les Errors de toutes les fonctions et les Invocations de fonctions avec des noms qui incluent les chaînes ProjectA ou ProjectB.

SEARCH(' {AWS/Lambda,FunctionName} MetricName="Errors" OR (MetricName="Invocations" AND (ProjectA OR ProjectB)) ', 'Average')

CloudWatch expressions de recherche : utilisation d'expressions mathématiques

Vous pouvez utiliser une expression de recherche au sein d'une expression mathématique dans un graphique.

Par exemple, SUM(SEARCH(' {AWS/Lambda, FunctionName} MetricName="Errors" ', 'Sum')) renvoie la somme de la métrique Errors de toutes vos fonctions Lambda.

L'utilisation de lignes distinctes pour votre expression de recherche et votre expression mathématique peut générer des résultats plus utiles. Par exemple, supposons que vous utilisez les deux expressions suivantes dans un graphique. La première ligne affiche les lignes Errors distinctes pour chacune de vos fonctions Lambda. L'ID de cette expression est e1. La deuxième ligne ajoute une autre ligne illustrant la somme des erreurs provenant de toutes les fonctions.

SEARCH(' {AWS/Lambda, FunctionName}, MetricName="Errors" ', 'Sum') SUM(e1)