View a markdown version of this page

mengurai - CloudWatch Log Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

mengurai

Gunakan parse untuk mengekstrak data dari bidang log dan membuat bidang yang diekstraksi yang dapat Anda proses dalam kueri Anda. parsePerintah ini mendukung tiga mode: ekspresi glob, ekspresi reguler, dan logfmt.

Jika fieldName dihilangkan, digunakan @message secara default. Anda dapat mengurai dari bidang bernama dengan menentukan nama bidang sebagai argumen pertama.

Jika peristiwa log tidak cocok dengan pola yang ditentukan, Anda masih melihatnya di hasil, tetapi tanpa bidang yang diekstraksi.

Mode glob

Gunakan wildcard (*) sebagai placeholder untuk nilai yang ingin Anda ekstrak, dan tetapkan ke bidang bernama. as

Sintaksis

parse fieldName "pattern" as alias1, alias2

Jumlah * wildcard harus sama dengan jumlah alias.

Contoh

parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
parse @logStream "*/*/*/*" as env, service, instance, shard | stats count(*) by env, service

Parse dirantai

Ekstrak bidang, lalu uraikan bidang yang diekstraksi lebih lanjut.

parse @message "url=*" as url | parse url "/api/*/users/*" as apiVersion, userId | display apiVersion, userId

Mode Regex

Gunakan ekspresi reguler dengan grup tangkapan bernama untuk mengekstrak bidang. Untuk informasi tentang sintaks ekspresi reguler, lihatSintaks ekspresi reguler (regex) yang didukung.

Sintaksis

parse fieldName /regex/

Gunakan grup tangkapan bernama (?<name>...) untuk menentukan bidang yang diekstraksi.

Contoh

Gunakan grup tangkapan bernama untuk mengekstrak bidang

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

Gunakan grup tangkapan bernama untuk mengekstrak ENI dari log aliran VPC

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

Modus Logfmt

Gunakan parse logfmt untuk mengurai baris log berformat logfmt menjadi pasangan nilai kunci. Logfmt adalah format logging terstruktur di mana setiap baris berisi pasangan yang dipisahkan spasikey=value.

Sintaksis

parse fieldName logfmt as alias

Hasilnya adalah peta yang Anda akses dengan notasi titik (misalnya,lf.level,lf.msg).

Contoh

parse @message logfmt as lf | filter lf.level = "error" | display lf.msg, lf.duration
parse @message logfmt as lf | stats count(*) by lf.host