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