parse - 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à.

parse

Utilizza parse per estrarre i dati da un campo di log e creare un campo estratto che puoi elaborare nella query. parse supporta sia la modalità glob con i caratteri jolly che le espressioni regolari. Per informazioni sulla sintassi delle espressioni regolari, vedere. Sintassi delle espressioni regolari (regex) supportate

È possibile analizzare i JSON campi annidati con un'espressione regolare.

Esempio: analisi di un campo nidificato JSON

Il frammento di codice mostra come analizzare un evento di JSON registro che è stato appiattito durante l'ingestione.

{'fieldsA': 'logs', 'fieldsB': [{'fA': 'a1'}, {'fA': 'a2'}]}

Il frammento di codice mostra una query con un'espressione regolare che estrae i valori per fieldsA e fieldsB per creare i campi estratti fld e array.

parse @message "'fieldsA': '*', 'fieldsB': ['*']" as fld, array

Gruppi di acquisizione denominati

Quando si utilizza parse con un'espressione regolare, è possibile utilizzare gruppi di acquisizione denominati per acquisire un pattern in un campo. La sintassi è parse @message (?<Name>pattern).

L'esempio seguente utilizza un gruppo di acquisizione su un log di VPC flusso per estrarlo in un campo denominato. ENI NetworkInterface

parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
Nota

JSONgli eventi di registro vengono appiattiti durante l'ingestione. Attualmente, l'analisi dei JSON campi annidati con un'espressione glob non è supportata. È possibile analizzare solo gli eventi di JSON registro che includono non più di 200 campi di eventi di registro. Quando si analizzano JSON campi annidati, è necessario formattare l'espressione regolare nella query in modo che corrisponda al formato dell'evento di registro. JSON

Esempi del comando parse

Utilizza un'espressione glob per estrarre i campi @user, @method e @latency dal campo di log @message e restituire la latenza media per ogni combinazione univoca di @method e @user.

parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user

Utilizza un'espressione regolare per estrarre i campi temporanei @user2, @method2 e @latency2 dal campo di log @message e restituire la latenza media per ogni combinazione univoca di @method2 e @user2.

parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2

Estrae i campi loggingTime, loggingType e loggingMessage, filtra per log eventi che contengono le stringhe ERROR o INFO e quindi mostra solo i campi loggingMessage e loggingType per gli eventi che contengono una stringa ERROR.

FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError