Fonctions booléennes, de comparaison, numériques, de date/heure et autres - Amazon CloudWatch Logs

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.

Fonctions booléennes, de comparaison, numériques, de date/heure et autres

CloudWatch Logs Insights prend en charge de nombreuses autres opérations et fonctions dans les requêtes, comme expliqué dans les sections suivantes.

Opérateurs arithmétiques

Les opérateurs arithmétiques acceptent les types de données numériques en tant qu'arguments et renvoient des résultats numériques. Utilisez des opérateurs arithmétiques dans les commandes filter et fields et en tant qu'arguments pour d'autres fonctions.

Opération Description

a + b

Addition

a - b

Soustraction

a * b

Multiplication

a / b

Division

a ^ b

Élévation à la puissance (2 ^ 3 renvoie 8)

a % b

Valeurs restantes ou module (10 % 3 renvoie 1)

Opérateurs booléens

Utilisez les opérateurs booléens and, or et not.

Note

Utilisez les opérateurs booléens uniquement dans les fonctions qui renvoient une valeur de TRUEou. FALSE

Opérateurs de comparaison

Les opérateurs de comparaison acceptent tous les types de données en tant qu'arguments et renvoient un résultat booléen. Utilisez des opérations de comparaison dans la commande filter et en tant qu'arguments pour d'autres fonctions.

Opérateur Description

=

Égal à

!=

Non égal à

<

Inférieur à

>

Supérieure à

<=

Inférieur ou égal à

>=

Supérieur ou égal à

Opérateurs numériques

Les opérations numériques acceptent les types de données numériques en tant qu'arguments numériques et renvoient des résultats numériques. Utilisez des opérations numériques dans les commandes filter et fields et en tant qu'arguments pour d'autres fonctions.

Opération Type de résultat Description

abs(a: number)

nombre

Valeur absolue

ceil(a: number)

nombre

Arrondir jusqu'au nombre entier supérieur suivant (le plus petit nombre entier supérieur à la valeur de a)

floor(a: number)

nombre

Arrondir jusqu'au nombre entier inférieur suivant (le plus grand nombre entier inférieur à la valeur de a)

greatest(a: number, ...numbers: number[])

nombre

Renvoie la valeur la plus grande

least(a: number, ...numbers: number[])

nombre

Renvoie la valeur la plus petite

log(a: number)

nombre

Journal naturel

sqrt(a: number)

nombre

Racine carrée

Fonctions Datetime

Fonctions Datetime

Utilisez les fonctions de date et heure dans les commandes fields et filter et en tant qu'arguments pour d'autres fonctions. Utilisez ces fonctions pour créer des compartiments de temps pour les requêtes avec des fonctions de regroupement. Utilisez des périodes composées d'un nombre et de l'un des éléments suivants :

  • mspendant des millisecondes

  • spendant quelques secondes

  • mpendant quelques minutes

  • hpendant des heures

Par exemple, 10m correspond à 10 minutes et 1h correspond à une heure.

Note

Utilisez l'unité de temps la plus appropriée pour votre fonction datetime. CloudWatch Logs plafonne votre demande en fonction de l'unité de temps que vous avez choisie. Par exemple, il plafonne à 60 la valeur maximale pour toute demande utilisants. Ainsi, si vous le spécifiezbin(300s), CloudWatch Logs l'implémente en fait sous la forme de 60 secondes, car 60 est le nombre de secondes dans une minute. CloudWatch Logs n'utilisera donc pas un nombre supérieur à 60 avecs. Pour créer un bucket de 5 minutes, utilisez bin(5m) plutôt.

Le plafond pour ms est de 1000, les capuchons pour s et m sont de 60, et le plafond pour h est de 24.

Le tableau suivant contient une liste des différentes fonctions de date et heure que vous pouvez utiliser dans des commandes de requête. Le tableau répertorie le type de résultat de chaque fonction et contient une description de chaque fonction.

Astuce

Lorsque vous créez une commande de requête, vous pouvez utiliser le sélecteur d'intervalle pour sélectionner une période de temps à interroger. Par exemple, vous pouvez définir une période de temps entre des intervalles de 5 à 30 minutes, des intervalles de 1, 3 et 12 heures ou une période personnalisée. Vous pouvez également définir des périodes entre des dates spécifiques.

Fonction Type de résultat Description

bin(period: Period)

Horodatage

Arrondit la valeur de @timestamp à la période donnée, puis la tronque. Par exemple, bin(5m) arrondit la valeur de @timestamp aux 5 minutes les plus proches.

Vous pouvez l'utiliser pour regrouper plusieurs entrées de journal dans une requête. L'exemple suivant indique le nombre d'exceptions par heure :

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

les unités de temps et les abréviations suivantes sont prises en charge par la fonction bin. Pour toutes les unités et abréviations qui incluent plus d'un caractère, l'ajout de s au pluriel est pris en charge. Donc, les deux hr et hrs travaillent pour spécifier les heures.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

datefloor(timestamp: Timestamp, period: Period)

Horodatage

Tronque l'horodatage pour la période donnée. Par exemple, datefloor(@timestamp, 1h) tronque toutes les valeurs de @timestamp vers la valeur la plus basse de l'heure.

dateceil(timestamp: Timestamp, period: Period)

Horodatage

Arrondit l'horodatage pour la période donnée, puis la tronque. Par exemple, dateceil(@timestamp, 1h) tronque toutes les valeurs de @timestamp vers la valeur la plus élevée de l'heure.

fromMillis(fieldName: number)

Horodatage

