Konsol ARMS mendukung penuh solusi open-source. Untuk skenario yang memerlukan tingkat kustomisasi tinggi—seperti pembuatan dasbor observabilitas khusus—topik ini menjelaskan cara menggunakan Grafana dan Prometheus, serta menyertakan contoh penulisan pernyataan kueri kustom untuk mengambil data.
Informasi latar belakang
Managed Service for Prometheus secara default telah mengintegrasikan sumber data Pemantauan Aplikasi. Anda dapat menggunakan Managed Service for Prometheus untuk memperoleh data pemantauan aplikasi, melihat dasbor bawaan, serta menyesuaikannya sesuai kebutuhan.
Prasyarat
Pemantauan Aplikasi secara otomatis membuat instans Alibaba Cloud Prometheus gratis di setiap wilayah. Semua metrik untuk Pemantauan Aplikasi di wilayah China (Hangzhou) disimpan dalam instans arms_metrics_cn-hangzhou_cloud_hangzhou dari Managed Service for Prometheus di wilayah yang sama.
Skenario
-
Buat dasbor berdasarkan metrik dari Pemantauan Aplikasi.
-
Untuk operasi dan pemeliharaan (O&M) harian, buat dasbor khusus dengan menggabungkan metrik dari Pemantauan Aplikasi dan metrik dari komponen tertentu di sumber data lainnya.
-
Sebelum puncak trafik website, buat dasbor spesifik skenario dengan menggabungkan metrik dari Pemantauan Aplikasi serta metrik dari komponen hulu dan hilir di sumber data lainnya.
-
Tampilkan data Pemantauan Aplikasi, yang diperoleh melalui pemantauan Prometheus, di Grafana yang Anda kelola sendiri.
-
Lakukan pengembangan lebih lanjut pada data Pemantauan Aplikasi yang diperoleh dari pemantauan Prometheus.
Prasyarat
-
Agen telah dipasang untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Ikhtisar onboarding Pemantauan Aplikasi.
-
Anda telah memasang Grafana di lingkungan Anda sendiri atau telah membuat Managed Service for Grafana workspace.
Menyesuaikan dasbor visualisasi
Langkah 1: Tambahkan sumber data Pemantauan Aplikasi
Managed Service for Prometheus secara default telah mengintegrasikan sumber data Pemantauan Aplikasi, sehingga Anda hanya perlu menambahkan instans Managed Service for Prometheus yang sesuai sebagai sumber data di Grafana.
Grafana yang dikelola sendiri
-
Peroleh titik akhir HTTP API Prometheus.
-
Di Konsol ARMS, buka halaman . Di bilah menu atas, pilih wilayah tempat aplikasi Anda dideploy.
Instans bertipe Prometheus for Application Monitoring adalah instans terintegrasi default untuk Pemantauan Aplikasi.
-
Klik nama instans Pemantauan Aplikasi, lalu klik Settings di panel navigasi sebelah kiri untuk melihat titik akhir HTTP API.
Di bagian bawah halaman Settings, pada bagian HTTP API Address (Grafana Read Address), Anda dapat menemukan URL publik dan internal.
-
(Opsional) Untuk mengamankan pembacaan data dari Grafana, Anda dapat mengklik Generate Token untuk mendapatkan token otentikasi untuk instans Prometheus tersebut.
PentingSetelah Anda menghasilkan token, Anda harus mengonfigurasikannya saat menambahkan sumber data di Grafana. Jika tidak, Grafana tidak dapat membaca data pemantauan dari Prometheus.
-
-
Tambahkan sumber data Prometheus di Grafana.
Bagian ini menggunakan Grafana 10.x sebagai contoh. Untuk informasi tentang cara menambahkan sumber data di versi Grafana lainnya, lihat dokumentasi resmi Grafana.
-
Login ke Grafana yang Anda kelola sendiri sebagai administrator.
-
Klik ikon
di pojok kiri atas halaman, lalu pilih . -
Klik + Add new data source, lalu pilih Prometheus sebagai tipe sumber data.
-
Di tab Settings, masukkan nama kustom di bidang Name, lalu tempel titik akhir HTTP API dari langkah sebelumnya ke bidang Prometheus server URL.
-
(Opsional) Di bagian Custom HTTP Headers, klik +Add header, atur Header menjadi Authorization, dan atur Value menjadi token otentikasi Anda.
-
Di bagian bawah tab, klik Save & Test.
-
Managed Service for Grafana
Managed Service for Grafana Alibaba Cloud memungkinkan Anda mengintegrasikan sumber data dan dasbor Pemantauan Aplikasi hanya dengan satu klik.
-
Di Konsol ARMS, buka , lalu klik ID workspace Anda.
-
Di halaman Workspace Information, pada bagian Cloud Service Integration, klik ARMS Application Monitoring Service, lalu klik Integrations di sebelah kanan instans di wilayah yang sesuai.
-
Di kotak dialog, klik Confirm.
-
Setelah sinkronisasi selesai, klik ikon Folder di sebelah kanan.
-
Di Grafana, pada tab Dashboards, klik nama dasbor untuk melihat dasbor default bawaan untuk Pemantauan Aplikasi.
Dasbor default bawaan untuk Pemantauan Aplikasi mencakup empat dasbor: DB, Application, API, dan Host.
-
Klik ikon
di pojok kiri atas halaman, lalu pilih untuk melihat sumber data Pemantauan Aplikasi yang telah ditambahkan.Setelah sumber data berhasil ditambahkan, sumber data Prometheus akan muncul dalam daftar sumber data. Namanya mirip dengan
arms_metrics_cn-hangzhou_cloud_hangzhou_xxx, dan URL-nya adalahhttp://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/<InstanceID>.
Langkah 2: Konfigurasikan dasbor kustom
-
Di Grafana, klik ikon
di pojok kiri atas halaman, lalu klik Dashboards. -
Di halaman Dashboards, pilih . Di halaman New dashboard, klik Add visualization untuk membuat panel.
-
Di kotak dialog Select data source yang muncul, pilih sumber data Pemantauan Aplikasi. Nama sumber data secara default adalah arms_metrics_{regionid}_cloud.
PentingPastikan bahwa data tersedia di sumber data saat ini.
-
Di editor kueri pada tab A, atur metrik kueri.
Kueri PromQL
Dalam mode Code, masukkan pernyataan kueri PromQL di sebelah kanan Metrics browser.
Di Konsol ARMS, pada halaman detail pemantauan Pemantauan Aplikasi, Anda dapat mengklik ikon
untuk melihat pernyataan PromQL yang sesuai dengan suatu metrik. Untuk informasi selengkapnya, lihat Pernyataan kueri.Sebagai contoh, setelah Anda membuka panel metrik Request Count, Anda dapat melihat pernyataan kueri yang sesuai di editor kueri PromQL, seperti
sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="...",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm"}[1m])).Untuk informasi selengkapnya tentang cara menggunakan pernyataan kueri PromQL, lihat dokumentasi resmi Prometheus.
Metrik Pemantauan Aplikasi
Dalam mode Builder, pilih metrik tertentu dari daftar drop-down Metric, misalnya
arms_jvm_threads_count, untuk mengkueri jumlah thread JVM. Untuk detail metrik yang didukung oleh Pemantauan Aplikasi, lihat Metrik Pemantauan Aplikasi.Di bagian Label filters, atur kondisi penyaringan label, misalnya
host= IP target. Pernyataan kueri PromQL yang sesuai akan dibuat secara otomatis, sepertiarms_jvm_threads_count{host="xxx.xxx.xx.67"}. -
Di sebelah kanan, atur judul panel dan pilih jenis grafik.
CatatanUntuk metrik yang sama, Anda dapat memilih jenis grafik berbeda untuk memvisualisasikan data pada granularitas berbeda.
Di editor panel di sebelah kanan, atur tipe visualisasi menjadi Time series. Di bagian Panel options, masukkan JVM Threads Count di bidang Title.
-
Setelah menyelesaikan pengaturan, klik Apply di pojok kanan atas.
Menyesuaikan pernyataan kueri
Anda dapat menggunakan Prometheus HTTP API dan pernyataan PromQL dari Konsol ARMS untuk membuat permintaan HTTP menggunakan skrip Shell atau kode Java guna menyesuaikan data yang diambil.
Sebagai contoh, jika titik akhir Prometheus HTTP API adalah https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou, gabungkan dengan pernyataan PromQL dalam format berikut:
{{Prometheus HTTP API}}/api/v1/query_range?query={{PromQL}}&start={{startTime}}&end={{endTime}}&step={{step}}.
Pernyataan kueri yang dihasilkan adalah sebagai berikut:
https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou/api/v1/query_range?query=sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="ckv8e2vzfj@7e393063f3fd6ad",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm", }[1m]))&start=1728719399&end=1728722999&step=60s
Data respons contoh:
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"callType":"http"},"values":[[1728719399,"1575"],[1728719459,"1599"],[1728719519,"1593"],[1728719579,"1584"],[1728719639,"1578"],[1728719699,"1568"],[1728719759,"1561"],[1728719819,"1555"],[1728719879,"1547"],[1728719939,"1540"],[1728719999,"1533"],[1728720059,"1524"],[1728720119,"1518"],[1728720179,"1512"],[1728720239,"1503"],[1728720299,"1497"],[1728720359,"1491"],[1728720419,"1482"],[1728720479,"1476"],[1728720539,"1467"],[1728720599,"1464"],[1728720659,"1453"],[1728720719,"1448"],[1728720779,"1443"],[1728720839,"1434"],[1728720899,"1428"],[1728720959,"1419"],[1728721019,"1416"],[1728721079,"1407"],[1728721139,"1401"],[1728721199,"1395"],[1728721259,"1389"],[1728721319,"1381"],[1728721379,"1374"],[1728721439,"1366"],[1728721499,"1367"],[1728721559,"1350"],[1728721619,"1350"],[1728721679,"1344"],[1728721739,"1335"],[1728721799,"1331"],[1728721859,"1324"],[1728721919,"1320"],[1728721979,"1314"],[1728722039,"1305"],[1728722099,"1302"],[1728722159,"1296"],[1728722219,"1287"],[1728722279,"1284"],[1728722339,"1233"],[1728722399,"1272"],[1728722459,"1155"],[1728722519,"1116"],[1728722579,"1110"],[1728722639,"1107"],[1728722699,"1098"],[1728722759,"1095"],[1728722819,"1086"],[1728722879,"1083"],[1728722939,"1077"],[1728722999,"1184"]]}]}}
FAQ
Biaya kueri
Ya.
Pembatasan kecepatan kueri PromQL
Pembatasan kecepatan aktif, tetapi batasannya tidak didasarkan pada hitungan kueri per detik (QPS) sederhana di titik masuk, karena kueri yang berbeda mengonsumsi jumlah sumber daya yang berbeda. Hindari kueri berkonsumsi tinggi, seperti mengkueri semua API atau mengkueri data dalam rentang waktu lebih dari 30 hari, dan pertahankan laju kueri di bawah 50 QPS. Jika Anda perlu menjalankan kueri berkonsumsi tinggi secara berkelanjutan, ajukan tiket terlebih dahulu untuk meminta peningkatan kuota.