Variabel memungkinkan Anda memfilter grafik individual atau seluruh dasbor tanpa mengubah pernyataan kueri yang mendasarinya. Variabel menggunakan sintaks ${{variable_name|default_value}} atau ${{variable_name|default_value|prefix}} untuk menyesuaikan placeholder secara dinamis dalam pernyataan kueri Anda. Anda dapat memfilter data di seluruh dasbor atau hanya dalam satu grafik.
Filter seluruh dasbor
Jenis filter
Setiap grafik didukung oleh pernyataan kueri. Filter memodifikasi kondisi kueri atau mengganti variabel placeholder untuk semua grafik pada dasbor. Simple Log Service (SLS) mendukung tiga jenis filter:
-
Filter: Menggunakan pasangan kunci-nilai dari field log untuk memfilter data. Filter ini mencari hasil kueri untuk log yang berisi atau tidak berisi pasangan
Key:Valuetertentu. Misalnya, saat melihat jumlah tampilan halaman (PV) untuk metode permintaan berbeda, Anda dapat menambahkan filter untuk beralih antar metode menggunakan item daftar dinamis. -
Variable Replacement: Anda terlebih dahulu mendefinisikan variabel dalam pernyataan kueri grafik, lalu menambahkan filter untuk menggantinya secara dinamis dengan nilai yang dipilih. Misalnya, lihat PV per 10, 60, atau 600 detik.
-
Metric Filter: Mempersempit metrik yang diingest berdasarkan label dan nilai yang sesuai. Jika Anda menentukan beberapa kondisi filter, kondisi tersebut digabungkan dengan operator logika AND.
Jenis filter
Jenis penggantian variabel
Metric filter
Filter satu grafik dengan penggantian variabel
Anda dapat mengonfigurasi Variable Replacement untuk satu grafik. SLS menambahkan filter di pojok kiri atas grafik tersebut, yang memungkinkan Anda mempersempit datanya secara independen. Contoh berikut mengonfigurasi tabel untuk melihat PV dalam interval waktu berbeda.
Langkah 1: Konfigurasikan penggantian variabel
-
Di sisi kiri halaman pengeditan grafik, konfigurasikan rentang waktu kueri, Logstore, dan pernyataan kueri yang mencakup variabel.
Pernyataan kueri berikut mengambil PV untuk interval waktu berbeda. Sintaks
${{date|60}}mendefinisikan variabel bernamadatedengan nilai default 60.* | select __time__ - __time__ % ${{date | 60}} as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000Setelah menjalankan kueri, atur Logstore menjadi website_log dan rentang waktu menjadi 15 Minutes(Relative). Hasil kueri menampilkan PV dan waktu permintaan rata-rata yang dikelompokkan berdasarkan waktu dan metode permintaan dalam bentuk tabel.
-
Konfigurasikan penggantian variabel.
-
Di sisi kanan halaman pengeditan grafik, pilih Table sebagai jenis grafik, lalu klik .
-
Pada kotak dialog Variable Replacement, atur Variable Key menjadi date dan Display Name menjadi time. Untuk nilai variabel, atur Display Name menjadi min dan hour, dengan nilai pengganti masing-masing 60 dan 3600.
-
-
Di pojok kanan atas halaman, klik OK. Lalu, klik Save. Pada kotak dialog Save Dashboard, klik Confirm.
Langkah 2: Filter grafik
Setelah Anda menyimpan pengaturan, filter muncul di pojok kiri atas grafik. Saat Anda memilih nilai dari filter, SLS menjalankan ulang kueri dengan nilai baru tersebut. Misalnya, jika Anda memilih hour, SLS menjalankan pernyataan kueri berikut:
(*)| select __time__ - __time__ % 3600 as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000
Gunakan variabel dengan kejadian interaksi
Saat Anda mengonfigurasi Interaction Occurrences untuk grafik, Anda juga dapat mendefinisikan variabel. Saat Anda memicu interaksi, sistem secara otomatis memperbarui variabel dengan nilai dari interaksi tersebut. Hal ini menghubungkan grafik secara dinamis untuk analisis drill-down. Untuk contoh terperinci, lihat Configuration examples.
Pada jendela konfigurasi Open Logstore, pilih Logstore target, seperti website_log. Pada kotak input Filter query, klik Add Variable untuk mereferensikan variabel. Misalnya, dalam kueri * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as "${time}", ${time} adalah variabel yang didefinisikan dalam kejadian interaksi.
Penggunaan lanjutan: Gunakan variabel dengan awalan
Anda dapat meningkatkan pemfilteran dengan menyertakan awalan dalam variabel Anda, menggunakan sintaks ${{variable_name|default_value|prefix}}.
-
Jika tidak ada nilai yang dipilih untuk variabel, kueri dijalankan menggunakan nilai default.
-
Jika nilai dipilih, kueri menggabungkan awalan dan nilai yang dipilih.
Filter dasbor: Pemfilteran metode HTTP
Variabel
-
Format variabel:
${{method_filter|http_method in ('GET','POST')|http_method =}} -
Pernyataan kueri:
(*)|select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status-
Jika tidak ada nilai yang dipilih: Kueri secara default menganalisis distribusi error (kode status 400 atau lebih tinggi) untuk permintaan GET dan POST. Kueri efektifnya adalah:
(*)|select status, count(1) as err_count where request_method in ('GET','POST') and status>=400 group by status -
Jika
'DELETE'dipilih: Kueri beralih untuk menganalisis error untuk metodeDELETE. Kueri efektifnya adalah:(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status
-
Prosedur
-
Konfigurasikan grafik. Pada halaman pengeditan grafik, konfigurasikan rentang waktu, Logstore, dan pernyataan kueri yang mencakup variabel. Pilih Table sebagai jenis grafik. Klik Apply untuk melihat pratinjau, lalu klik OK untuk menyimpan.
Pernyataan kueri contoh adalah
* | select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status, di mana${{method_filter|...|...}}adalah sintaks variabel. Atur sumber data menjadi website_log. -
Konfigurasikan filter variabel. Pada panel Filter, tambahkan nilai ke daftar drop-down untuk variabel
method_filter.Atur Type menjadi Variable Replacement. Di bagian static list items, tambahkan
'GET','POST','PUT', dan'DELETE'. Lalu, klik OK. -
Filter dasbor. Klik filter dan pilih
'DELETE'. Dasbor diperbarui dan menampilkan statistik berdasarkan pernyataan kueri(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status.
Filter grafik: Pemfilteran ambang batas waktu permintaan
Variabel
-
Format variabel:
${{slow_query|request_time>50|request_time>}} -
Pernyataan kueri:
(*)| select request_uri, avg(request_time) as avg_time where ${{slow_query|request_time>50|request_time>}} group by request_uri order by avg_time desc-
Jika tidak ada nilai yang dipilih: Kueri secara default mencari API dengan waktu permintaan lebih dari 50 ms, diurutkan berdasarkan waktu rata-rata. Kueri efektifnya adalah:
(*)| select request_uri, avg(request_time) as avg_time where request_time>50 group by request_uri order by avg_time desc -
Jika
1000dipilih: Kueri disesuaikan untuk menganalisis API lambat yang membutuhkan waktu lebih dari 1.000 ms. Kueri efektifnya adalah:(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc
-
Prosedur
-
Konfigurasikan grafik. Pada halaman pengeditan grafik, konfigurasikan rentang waktu, Logstore, dan pernyataan kueri yang mencakup variabel.
Di sebelah kanan, pilih Table sebagai jenis grafik. Di panel kiri bawah, edit pernyataan kueri untuk menyertakan variabel. Di bagian Variable Replacement di sebelah kanan, konfigurasikan kunci variabel dan nama tampilan. Setelah selesai, klik OK.
-
Konfigurasikan penggantian variabel. Di sisi kanan halaman pengeditan grafik, klik Variable Replacement. Pada kotak dialog Variable Replacement, tambahkan nilai untuk variabel
slow_query.Dalam daftar nilai variabel, tambahkan item berikut: nama tampilan 50ms (nilai pengganti
50, diatur sebagai default), 100ms (nilai pengganti100), 200ms (nilai pengganti200), 300ms (nilai pengganti300), 400ms (nilai pengganti400), 500ms (nilai pengganti500), dan 1000ms (nilai pengganti1000). Lalu, klik OK. -
Filter grafik. Klik filter di pojok kiri atas grafik. Saat Anda memilih
1000ms, grafik diperbarui dan menampilkan statistik berdasarkan pernyataan kueri(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc.


