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 [ takan value,
value, ...]filter requestId = 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.value
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
dan fieldName =...filter akan mendapat manfaat dari peningkatan indeks lapangan. Kueri dengan fieldName IN...filter tidak menggunakan indeks dan selalu memindai semua peristiwa log di grup log yang dipilih.fieldName like
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/