statistik - CloudWatch Log Amazon

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

statistik

Gunakan stats untuk membuat visualisasi data log Anda seperti diagram batang, diagram garis, dan bagan area bertumpuk. Ini membantu Anda mengidentifikasi pola dalam data log Anda dengan lebih efisien. CloudWatch Log Insights menghasilkan visualisasi untuk kueri yang menggunakan stats fungsi dan satu atau beberapa fungsi agregasi.

Misalnya, kueri berikut dalam grup log Route 53 mengembalikan visualisasi yang menunjukkan distribusi catatan Route 53 per jam, berdasarkan jenis kueri.

stats count(*) by queryType, bin(1h)

Semua kueri tersebut dapat menghasilkan diagram batang. Jika kueri Anda menggunakan fungsi bin() untuk mengelompokkan data dengan satu bidang dari waktu ke waktu, Anda juga dapat melihat diagram garis dan diagram area bertumpuk.

Satuan waktu dan singkatan berikut didukung dengan bin fungsi tersebut. Untuk semua unit dan singkatan yang menyertakan lebih dari satu karakter, menambahkan s ke pluralisasi didukung. Jadi keduanya hr dan hrs bekerja untuk menentukan jam.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

Visualisasikan data deret waktu

Visualisasi deret waktu dapat digunakan dengan kueri yang memiliki karakteristik berikut:

Kueri-kueri ini dapat menghasilkan diagram garis, diagram area bertumpuk, diagram batang, dan diagram lingkaran.

Contoh

Untuk tutorial lengkap, lihat Tutorial: Jalankan kueri yang menghasilkan visualisasi deret waktu.

Berikut adalah contoh kueri lain yang dapat digunakan untuk visualisasi deret waktu.

Kueri berikut menghasilkan visualisasi nilai rata-rata bidang myfield1, dengan titik data yang dibuat setiap lima menit. Setiap titik data adalah agregasi dari rata-rata nilai myfield1 dari log lima menit sebelumnya.

stats avg(myfield1) by bin(5m)

Kueri berikut menghasilkan visualisasi dari tiga nilai berdasarkan pada bidang-bidang yang berbeda, dengan titik data yang dibuat setiap lima menit. Visualisasi dihasilkan karena kueri berisi fungsi agregat dan menggunakan bin() sebagai bidang pengelompokan.

stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)

Bagan garis dan batasan bagan area bertumpuk

Pertanyaan yang membuat agregat informasi entri log, tetapi tidak menggunakan fungsi bin() dapat menghasilkan diagram batang. Namun, kueri tidak dapat menghasilkan diagram garis atau diagram area bertumpuk. Untuk informasi selengkapnya tentang tipe kueri ini, lihat Visualisasikan data log yang dikelompokkan berdasarkan bidang.

Visualisasikan data log yang dikelompokkan berdasarkan bidang

Anda dapat menghasilkan diagram batang untuk kueri yang menggunakan fungsi stats dan satu atau beberapa fungsi agregasi. Untuk informasi selengkapnya, lihat Aggregation Functions in the Stats Command.

Untuk melihat visualisasi, jalankan kueri Anda. Lalu pilih tab Visualization (Visualisasi), pilih panah di sebelah Line (Garis), dan pilih Bar (Batang). Visualisasi dibatasi hingga 100 batang dalam diagram batang.

Contoh

Untuk tutorial lengkap, lihat Tutorial: Jalankan kueri yang menghasilkan visualisasi yang dikelompokkan berdasarkan bidang log. Paragraf berikut mencakup lebih banyak contoh kueri untuk visualisasi berdasarkan bidang.

Kueri log alur VPC berikut menemukan jumlah rata-rata byte yang ditransfer per sesi untuk setiap alamat tujuan.

stats avg(bytes) by dstAddr

Anda juga dapat menghasilkan diagram yang mencakup lebih dari satu batang untuk setiap nilai yang dihasilkan. Misalnya, kueri log alur VPC berikut menemukan jumlah rata-rata dan maksimum byte yang ditransfer per sesi untuk setiap alamat tujuan.

stats avg(bytes), max(bytes) by dstAddr

Kueri berikut menemukan jumlah log kueri Amazon Route 53 untuk setiap jenis kueri.

stats count(*) by queryType

Gunakan beberapa perintah statistik dalam satu kueri

Anda dapat menggunakan sebanyak dua stats perintah dalam satu kueri. Ini memungkinkan Anda untuk melakukan agregasi tambahan pada output agregasi pertama.

Contoh: Query dengan dua stats perintah

Misalnya, kueri berikut pertama-tama menemukan total volume lalu lintas di tempat sampah 5 menit, kemudian menghitung volume lalu lintas tertinggi, terendah, dan rata-rata di antara tempat sampah 5 menit tersebut.

FIELDS strlen(@message) AS message_length | STATS sum(message_length)/1024/1024 as logs_mb BY bin(5m) | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb

Contoh: Menggabungkan beberapa perintah statistik dengan fungsi lain sepertifilter,, fields bin

Anda dapat menggabungkan dua stats perintah dengan perintah lain seperti filter dan fields dalam satu kueri. Misalnya, kueri berikut menemukan jumlah alamat IP yang berbeda dalam sesi dan menemukan jumlah sesi berdasarkan platform klien, memfilter alamat IP tersebut, dan akhirnya menemukan rata-rata permintaan sesi per platform klien.