Interprète le champ en entrée comme le nombre de millisecondes depuis l'époque Unix et le convertit en horodatage.

toMillis(fieldName: Timestamp)

nombre

Convertit l'horodatage trouvé dans le champ nommé en un nombre représentant les millisecondes depuis l'époque Unix. Par exemple, toMillis(@timestamp) convertit l'horodatage 2022-01-14T13:18:031.000-08:00 à 1642195111000.

Note

À l'heure actuelle, CloudWatch Logs Insights ne prend pas en charge le filtrage des journaux avec des horodatages lisibles par l'homme.

Fonctions générales

Fonctions générales

Utilisez des fonctions générales dans les commandes fields et filter et en tant qu'arguments pour d'autres fonctions.

Fonction Type de résultat Description

ispresent(fieldName: LogField)

Booléen

Renvoie true si le champ existe

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

Renvoie la première valeur non nulle de la liste

Fonctions de chaîne d'adresse IP

Fonctions de chaîne d'adresse IP

Utilisez les fonctions de chaîne d'adresse IP dans les commandes filter et fields et en tant qu'arguments pour d'autres fonctions.

Fonction Type de résultat Description

isValidIp(fieldName: string)

boolean

Renvoie true si le champ est une IPv6 adresse IPv4 ou une adresse valide.

isValidIpV4(fieldName: string)

boolean

Renvoie true si le champ est une IPv4 adresse valide.

isValidIpV6(fieldName: string)

boolean

Renvoie true si le champ est une IPv6 adresse valide.

isIpInSubnet(fieldName: string, subnet: string)

boolean

Renvoie true si le champ est une IPv6 adresse valide IPv4 dans le sous-réseau v4 ou v6 spécifié. Lorsque vous spécifiez le sous-réseau, utilisez une CIDR notation telle que 192.0.2.0/24 ou2001:db8::/32, où 192.0.2.0 ou 2001:db8:: est le début du CIDR bloc.

isIpv4InSubnet(fieldName: string, subnet: string)

boolean

Renvoie true si le champ est une IPv4 adresse valide dans le sous-réseau v4 spécifié. Lorsque vous spécifiez le sous-réseau, utilisez une CIDR notation telle que 192.0.2.0 le 192.0.2.0/24 point de départ du CIDR bloc.

isIpv6InSubnet(fieldName: string, subnet: string)

boolean

Renvoie true si le champ est une IPv6 adresse valide dans le sous-réseau v6 spécifié. Lorsque vous spécifiez le sous-réseau, utilisez une CIDR notation telle que 2001:db8:: le 2001:db8::/32 point de départ du CIDR bloc.

Fonctions de chaîne

Fonctions de chaîne

Utilisez des fonctions de chaîne dans les commandes fields et filter et en tant qu'arguments pour d'autres fonctions.

Fonction Type de résultat Description

isempty(fieldName: string)

Nombre

Renvoie 1 si le champ est manquant ou est une chaîne vide.

isblank(fieldName: string)

Nombre

Renvoie 1 si le champ est manquant, est une chaîne vide ou contient uniquement un espace.

concat(str: string, ...strings: string[])

chaîne

Concatène les chaînes.

ltrim(str: string)

ltrim(str: string, trimChars: string)

chaîne

Si la fonction ne possède pas de deuxième argument, elle supprime les espaces blancs à gauche de la chaîne. Si la fonction possède un deuxième argument de chaîne, elle ne supprime pas l'espace blanc. Au lieu de cela, elle supprime les caractères de trimChars à gauche de str. Par exemple, ltrim("xyZxyfooxyZ","xyZ") renvoie "fooxyZ".

rtrim(str: string)

rtrim(str: string, trimChars: string)

chaîne

Si la fonction ne possède pas de deuxième argument, elle supprime les espaces blancs à droite de la chaîne. Si la fonction possède un deuxième argument de chaîne, elle ne supprime pas l'espace blanc. Au lieu de cela, elle supprime les caractères de trimChars à droite de str. Par exemple, rtrim("xyZfooxyxyZ","xyZ") renvoie "xyZfoo".

trim(str: string)

trim(str: string, trimChars: string)

chaîne

Si la fonction ne possède pas de deuxième argument, elle supprime les espaces blancs aux deux extrémités de la chaîne. Si la fonction possède un deuxième argument de chaîne, elle ne supprime pas l'espace blanc. Au lieu de cela, il supprime les caractères de trimChars des deux côtés de str. Par exemple, trim("xyZxyfooxyxyZ","xyZ") renvoie "foo".

strlen(str: string)

nombre

Renvoie la longueur de la chaîne en points de code Unicode.

toupper(str: string)

chaîne

Convertit la chaîne en majuscules.

tolower(str: string)

chaîne

Convertit la chaîne en minuscules.

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

chaîne

Renvoie une sous-chaîne à partir de l'index spécifié par l'argument de nombre à la fin de la chaîne. Si la fonction comporte un second argument de nombre, elle comporte la longueur de la sous-chaîne à récupérer. Par exemple, substr("xyZfooxyZ",3, 3) renvoie "foo".

replace(fieldName: string, searchValue: string, replaceValue: string)

chaîne

Remplace toutes les instances de searchValue dans fieldName: string par replaceValue.

Par exemple, la fonction replace(logGroup,"smoke_test","Smoke") recherche les événements du journal où le champ logGroup contient la valeur de chaîne smoke_test et remplace la valeur par la chaîne Smoke.

strcontains(str: string, searchValue: string)

nombre

Renvoie 1 si str contient searchValue et 0 dans le cas contraire.