View a markdown version of this page

subkueri - CloudWatch Log Amazon

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

subkueri

Subquery adalah kueri Wawasan Log bersarang yang dapat digunakan sebagai masukan ke kueri lain. Subquery dapat digunakan untuk mendapatkan set hasil antara yang kemudian dikonsumsi oleh perintah berikutnya.

Sintaksis

Subquery dalam filter

filter <field> in ( <subquery> )
Parameter

  • <subquery>— Kueri Wawasan Log valid yang mengembalikan kumpulan hasil. Subquery harus menghasilkan bidang yang direferensikan oleh kueri luar.

Contoh

contoh Contoh 1: Temukan permintaan yang mengalami kesalahan dalam layanan hilir

Contoh ini menunjukkan cara menggunakan subquery untuk mengidentifikasi permintaan di layanan utama Anda yang mengakibatkan kesalahan dalam layanan hilir. Ini berguna untuk memecahkan masalah kegagalan cascading dalam sistem terdistribusi.

filter requestId in ( SOURCE '/aws/lambda/database-service' | filter errorType = "DatabaseConnectionTimeout" | fields requestId ) | fields @timestamp, requestId, endpoint, userId, responseTime | sort @timestamp desc

Kueri ini:

  1. Subquery menemukan semua requestId nilai dari layanan database yang mengalami batas waktu koneksi

  2. Kueri luar memfilter log layanan utama Anda untuk hanya menampilkan permintaan yang cocok dengan permintaan rawan kesalahan tersebut IDs

  3. Hasil menunjukkan konteks lengkap permintaan yang gagal di hilir, termasuk titik akhir dan pengguna mana yang terpengaruh

Pola ini membantu Anda memahami dampak hulu dari kegagalan hilir.

contoh Contoh 2: Identifikasi permintaan yang sering gagal untuk investigasi yang ditargetkan

Contoh ini menunjukkan penggunaan subquery dengan agregasi untuk menemukan permintaan yang gagal berulang kali, yang sering menunjukkan masalah sistematis daripada kesalahan sementara.

filter requestId in ( SOURCE '/aws/lambda/payment-processor' | filter status = "FAILED" | stats count(*) as failureCount by requestId | filter failureCount > 3 | fields requestId ) | fields @timestamp, requestId, customerId, amount, failureReason | sort @timestamp asc

Kueri ini:

  1. Subquery menggabungkan upaya pembayaran gagal dan mengidentifikasi permintaan IDs yang gagal lebih dari 3 kali

  2. Kueri luar mengambil semua peristiwa log untuk permintaan bermasalah tersebut IDs

  3. Hasil diurutkan secara kronologis untuk menunjukkan perkembangan upaya coba lagi

Ini membantu membedakan antara kegagalan sementara (kejadian tunggal) dan masalah persisten (beberapa kegagalan) yang memerlukan penyelidikan lebih dalam.

Perilaku

  • Subquery dijalankan secara independen dari query luar.

  • Hasil diwujudkan sebelum dikonsumsi oleh kueri luar.

  • Hanya bidang yang dipilih secara eksplisit dalam subquery yang tersedia untuk kueri luar.

Catatan dan batasan

  • Subkueri harus mengembalikan bidang yang direferensikan oleh kueri luar.

  • Subquery bersarang tidak didukung.

  • Subquery dapat meningkatkan waktu eksekusi query dan biaya.

  • Subquery berkorelasi tidak didukung.

  • Eksekusi kueri batin dibatasi hingga 30 detik.

Perintah-perintah terkait