View a markdown version of this page

Simpan dan jalankan kembali kueri CloudWatch Logs Insights - CloudWatch Log Amazon

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

Simpan dan jalankan kembali kueri CloudWatch Logs Insights

Setelah Anda membuat kueri, Anda dapat menyimpannya, dan menjalankannya lagi nanti. Kueri disimpan dalam struktur folder, sehingga Anda dapat mengaturnya. Anda dapat menyimpan sebanyak 1000 kueri per wilayah dan per akun.

Kueri disimpan pada tingkat khusus Wilayah, bukan tingkat khusus pengguna. Jika Anda membuat dan menyimpan kueri, pengguna lain yang memiliki akses ke CloudWatch Log di Wilayah yang sama dapat melihat semua kueri yang disimpan dan struktur foldernya di Wilayah.

Untuk menyimpan kueri, Anda harus masuk ke peran yang memiliki izinlogs:PutQueryDefinition. Untuk melihat daftar kueri yang disimpan, Anda harus masuk ke peran yang memiliki izinlogs:DescribeQueryDefinitions.

catatan

Anda dapat membuat dan menyimpan kueri dengan parameter — template yang dapat digunakan kembali dengan placeholder bernama. Alih-alih menyimpan beberapa variasi kueri yang sama dengan nilai yang berbeda, buat satu templat dan berikan nilai parameter yang berbeda saat Anda menjalankannya. Fungsionalitas ini saat ini didukung untuk kueri hanya menggunakan bahasa kueri Wawasan Log. Untuk informasi selengkapnya, lihat Menggunakan kueri tersimpan dengan parameter.

Console

Untuk menyimpan kueri

  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Log, lalu pilih Wawasan Log.

  3. Buat kueri di editor kueri.

  4. Pilih Simpan.

  5. Masukkan nama untuk kueri.

  6. (Opsional) Pilih folder tempat Anda ingin menyimpan kueri. Pilih Create new (Buat baru) untuk membuat folder. Jika Anda membuat folder baru, Anda dapat menggunakan karakter garis miring (/) dalam nama folder untuk menentukan struktur folder. Sebagai contoh, menamai folder baru dengan folder-level-1/folder-level-2 akan membuat folder tingkat atas yang disebut folder-level-1, dengan folder lain yang bernama folder-level-2 di dalam folder itu. Kueri disimpan dalam folder-level-2.

  7. (Opsional) Ubah grup log kueri atau teks kueri.

  8. (Opsional) Untuk menggunakan parameter dalam kueri Anda, ikuti langkah-langkah tambahan ini:

    1. Tambahkan parameter ke kueri Anda. Ganti nilai statis dengan placeholder menggunakan {{parameter}} sintaks (tanda kurung ganda sebelum dan sesudah nama parameter).

      Contoh: Kueri asli dengan nilai statis:

      fields @timestamp, @message | filter level = "Error" | filter applicationName = "OrderService"

      Kueri diperbarui dengan parameter:

      fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}
    2. Tentukan parameter yang digunakan dalam kueri Anda. Untuk setiap parameter placeholder, tentukan:

      • Nama: Harus sama persis dengan nama placeholder (misalnya,logLevel,applicationName).

      • Nilai default (opsional): Nilai yang akan digunakan jika tidak ada nilai parameter yang disediakan.

      • Deskripsi (opsional): Menjelaskan tujuan parameter.

    3. Query dengan parameter dapat dijalankan dengan menggunakan nama query dengan $ awalan dan meneruskan nama parameter sebagai pasangan kunci-nilai. Lihat Untuk menjalankan kueri tersimpan untuk detailnya.

  9. Pilih Simpan.

AWS CLI

Untuk menyimpan kueri, gunakanput-query-definition:

aws logs put-query-definition \ --name "ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = \"ERROR\"" \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1

(Opsional) Untuk menyimpan kueri dengan parameter, tambahkan --parameters opsi dan gunakan {{parameterName}} placeholder dalam string kueri:

aws logs put-query-definition \ --name "ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}" \ --parameters '[{"name":"logLevel","defaultValue":"ERROR","description":"Log level to filter"},{"name":"applicationName","defaultValue":"OrderService","description":"Application name to filter"}]' \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1

Untuk menyimpan kueri di folder, awali nama kueri dengan jalur folder:

