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
parsefieldName"pattern" asalias1,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
parsefieldName/regex/
Gunakan grup tangkapan bernama (?< untuk menentukan bidang yang diekstraksi.name>...)
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
parsefieldNamelogfmt asalias
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