Konektor Amazon Athena CloudWatch - Amazon Athena

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

Konektor Amazon Athena CloudWatch

CloudWatch Konektor Amazon Athena memungkinkan Amazon Athena untuk berkomunikasi sehingga Anda dapat menanyakan data log Anda CloudWatch dengan SQL.

Konektor memetakan skema LogGroups sebagai Anda dan masing-masing LogStream sebagai tabel. Konektor juga memetakan all_log_streams tampilan khusus yang berisi semua yang LogStreams ada di file LogGroup. Tampilan ini memungkinkan Anda untuk menanyakan semua log LogGroup sekaligus alih-alih mencari melalui masing-masing LogStream secara individual.

Prasyarat

Parameter

Gunakan variabel lingkungan Lambda di bagian ini untuk mengonfigurasi konektor. CloudWatch

  • spill_bucket - Menentukan bucket Amazon S3 untuk data yang melebihi batas fungsi Lambda.

  • spill_prefix — (Opsional) Default ke subfolder dalam nama yang ditentukan. spill_bucket athena-federation-spill Kami menyarankan Anda mengonfigurasi siklus hidup penyimpanan Amazon S3 di lokasi ini untuk menghapus tumpahan yang lebih lama dari jumlah hari atau jam yang telah ditentukan sebelumnya.

  • spill_put_request_headers — (Opsional) Peta header permintaan dan nilai yang disandikan JSON untuk permintaan Amazon S3 yang digunakan untuk menumpahkan (misalnya,). putObject {"x-amz-server-side-encryption" : "AES256"} Untuk kemungkinan header lainnya, lihat PutObjectdi Referensi API Amazon Simple Storage Service.

  • kms_key_id — (Opsional) Secara default, data apa pun yang tumpah ke Amazon S3 dienkripsi menggunakan mode enkripsi yang diautentikasi AES-GCM dan kunci yang dihasilkan secara acak. Agar fungsi Lambda Anda menggunakan kunci enkripsi yang lebih kuat yang dihasilkan oleh KMS sepertia7e63k4b-8loc-40db-a2a1-4d0en2cd8331, Anda dapat menentukan ID kunci KMS.

  • disable_spill_encryption — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan. True Defaultnya False sehingga data yang tumpah ke S3 dienkripsi menggunakan AES-GCM — baik menggunakan kunci yang dihasilkan secara acak atau KMS untuk menghasilkan kunci. Menonaktifkan enkripsi tumpahan dapat meningkatkan kinerja, terutama jika lokasi tumpahan Anda menggunakan enkripsi sisi server.

Konektor ini juga mendukung kontrol kemacetan AIMD untuk menangani peristiwa pelambatan dari melalui konstruksi CloudWatch Amazon Athena Query Federation SDK. ThrottlingInvoker Anda dapat mengubah perilaku pelambatan default dengan menyetel salah satu variabel lingkungan opsional berikut:

  • throttle_initial_delay_ms - Penundaan panggilan awal diterapkan setelah peristiwa kemacetan pertama. Defaultnya adalah 10 milidetik.

  • throttle_max_delay_ms — Penundaan maksimum antara panggilan. Anda dapat memperoleh TPS dengan membaginya menjadi 1000ms. Defaultnya adalah 1000 milidetik.

  • throttle_decrease_factor — Faktor dimana Athena mengurangi tingkat panggilan. Defaultnya adalah 0,5

  • throttle_increase_ms — Tingkat di mana Athena mengurangi penundaan panggilan. Defaultnya adalah 10 milidetik.

Database dan tabel

CloudWatch Konektor Athena memetakan skema LogGroups sebagai Anda (yaitu, database) dan masing-masing LogStream sebagai tabel. Konektor juga memetakan all_log_streams tampilan khusus yang berisi semua yang LogStreams ada di file LogGroup. Tampilan ini memungkinkan Anda untuk menanyakan semua log LogGroup sekaligus alih-alih mencari melalui masing-masing LogStream secara individual.

Setiap tabel yang dipetakan oleh konektor CloudWatch Athena memiliki skema berikut. Skema ini cocok dengan bidang yang disediakan oleh CloudWatch Log.

  • log_stream — Sebuah VARCHAR yang berisi nama dari LogStream mana baris berasal.

  • waktu — An INT64 yang berisi waktu epoch ketika baris log dihasilkan.

  • message — A VARCHAR yang berisi pesan log.

Contoh

Contoh berikut menunjukkan bagaimana melakukan SELECT query pada tertentu LogStream.

SELECT * FROM "lambda:cloudwatch_connector_lambda_name"."log_group_path"."log_stream_name" LIMIT 100

Contoh berikut menunjukkan bagaimana menggunakan all_log_streams tampilan untuk melakukan query pada semua LogStreams dalam tertentu LogGroup.

SELECT * FROM "lambda:cloudwatch_connector_lambda_name"."log_group_path"."all_log_streams" LIMIT 100

Izin yang Diperlukan

Untuk detail lengkap tentang kebijakan IAM yang diperlukan konektor ini, tinjau Policies bagian file athena-cloudwatch.yaml. Daftar berikut merangkum izin yang diperlukan.

  • Akses tulis Amazon S3 - Konektor memerlukan akses tulis ke lokasi di Amazon S3 untuk menumpahkan hasil dari kueri besar.

  • Athena GetQueryExecution — Konektor menggunakan izin ini untuk gagal cepat ketika kueri Athena hulu telah dihentikan.

  • CloudWatch Log Baca/Tulis — Konektor menggunakan izin ini untuk membaca data log Anda dan menulis log diagnostiknya.

Kinerja

CloudWatch Konektor Athena mencoba mengoptimalkan kueri CloudWatch dengan memparalelkan pemindaian aliran log yang diperlukan untuk kueri Anda. Untuk filter periode waktu tertentu, pushdown predikat dilakukan baik di dalam fungsi Lambda maupun di dalam Log. CloudWatch

Untuk performa terbaik, gunakan hanya huruf kecil untuk nama grup log dan nama aliran log Anda. Menggunakan casing campuran menyebabkan konektor melakukan pencarian case insensitive yang lebih intensif secara komputasi.

Kueri passthrough

CloudWatch Konektor mendukung kueri passthrough yang menggunakan sintaks kueri CloudWatch Logs Insights. Untuk informasi selengkapnya tentang Wawasan CloudWatch Log, lihat Menganalisis data CloudWatch log dengan Wawasan Log di Panduan Pengguna CloudWatch Log Amazon.

Untuk membuat kueri passthrough dengan CloudWatch, gunakan sintaks berikut:

SELECT * FROM TABLE( system.query( STARTTIME => 'start_time', ENDTIME => 'end_time', QUERYSTRING => 'query_string', LOGGROUPNAMES => 'log_group-names', LIMIT => 'max_number_of_results' ))

Berikut contoh CloudWatch passthrough query filter untuk duration bidang ketika tidak sama dengan 1000.

SELECT * FROM TABLE( system.query( STARTTIME => '1710918615308', ENDTIME => '1710918615972', QUERYSTRING => 'fields @duration | filter @duration != 1000', LOGGROUPNAMES => '/aws/lambda/cloudwatch-test-1', LIMIT => '2' ))

Informasi lisensi

Proyek CloudWatch konektor Amazon Athena dilisensikan di bawah Lisensi Apache-2.0.

Sumber daya tambahan

Untuk informasi tambahan tentang konektor ini, kunjungi situs terkait GitHub di.com.