View a markdown version of this page

filter - CloudWatch Log Amazon

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

filter

Gunakan filter untuk mendapatkan peristiwa log yang cocok dengan satu atau lebih kondisi.

Contoh: Memfilter peristiwa log menggunakan satu kondisi

Cuplikan kode menunjukkan contoh kueri yang mengembalikan semua peristiwa log di mana nilai untuk range lebih besar dari 3000 . Kueri membatasi hasil untuk 20 peristiwa log dan mengurutkan peristiwa log dengan @timestamp dan dalam urutan menurun.

fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20

Contoh: Memfilter peristiwa log menggunakan lebih dari satu kondisi

Anda dapat menggunakan kata kunci and dan or menggabungkan lebih dari satu kondisi.

Cuplikan kode menunjukkan contoh kueri yang mengembalikan peristiwa log di mana nilai untuk lebih besar dari 3000 dan nilai untuk range sama dengan 123 4567 accountId 89012. Kueri membatasi hasil untuk 20 peristiwa log dan mengurutkan peristiwa log dengan @timestamp dan dalam urutan menurun.

fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20

Bidang yang diindeks dan perintah filter

Jika Anda telah membuat indeks bidang untuk grup log, Anda dapat menggunakan indeks bidang tersebut untuk membuat filter kueri Anda lebih efisien dan mengurangi volume yang dipindai. Misalnya, Anda telah membuat indeks bidang untukrequestId. Kemudian, kueri CloudWatch Logs Wawasan apa pun pada grup log yang menyer filter requestId IN [value, value, ...] takan filter requestId = value atau akan mencoba melewatkan peristiwa log pemrosesan yang diketahui tidak menyertakan bidang yang diindeks. Dengan mencoba memindai hanya peristiwa log yang diketahui berisi bidang yang diindeks, volume pemindaian dapat dikurangi dan kueri lebih cepat.

Untuk informasi selengkapnya tentang indeks bidang dan cara membuatnya, lihatBuat indeks bidang untuk meningkatkan kinerja kueri dan mengurangi volume pemindaian.

penting

Hanya kueri dengan filter fieldName =... dan filter fieldName IN... akan mendapat manfaat dari peningkatan indeks lapangan. Kueri dengan filter fieldName like tidak menggunakan indeks dan selalu memindai semua peristiwa log di grup log yang dipilih.

Contoh: Menemukan peristiwa log yang terkait dengan ID permintaan tertentu, menggunakan indeks

Contoh ini mengasumsikan bahwa Anda telah membuat indeks bidang padarequestId. Untuk grup log yang menggunakan indeks bidang ini, kueri akan menggunakan indeks bidang untuk mencoba memindai jumlah kejadian log paling sedikit untuk menemukan peristiwa requestId dengan nilai 123456

fields @timestamp, @message | filter requestId = "1234656" | limit 20

Cocokkan dan ekspresi reguler dalam perintah filter

Perintah filter mendukung penggunaan ekspresi reguler. Anda dapat menggunakan operator perbandingan berikut (=,,!=,<, <=>,>=) dan operator Boolean (and,or, dannot).

Anda dapat menggunakan kata kunci in untuk menguji keanggotaan yang ditetapkan dan memeriksa elemen dalam array. Untuk memeriksa elemen dalam array, letakkan array setelahnyain. Anda dapat menggunakan operator not Boolean dengan. in Anda dapat membuat kueri yang digunakan in untuk mengembalikan peristiwa log di mana bidang cocok string. Bidang harus berupa string lengkap. Misalnya, cuplikan kode berikut menunjukkan kueri yang digunakan in untuk mengembalikan peristiwa log di mana bidang logGroup adalah string example_group lengkap.

fields @timestamp, @message | filter logGroup in ["example_group"]

Anda dapat menggunakan frasa kata kunci like dan not like untuk mencocokkan substring. Anda dapat menggunakan operator ekspresi reguler =~ untuk mencocokkan substring. Untuk mencocokkan substring dengan like dannot like, lampirkan substring yang ingin Anda cocokkan dalam tanda kutip tunggal atau ganda. Anda dapat menggunakan pola ekspresi reguler dengan like dannot like. Untuk mencocokkan substring dengan operator ekspresi reguler, lampirkan substring yang ingin Anda cocokkan dalam garis miring ke depan. Contoh berikut berisi cuplikan kode yang menunjukkan bagaimana Anda dapat mencocokkan substring menggunakan perintah. filter

Contoh: Cocokkan substring

Contoh berikut mengembalikan peristiwa log di mana f1 berisi kata Peng ecualian . Ketiga contoh tersebut peka terhadap huruf besar dan kecil.

Contoh pertama cocok dengan substring denganlike.

fields f1, f2, f3 | filter f1 like "Exception"

Contoh kedua cocok dengan substring dengan like dan pola ekspresi reguler.

fields f1, f2, f3 | filter f1 like /Exception/

Contoh ketiga cocok dengan substring dengan ekspresi reguler.

fields f1, f2, f3 | filter f1 =~ /Exception/

Contoh: Cocokkan substring dengan wildcard

Anda dapat menggunakan simbol titik (.) sebagai wildcard dalam ekspresi reguler untuk mencocokkan substring. Dalam contoh berikut, query mengembalikan kecocokan di mana nilai untuk f1 dimulai dengan stringServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog./

Anda dapat menempatkan simbol tanda bintang setelah simbol periode (.*) untuk membuat kuantifier serakah yang mengembalikan kecocokan sebanyak mungkin. Misalnya, kueri berikut mengembalikan kecocokan di mana nilai untuk f1 tidak hanya dimulai dengan stringServiceLog, tetapi juga menyertakan stringServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog.*/

Kemungkinan kecocokan dapat diformat seperti berikut:

  • ServiceLogSampleApiLogGroup

  • SampleApiLogGroupServiceLog

Contoh: Kecualikan substring dari kecocokan

Contoh berikut menunjukkan kueri yang mengembalikan peristiwa log di mana f1 tidak berisi kata Peng ecualian . Contohnya adalah case senstive.

fields f1, f2, f3 | filter f1 not like "Exception"

Contoh: Cocokkan substring dengan pola yang tidak peka huruf besar/kecil

Anda dapat mencocokkan substring yang tidak peka huruf besar/kecil dengan ekspresi like reguler. Tempatkan parameter berikut (? i) sebelum substring yang ingin Anda cocokkan. Contoh berikut menunjukkan kueri yang mengembalikan peristiwa log yang f1 berisi kata Peng ecualian atau peng ecualian .

fields f1, f2, f3 | filter f1 like /(?i)Exception/