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. parsemendukung mode glob menggunakan wildcard, dan ekspresi reguler. Untuk informasi tentang sintaks ekspresi reguler, lihatSintaks ekspresi reguler (regex) yang didukung.

Anda dapat mengurai bidang JSON bersarang dengan ekspresi reguler.

Contoh: Mengurai bidang JSON bersarang

Cuplikan kode menunjukkan cara mengurai peristiwa log JSON yang telah diratakan selama konsumsi.

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

Cuplikan kode menunjukkan kueri dengan ekspresi reguler yang mengekstrak nilai fieldsB untuk fieldsA dan membuat bidang yang diekstraksi dan. fld array

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

Dinamakan menangkap kelompok

Bila Anda menggunakan parsedengan ekspresi reguler, Anda dapat menggunakan grup penangkap bernama untuk menangkap pola ke dalam bidang. Sintaksnya adalah parse @message (?<Name>pattern).

Contoh berikut menggunakan grup menangkap pada log aliran VPC untuk mengekstrak ENI ke dalam bidang bernama. NetworkInterface

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

Peristiwa log JSON diratakan selama konsumsi. Saat ini, mengurai bidang JSON bersarang dengan ekspresi glob tidak didukung. Anda hanya dapat mengurai peristiwa log JSON yang menyertakan tidak lebih dari 200 bidang peristiwa log. Saat Anda mengurai bidang JSON bersarang, Anda harus memformat ekspresi reguler dalam kueri agar sesuai dengan format peristiwa log JSON Anda.

Contoh perintah parse

Gunakan ekspresi glob untuk mengekstrak bidang@user,@method, dan @latency dari bidang log @message dan kembalikan latensi rata-rata untuk setiap kombinasi unik dan. @method @user

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

Gunakan ekspresi reguler untuk mengekstrak bidang@user2,@method2, dan @latency2 dari bidang log @message dan kembalikan latensi rata-rata untuk setiap kombinasi unik @method2 dan@user2.

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

Mengekstrak bidangloggingTime, loggingType danloggingMessage, memfilter ke log peristiwa yang berisi ERROR atau INFO string, dan kemudian hanya menampilkan loggingMessage dan loggingType bidang untuk peristiwa yang berisi ERROR string.

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