aws logs put-query-definition \ --name "my-folder/ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = {{logLevel}}" \ --parameters '[{"name":"logLevel","defaultValue":"ERROR","description":"Log level to filter"}]' \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1
API

Untuk menyimpan kueri, hubungi PutQueryDefinition:

{ "name": "ErrorsByLevel", "queryString": "fields @timestamp, @message | filter level = \"ERROR\"", "logGroupNames": ["/aws/lambda/my-function"] }

(Opsional) Untuk menyimpan kueri dengan parameter, sertakan parameters bidang dan gunakan {{parameterName}} placeholder dalam string kueri:

{ "name": "ErrorsByLevel", "queryString": "fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}", "logGroupNames": ["/aws/lambda/my-function"], "parameters": [ { "name": "logLevel", "defaultValue": "ERROR", "description": "Log level to filter" }, { "name": "applicationName", "defaultValue": "OrderService", "description": "Application name to filter" } ] }
Tip

Anda dapat membuat folder untuk kueri yang disimpan denganPutQueryDefinition. Untuk membuat folder untuk kueri yang disimpan, gunakan garis miring (/) untuk mengawali nama kueri yang Anda inginkan dengan nama folder yang Anda inginkan:. <folder-name>/<query-name> Untuk informasi lebih lanjut tentang tindakan ini, lihat PutQueryDefinition.

Console
Untuk menjalankan kueri yang disimpan
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Log, lalu pilih Wawasan Log.

  3. Di sebelah kanan, pilih Queries (Kueri).

  4. Pilih kueri Anda dari daftar Kueri tersimpan. Teks kueri muncul di editor kueri.

  5. (Opsional) Untuk menggunakan kueri dengan parameter:

    1. Pilih ikon+di sebelah nama kueri di panel samping Kueri tersimpan.

    2. Kueri dengan parameter muncul di editor kueri. Misalnya, jika Anda memilih ikon + di sebelahErrorsByLevel, editor kueri diisi dengan: $ErrorsByLevel(level=, applicationName=)

    3. Berikan nilai untuk parameter (level, applicationName) dan jalankan kueri. Misalnya: $ErrorsByLevel(level= "ERROR", applicationName= "OrderService")

  6. Pilih Jalankan.

AWS CLI

Untuk menjalankan kueri tersimpan dengan parameter

Gunakan start-query dengan $QueryName() sintaks:

aws logs start-query \ --log-group-names "/aws/lambda/my-function" \ --start-time 1707566400 --end-time 1707570000 \ --query-string '$ErrorsByLevel(level= "ERROR", applicationName= "OrderService")' \ --region us-east-1
API

Untuk menjalankan kueri tersimpan dengan parameter

Panggil StartQuerydengan $QueryName() sintaks di queryString lapangan:

{ "logGroupNames": ["/aws/lambda/my-function"], "startTime": 1707566400, "endTime": 1707570000, "queryString": "$ErrorsByLevel(level=\"ERROR\", applicationName= \"OrderService\")" }
Untuk menyimpan versi baru dari kueri tersimpan
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Log, lalu pilih Wawasan Log.

  3. Di sebelah kanan, pilih Queries (Kueri).

  4. Pilih kueri dari daftar Saved queries (Kueri tersimpan). Itu akan muncul di editor kueri.

  5. Modifikasi kueri. Jika Anda perlu menjalankannya untuk memeriksa pekerjaan Anda, pilih Run query (Jalankan kueri).

  6. Saat Anda siap untuk menyimpan versi baru, pilih Actions (Tindakan), Save as (Simpan sebagai).

  7. Masukkan nama untuk kueri.

  8. (Opsional) Pilih folder tempat Anda ingin menyimpan kueri. Pilih Create new (Buat baru) untuk membuat folder. Jika Anda membuat folder baru, Anda dapat menggunakan karakter garis miring (/) dalam nama folder untuk menentukan struktur folder. Sebagai contoh, menamai folder baru dengan folder-level-1/folder-level-2 akan membuat folder tingkat atas yang disebut folder-level-1, dengan folder lain yang bernama folder-level-2 di dalam folder itu. Kueri disimpan dalam folder-level-2.

  9. (Opsional) Ubah grup log kueri atau teks kueri.

  10. Pilih Simpan.

