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
Puoi analizzare i campi JSON annidati con un'espressione regolare.
Esempio: analisi di un campo JSON annidato
Il frammento di codice mostra come analizzare un log eventi JSON che è stato dissociato durante l'acquisizione.
{'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 flusso VPC per estrarre l'ENI in un campo denominato NetworkInterface
.
parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
Nota
I log eventi JSON vengono appiattiti durante l'acquisizione. Attualmente, l'analisi di campi JSON annidati con un'espressione glob non è supportata. È possibile analizzare solo i log eventi JSON che includono non più di 200 campi di log eventi. Quando si analizzano i campi JSON annidati, è necessario formattare l'espressione regolare nella query in modo che corrisponda al formato del log eventi 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