STATS count_distinct(client_ip) AS session_ips, count(*) AS requests BY session_id, client_platform | FILTER session_ips > 1 | STATS count(*) AS multiple_ip_sessions, sum(requests) / count(*) AS avg_session_requests BY client_platform

Anda dapat menggunakan bin dan dateceil berfungsi dalam kueri dengan beberapa stats perintah. Misalnya, kueri berikut pertama-tama menggabungkan pesan menjadi blok 5 menit, kemudian menggabungkan blok 5 menit tersebut menjadi blok 10 menit dan menghitung volume lalu lintas tertinggi, terendah, dan rata-rata dalam setiap blok 10 menit.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) / 1024 / 1024 AS logs_mb BY BIN(5m) as @t | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb BY dateceil(@t, 10m)

Catatan dan batasan

Kueri dapat memiliki maksimal dua stats perintah. Kuota ini tidak dapat diubah.

Jika Anda menggunakan limit perintah sort atau, itu harus muncul setelah stats perintah kedua. Jika sebelum stats perintah kedua, kueri tidak valid.

Ketika kueri memiliki dua stats perintah, sebagian hasil dari kueri tidak mulai ditampilkan sampai stats agregasi pertama selesai.

Dalam stats perintah kedua dalam satu kueri, Anda hanya dapat merujuk ke bidang yang didefinisikan dalam stats perintah pertama. Misalnya, kueri berikut tidak valid karena @message bidang tidak akan tersedia setelah stats agregasi pertama.

FIELDS @message | STATS SUM(Fault) by Operation # You can only reference `SUM(Fault)` or Operation at this point | STATS MAX(strlen(@message)) AS MaxMessageSize # Invalid reference to @message

Bidang apa pun yang Anda referensikan setelah stats perintah pertama harus didefinisikan dalam stats perintah pertama itu.

STATS sum(x) as sum_x by y, z | STATS max(sum_x) as max_x by z # You can only reference `max(sum_x)`, max_x or z at this point
penting

binFungsi selalu secara implisit menggunakan bidang. @timestamp Ini berarti bahwa Anda tidak dapat menggunakan bin dalam stats perintah kedua tanpa menggunakan stats perintah pertama untuk menyebarkan timestamp bidang. Misalnya, kueri berikut tidak valid.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes BY @logStream | STATS avg(ingested_bytes) BY bin(5m) # Invalid reference to @timestamp field

Sebagai gantinya, tentukan @timestamp bidang di stats perintah pertama, dan kemudian Anda dapat menggunakannya dengan dateceil stats perintah kedua seperti pada contoh berikut.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes, max(@timestamp) as @t BY @logStream | STATS avg(ingested_bytes) BY dateceil(@t, 5m)

Fungsi untuk digunakan dengan statistik

CloudWatch Logs Insights mendukung fungsi agregasi statistik dan fungsi non-agregasi statistik.

Gunakan fungsi statsaggregation dalam stats perintah dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

avg(fieldName: NumericLogField)

nomor

Rata-rata nilai di bidang yang ditentukan.

count()

count(fieldName: LogField)

nomor

Menghitung log acara. count() (atau count(*)) menghitung semua kejadian yang dikembalikan oleh kueri, sementara count(fieldName) menghitung semua catatan yang menyertakan nama bidang yang ditentukan.

count_distinct(fieldName: LogField)

nomor

Mengembalikan jumlah nilai unik untuk bidang. Jika bidang memiliki kardinalitas yang sangat tinggi (mengandung banyak nilai unik), nilai yang dikembalikan oleh count_distinct hanyalah sebuah perkiraan.

max(fieldName: LogField)

LogFieldValue

Nilai maksimum untuk bidang log ini dalam log yang dikueri.

min(fieldName: LogField)

LogFieldValue

Nilai minimum untuk bidang log ini dalam log yang dikueri.

pct(fieldName: LogFieldValue, percent: number)

LogFieldValue

Persentil menunjukkan posisi relatif dari nilai dalam rangkaian data. Misalnya, pct(@duration, 95) mengembalikan nilai @duration di mana 95 persen dari nilai @duration lebih rendah dari nilai ini, dan 5 persen lebih tinggi dari nilai ini.

stddev(fieldName: NumericLogField)

nomor

Standar deviasi di bidang yang ditentukan.

sum(fieldName: NumericLogField)

nomor

Jumlah nilai di bidang yang ditentukan.

Statistik fungsi non-agregasi

Gunakan fungsi non-agregasi dalam stats perintah dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

earliest(fieldName: LogField)

LogField

Mengembalikan nilai fieldName dari log acara yang memiliki stempel waktu paling awal dalam log yang dikueri.

latest(fieldName: LogField)

LogField

Mengembalikan nilai fieldName dari log acara yang memiliki stempel waktu paling akhir dalam log yang dikueri.

sortsFirst(fieldName: LogField)

LogField

Mengembalikan nilai fieldName yang ada di urutan pertama dalam log yang dikueri.

sortsLast(fieldName: LogField)

LogField

Mengembalikan nilai fieldName yang ada di urutan terakhir dalam log yang dikueri.