Untuk menghapus kueri, Anda harus masuk ke peran yang memiliki izin logs:DeleteQueryDefinition.

Untuk mengedit atau menghapus kueri tersimpan
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Log, lalu pilih Wawasan Log.

  3. Di sebelah kanan, pilih Queries (Kueri).

  4. Pilih kueri dari daftar Saved queries (Kueri tersimpan). Itu akan muncul di editor kueri.

  5. Pilih Actions (Tindakan), Edit atau Actions (Tindakan), Delete (Hapus).

Menggunakan kueri yang disimpan dengan parameter

Kueri tersimpan dengan parameter adalah templat kueri yang dapat digunakan kembali dengan placeholder bernama. Alih-alih mempertahankan beberapa salinan kueri yang hampir identik, Anda dapat menyimpan template dan memberikan nilai parameter yang berbeda saat menjalankan kueri. Parameter hanya didukung dalam bahasa kueri Wawasan CloudWatch Log.

Cara kerjanya

Saat menyimpan kueri, placeholder mengidentifikasi nilai yang dapat Anda berikan pada waktu eksekusi kueri. Placeholder menggunakan sintaks. {{parameterName}} Berikut ini adalah contoh dari query tersimpan bernama ErrorsByLevel dengan dua parameter logLevel danapplicationName.

fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}

Untuk menjalankan kueri tersimpan, Anda dapat memanggilnya menggunakan nama kueri yang diawali dengan $ dan meneruskan nilai parameter. Mesin kueri CloudWatch Logs Insights menggantikan setiap placeholder. Jika parameter berisi nilai default, maka nilai-nilai tersebut digunakan jika tidak ada nilai lain yang disediakan.

# Run query by using query name and passing parameter values explicitly $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") # Run query without specifying parameter values - default values are used in this case. $ErrorsByLevel()

Nama kueri tersimpan yang berisi spasi atau karakter khusus harus diapit dengan backticks:

$`Errors By Level`(logLevel = "WARN")

Contoh kueri yang disimpan dengan parameter

Menambahkan batas hasil sebagai parameter

Nama kueri: ErrorsByLevel dengan parameter logLevel (default:"ERROR"), applicationName (default:"OrderService"), dan maxResults (default:50)

fields @timestamp, @message, @logStream | filter level = {{logLevel}} | filter applicationName = {{applicationName}} | sort @timestamp desc | limit {{maxResults}}
# Run the query using the query name and passing parameter values $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService", maxResults = 100)

Menggunakan beberapa kueri tersimpan dengan parameter

Contoh di bawah ini menggunakan ErrorsByLevel dan kueri tersimpan kedua RecentN yang didefinisikan sebagai sort @timestamp desc | limit {{count}} (dengan parametercount, default20). Mesin kueri CloudWatch Logs Insights memperluas setiap kueri sebelum menjalankannya.

# Using multiple queries with parameters in sequence $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") | $RecentN(count = 10) # Each of the queries is expanded, resulting in the following query when it is run. fields @timestamp, @message | filter level = "WARN" | filter applicationName = "OrderService" | sort @timestamp desc | limit 10

Kuota dan penanganan kesalahan

catatan

Setiap kueri yang disimpan dapat memiliki maksimum 20 parameter.

String kueri yang diperluas tidak dapat melebihi 10.000 karakter. Nama parameter harus dimulai dengan huruf atau garis bawah. Kueri tersimpan tidak dapat mereferensikan kueri lain yang disimpan (pemanggilan bersarang tidak didukung).

Kesalahan umum
Kesalahan Penyebab

Parameter hanya didukung untuk bahasa kueri CWLI

Parameter hanya didukung dalam bahasa kueri Wawasan CloudWatch Log.

Parameter yang diperlukan tidak ditemukan di QueryString

Nama parameter di --parameters tidak memiliki pencocokan {{placeholder}} dalam string kueri.

Jumlah parameter melebihi maksimum 20

Kueri yang disimpan saat ini hanya mendukung 20 parameter.

Nama parameter duplikat

Definisi kueri memiliki parameter duplikat diparameters.

catatan

Untuk membuat atau memperbarui kueri yang disimpan dengan parameter, Anda memerlukan logs:PutQueryDefinition izin. Untuk menjalankannya, Anda perlu logs:StartQuery danlogs:DescribeQueryDefinitions.