OpenSearch Linguaggio PPL - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

OpenSearch Linguaggio PPL

Questa sezione contiene un'introduzione di base all'interrogazione dei CloudWatch log utilizzando PPL. OpenSearch Con PPL, è possibile recuperare, interrogare e analizzare i dati utilizzando comandi concatenati, semplificando la comprensione e la composizione di interrogazioni complesse. La sua sintassi si basa sulle pipe Unix e consente il concatenamento di comandi per trasformare ed elaborare i dati. Con PPL, puoi filtrare e aggregare i dati e utilizzare un ricco set di funzioni matematiche, di stringhe, di data, condizionali e di altro tipo per l'analisi.

È possibile utilizzare OpenSearch PPL solo per le interrogazioni dei gruppi di log nella Standard Log Class. Quando si selezionano i gruppi di log da interrogare, è possibile selezionare un singolo gruppo di log, un insieme di gruppi di log che condividono un prefisso o selezionare tutti i gruppi di log

Nota

Per informazioni su tutti i comandi di interrogazione OpenSearch PPL supportati in CloudWatch Logs e informazioni dettagliate sulla sintassi e le restrizioni, vedere Comandi PPL supportati nella Service Developer Guide. OpenSearch

Comando o funzione Query di esempio Descrizione

campi

fields field1, field2

Visualizza un insieme di campi che necessitano di proiezione.

join

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

Unisce due set di dati.

dove

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

Filtra i dati in base alle condizioni specificate.

statistiche

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

Esegue aggregazioni e calcoli

parse

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

Estrae un pattern di espressione regolare (regex) da una stringa e visualizza il pattern estratto. Il pattern estratto può essere ulteriormente utilizzato per creare nuovi campi o filtrare i dati.

sort

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

Ordina i risultati visualizzati in base al nome di un campo. Usa sort - FieldName per ordinare in ordine decrescente.

eval

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

Modifica o elabora il valore di un campo e lo memorizza in un campo diverso. Ciò è utile per modificare matematicamente una colonna, applicare funzioni di stringa a una colonna o applicare funzioni di data a una colonna.

rinominare

rename field2 as field1 | fields field1;

Rinomina uno o più campi nel risultato della ricerca.

head

fields `@message` | head 20

Limita i risultati dell'interrogazione visualizzati alle prime N righe.

top

top 2 field1 by field2

Trova i valori più frequenti per un campo.

dedup

dedup field1 | fields field1, field2, field3

Rimuove le voci duplicate in base ai campi specificati.

rari

rare field1 by field2

Trova i valori meno frequenti di tutti i campi nell'elenco dei campi.

subquery

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

Esegue interrogazioni complesse e annidate all'interno delle istruzioni PPL.

linea di tendenza

trendline sma(2, field1) as field1Alias

Calcola le medie mobili dei campi.

EventStats

eventstats sum(field1) by field2

Arricchisce i dati degli eventi con statistiche riassuntive calcolate. Analizza campi specifici all'interno degli eventi, calcola varie misure statistiche e quindi aggiunge questi risultati a ciascun evento originale come nuovi campi.

espandere

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

Suddivide un campo contenente più valori in righe separate, creando una nuova riga per ogni valore nel campo specificato.

riempi/null

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

Riempie i campi nulli con il valore fornito. Può essere utilizzato in uno o più campi.

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)

Appiattisce un campo. Il campo deve essere di questo tipo: struct<?,?> o. array<struct<?,?>>

cidrmatch

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

Verifica se l'indirizzo IP specificato rientra nell'intervallo CIDR specificato.

riepilogo del campo

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

Calcola le statistiche di base per ogni campo (conteggio, conteggio distinto, min, max, avg, stddev e mean).

grok

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

Analizza un campo di testo con un pattern grok e aggiunge i risultati al risultato della ricerca.

Funzioni stringa

eval field1Len = LENGTH(field1) | fields field1Len

Funzioni integrate in PPL che possono manipolare e trasformare stringhe e dati di testo all'interno di query PPL. Ad esempio, convertire maiuscole e minuscole, combinare stringhe, estrarre parti e pulire il testo.

Funzioni data-ora

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

Funzioni integrate per la gestione e la trasformazione dei dati di data e ora nelle query PPL. Ad esempio, date_add, date_format, datediff, date-sub, timestampadd, timestampdiff, current_timezone, utc_timestamp e current_date.

Funzioni di condizione

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

Funzioni integrate che controllano le condizioni specifiche dei campi e valutano le espressioni in modo condizionale. Ad esempio, se field1 è nullo, restituisci field2.

Funzioni matematiche

eval field2 = ACOS(field1) | fields field1

Funzioni integrate per eseguire calcoli e trasformazioni matematiche nelle interrogazioni PPL. Ad esempio, abs (valore assoluto), round (arrotonda i numeri), sqrt (radice quadrata), pow (calcolo della potenza) e ceil (arrotonda al numero intero più vicino).

CryptoGraphic funzioni

eval crypto = MD5(field)| head 1000

Per calcolare l'hash di un determinato campo

Funzioni JSON

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

Funzioni integrate per la gestione di JSON, tra cui array, estrazione e convalida. Ad esempio, json_object, json_array, to_json_string, json_array_length, json_extract, json_keys e json_valid.