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.
OpenSearch Langage de traitement canalisé (PPL)
Cette section contient une introduction de base à l'interrogation des CloudWatch journaux à l'aide de OpenSearch PPL. Avec PPL, vous pouvez récupérer, interroger et analyser des données à l'aide de commandes groupées, ce qui facilite la compréhension et la composition de requêtes complexes. Sa syntaxe est basée sur les canaux Unix et permet d'enchaîner les commandes pour transformer et traiter les données. Avec PPL, vous pouvez filtrer et agréger des données, et utiliser un ensemble complet de fonctions mathématiques, de chaîne, de date, conditionnelles et autres pour l'analyse.
L'inclusion SOURCE dans une requête PPL est un moyen utile de spécifier les groupes de journaux, les index de champs et les sources de données à inclure dans une requête lorsque vous utilisez l'API AWS CLI or pour créer une requête. La SOURCE commande est prise en charge uniquement dans l'API AWS CLI and, pas dans la CloudWatch console. Lorsque vous utilisez la CloudWatch console pour démarrer une requête, vous utilisez l'interface de console pour spécifier les groupes de journaux ainsi que le nom et le type de source de données.
aws:fieldIndexÀ utiliser pour renvoyer uniquement des données indexées, en forçant une requête à analyser uniquement les groupes de journaux indexés sur un champ que vous spécifiez dans la requête. Les groupes de journaux pertinents sont automatiquement sélectionnés en fonction des champs spécifiés dans la filterIndex commande. Cela réduit le volume numérisé en ignorant les groupes de journaux qui ne contiennent aucun événement de journal contenant le champ spécifié dans la requête, et en analysant uniquement les groupes de journaux correspondant à la valeur spécifiée dans la requête pour cet index de champ. aws:fieldIndexÀ utiliser pour spécifier le nom du champ, ainsi que le nom et la valeur du champ dans la commande source afin d'interroger uniquement les données indexées contenant le champ et la valeur spécifiés. Pour de plus amples informations, consultez Créez des index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation.
Vous pouvez utiliser OpenSearch PPL pour les requêtes de groupes de journaux dans la classe de journal standard.
Note
Pour plus d'informations sur toutes les commandes de requête OpenSearch PPL prises en charge dans les CloudWatch journaux et des informations détaillées sur la syntaxe et les restrictions, consultez la section Commandes PPL prises en charge dans le Guide du développeur OpenSearch de services.
Pour plus d'informations sur les autres langages de requête, vous pouvez utiliser CloudWatch Logs Insights, OpenSearch Service SQL et CloudWatch Metrics Insights
| Commande ou fonction | Exemple de requête | Description |
|---|---|---|
|
fields |
|
Affiche un ensemble de champs devant être projetés. |
|
join |
|
Joint deux ensembles de données. |
|
où |
|
Filtre les données en fonction des conditions que vous spécifiez. |
|
AWS : Index des champs |
|
Renvoie uniquement les données indexées, en forçant une requête à analyser uniquement les groupes de journaux indexés sur un champ que vous spécifiez dans la requête. |
|
stats |
|
Effectue des agrégations et des calculs |
|
parse |
|
Extrait un modèle d'expression régulière (regex) d'une chaîne et affiche le modèle extrait. Le modèle extrait peut également être utilisé pour créer de nouveaux champs ou filtrer des données. |
|
sort |
|
Triez les résultats affichés par nom de champ. Utilisez le tri - FieldName pour trier par ordre décroissant. |
|
eval |
|
Modifie ou traite la valeur d'un champ et la stocke dans un autre champ. Cela est utile pour modifier mathématiquement une colonne, appliquer des fonctions de chaîne à une colonne ou appliquer des fonctions de date à une colonne. |
|
renommer |
|
Renomme un ou plusieurs champs dans les résultats de recherche. |
|
head |
|
Limite les résultats de requête affichés aux N premières lignes. |
|
top |
|
Recherche les valeurs les plus fréquentes pour un champ. |
|
dedup |
|
Supprime les entrées dupliquées en fonction des champs que vous spécifiez. |
|
rare |
|
Recherche les valeurs les moins fréquentes de tous les champs de la liste de champs. |
|
sous-requête |
|
Exécute des requêtes complexes et imbriquées dans vos instructions PPL. |
|
ligne de tendance |
|
Calcule les moyennes mobiles des champs. |
|
Statistiques de l'événement |
|
Enrichissez les données de vos événements grâce à des statistiques récapitulatives calculées. Il analyse les champs spécifiés au sein de vos événements, calcule diverses mesures statistiques, puis ajoute ces résultats à chaque événement d'origine sous forme de nouveaux champs. |
|
expand |
|
Décompose un champ contenant plusieurs valeurs en lignes distinctes, en créant une nouvelle ligne pour chaque valeur du champ spécifié. |
|
fillnull |
|
Remplit les champs nuls avec la valeur que vous fournissez. Il peut être utilisé dans un ou plusieurs domaines. |
|
flatten |
|
Aplatit un champ. Le champ doit être de ce type : |
|
cidrmatch |
|
Vérifie si l'adresse IP spécifiée se situe dans la plage CIDR donnée. |
|
résumé du champ |
|
Calcule les statistiques de base pour chaque champ (nombre, nombre distinct, min, max, avg, stddev et moyenne). |
|
grok |
|
Analyse un champ de texte à l'aide d'un motif grok et ajoute les résultats au résultat de recherche. |
|
Fonctions de chaîne |
|
Fonctions intégrées dans PPL qui peuvent manipuler et transformer des chaînes et des données de texte dans les requêtes PPL. Par exemple, convertir des majuscules, combiner des chaînes, extraire des parties et nettoyer du texte. |
|
Fonctions date-heure |
|
Fonctions intégrées pour gérer et transformer les données de date et d'horodatage dans les requêtes PPL. Par exemple, date_add, date_format, datediff, date-sub, timestampadd, timestampdiff, current_timezone, utc_timestamp et current_date. |
|
Fonctions de condition |
|
Fonctions intégrées qui vérifient les conditions de champ spécifiques et évaluent les expressions de manière conditionnelle. Par exemple, si le champ 1 est nul, renvoie le champ 2. |
|
Fonctions mathématiques |
|
Fonctions intégrées pour effectuer des calculs mathématiques et des transformations dans les requêtes PPL. Par exemple, abs (valeur absolue), round (arrondit les nombres), sqrt (racine carrée), pow (calcul de puissance) et ceil (arrondit au nombre entier le plus proche). |
|
CryptoGraphic fonctions |
|
Pour calculer le hachage d'un champ donné |
|
Fonctions JSON |
|
Fonctions intégrées pour gérer le JSON, notamment les tableaux, l'extraction et la validation. Par exemple, json_object, json_array, to_json_string, json_array_length, json_extract, json_keys et json_valid. |
Étendue de la requête
L'inclusion de SOURCE dans une requête est un moyen utile de spécifier les groupes de journaux à inclure dans une requête lorsque vous utilisez l'API AWS CLI or pour créer une requête. La commande SOURCE n'est prise en charge que dans l'API AWS CLI and, pas dans la CloudWatch console. Lorsque vous utilisez la CloudWatch console pour démarrer une requête, vous utilisez l'interface de console pour spécifier les groupes de journaux ainsi que le nom et le type de source de données.
La commande source de PPL permet désormais de les spécifier de plusieurs manières :
-
Groupe de journaux
-
Index des champs - Nouveau
-
Source et type de données - Nouveau
Groupe de journaux
La sélection de la source du groupe de journaux peut être utilisée lorsque les clients savent exactement quel ou quels groupes de journaux doivent être recherchés
source = [lg:`/aws/lambda/my-function`] | where status = 200 | head 10
Index des champs
La sélection de sources basée sur l'index des champs réduit la quantité de données demandées en limitant les résultats aux seules données indexées lorsque vos filtres ciblent les champs qui ont été indexés. Les groupes de journaux pertinents sont automatiquement sélectionnés en fonction des champs spécifiés dans la filterIndex commande. Pour plus d'informations sur les index de champs et sur la façon de les créer, voir Création d'index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation.
aws:fieldIndexÀ utiliser pour renvoyer uniquement des données indexées, en forçant une requête à analyser uniquement les groupes de journaux indexés sur un champ que vous spécifiez dans la requête. Pour les groupes de journaux indexés sur ce champ, cela optimise davantage la requête en ignorant les groupes de journaux qui ne contiennent aucun événement de journal contenant le champ spécifié dans la requête pour le champ indexé. Il réduit encore le volume numérisé en essayant de scanner uniquement les événements de journal de ces groupes de journaux qui correspondent à la valeur spécifiée dans la requête pour cet index de champ. Pour plus d'informations sur les index de champs et sur la façon de les créer, voir Création d'index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation.
En PPL, aws:fieldIndex est utilisé pour spécifier quelles paires clé-valeur doivent être traitées comme des index. La syntaxe est la suivante
source = [`aws:fieldIndex`="region", `region` = "us-west-2"] | where status = 200 | head 10
Où :
-
`aws:fieldIndex`="region"identifie la région en tant qu'index de champ.-
Remarque : Au lieu de =, les clients peuvent utiliser IN pour spécifier plusieurs index (exemple ci-dessous)
-
-
`region`="us-west-2"identifie la condition de filtre à appliquer-
Remarque : Au lieu de =, les clients peuvent utiliser IN pour spécifier plusieurs valeurs (exemple ci-dessous)
-
Les clients peuvent spécifier plusieurs FieldIndexes comme suit
source = [`aws:fieldIndex` IN ("status", "region"), `status` = 200, `region` IN ("us-west-2", "us-east-1")] | head 10
Source et type de données
La sélection basée sur la source de données et le type de source peut être utilisée lorsque les clients savent quelles sources de données exactes doivent être interrogées. Cette requête est exécutée sur un ou plusieurs groupes de journaux contenant la source de données et le type spécifiés.
source = [ds:`data_source.type`] | where status = 200 | head 10
PPL pris en charge pour les requêtes de sources de données
Pour prendre en charge le cas d'utilisation de l'interrogation de sources de données dans PPL, vous pouvez utiliser la clause de sélection de source dynamique. À l'aide de cette syntaxe, vous pouvez interroger des sources de données en les spécifiant dans la commande de recherche. Vous pouvez spécifier jusqu'à 10 sources de données.
Syntaxe
source=[ds:`DataSource1.Type1`, ds:`DataSource2.Type2`, ...ds:`DataSourcen.Typen`]
Exemple de requête
search source=[ds:`DataSource1.Type1`, ds:`DataSource2.Type2`] | fields field1, field2
Exemple combiné
Les clients peuvent spécifier tous les opérateurs de sélection de source dans n'importe quel ordre et les résultats seront l'intersection de toutes les conditions appliquées.
Par exemple,/aws/lambda/my-function-1 peut contenir plusieurs sources et types de données, y compris une grande variété d'index. Lorsque la requête suivante a été exécutée, les résultats renvoyés ne comporteront que des événements de source et de type DataSource 1.Type1 répondant aux critères « status » = 200.
search source=[ ds:`DataSource1.Type1`, lg:`/aws/lambda/my-function-1`, `aws:fieldIndex` IN ("status"), `status` = 200 ]
Restrictions
Les restrictions suivantes s'appliquent lorsque vous utilisez OpenSearch PPL pour effectuer des requêtes dans CloudWatch Logs Insights.
-
Vous ne pouvez pas utiliser de commandes de jointure ou de sous-requête avec des requêtes de source de données.