OpenSearch Langage PPL - 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.

OpenSearch Langage 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.

Vous ne pouvez utiliser OpenSearch PPL que pour les requêtes de groupes de journaux dans la classe de journal standard. Lorsque vous sélectionnez les groupes de journaux à interroger, vous pouvez sélectionner un seul groupe de journaux, un ensemble de groupes de journaux partageant un préfixe ou sélectionner tous les groupes de journaux

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.

Commande ou fonction Exemple de requête Description

fields

fields field1, field2

Affiche un ensemble de champs qui doivent être projetés.

join

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

Joint deux ensembles de données.

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

Filtre les données en fonction des conditions que vous spécifiez.

stats

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

Effectue des agrégations et des calculs

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

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

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

Triez les résultats affichés par nom de champ. Utilisez le tri - FieldName pour trier par ordre décroissant.

eval

eval field2 = field1 * 2 | fields field1, field2 | head 20

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

rename field2 as field1 | fields field1;

Renomme un ou plusieurs champs dans les résultats de recherche.

head

fields `@message` | head 20

Limite les résultats de requête affichés aux N premières lignes.

top

top 2 field1 by field2

Recherche les valeurs les plus fréquentes pour un champ.

dedup

dedup field1 | fields field1, field2, field3

Supprime les entrées dupliquées en fonction des champs que vous spécifiez.

rare

rare field1 by field2

Recherche les valeurs les moins fréquentes de tous les champs de la liste de champs.

sous-requête

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

Exécute des requêtes complexes et imbriquées dans vos instructions PPL.

ligne de tendance

trendline sma(2, field1) as field1Alias

Calcule les moyennes mobiles des champs.

Statistiques de l'événement

eventstats sum(field1) by field2

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.

développer

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

Décompose un champ contenant plusieurs valeurs en lignes distinctes, en créant une nouvelle ligne pour chaque valeur du champ spécifié.

fillnull

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

Remplit les champs nuls avec la valeur que vous fournissez. Il peut être utilisé dans un ou plusieurs domaines.

flatten

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

Aplatit un champ. Le champ doit être de ce type : struct<?,?> ouarray<struct<?,?>>.

cidrmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

Vérifie si l'adresse IP spécifiée se situe dans la plage CIDR donnée.

résumé du champ

where field1 != 200 | fieldsummary includefields= field1 nulls=true

Calcule les statistiques de base pour chaque champ (nombre, nombre distinct, min, max, avg, stddev et moyenne).

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

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

eval field1Len = LENGTH(field1) | fields field1Len

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

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

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

eval field2 = isnull(field1) | fields field2, field1, field3

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

eval field2 = ACOS(field1) | fields field1

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

eval crypto = MD5(field)| head 1000

Pour calculer le hachage d'un champ donné

Fonctions JSON

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_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.