Halaman ini membahas dasar-dasar penggunaan metrik Prometheus untuk SLI ketersediaan dan latensi di Cloud Monitoring, serta menggunakan metrik tersebut untuk membuat SLO.
Dasar-dasar Prometheus
Prometheus adalah solusi pemantauan open source terkemuka untuk metrik dan pemberitahuan.
Prometheus mendukung data dimensi dengan ID nilai kunci untuk metrik, menyediakan bahasa kueri PromQL, dan mendukung banyak integrasi dengan menyediakan eksportir untuk produk lain.
Untuk mulai menggunakan Prometheus dengan Monitoring, sebaiknya gunakan Google Cloud Managed Service for Prometheus.
Metrik
Prometheus mendukung jenis metrik berikut:
- Penghitung: satu nilai yang hanya dapat ditingkatkan secara monoton atau direset ke 0 saat dimulai ulang.
- Pengukur: satu nilai numerik yang dapat ditetapkan secara arbitrer.
- Histogram: sekelompok bucket yang dapat dikonfigurasi untuk mengambil sampel pengamatan dan mencatat nilai dalam rentang; juga memberikan jumlah semua nilai yang diamati
- Ringkasan: seperti histogram, tetapi juga menghitung kuantil yang dapat dikonfigurasi selama periode waktu geser.
Untuk mengetahui informasi selengkapnya, lihat Jenis metrik.
Membuat metrik untuk SLI
Jika aplikasi Anda memunculkan metrik Prometheus, Anda dapat menggunakannya untuk SLI.
- Untuk SLI ketersediaan pada jumlah permintaan dan error, Anda dapat memulai dengan metrik penghitung Prometheus.
- Untuk SLI latensi, Anda dapat menggunakan histogram Prometheus atau metrik ringkasan.
Untuk mengumpulkan metrik Prometheus dengan Google Cloud Managed Service for Prometheus, lihat dokumentasi untuk menyiapkan pengumpulan metrik terkelola atau di-deploy sendiri.
Saat Anda membuat SLO di konsol Google Cloud, jenis SLO ketersediaan dan latensi default tidak menyertakan metrik Prometheus. Untuk menggunakan metrik Prometheus, buat SLO kustom, lalu pilih metrik Prometheus untuk SLI.
Metrik Prometheus dimulai dengan prometheus.googleapis.com/
.
Metrik untuk GKE
Pengumpulan metrik terkelola oleh Google Cloud Managed Service for Prometheus diaktifkan secara default untuk GKE. Jika Anda berjalan di lingkungan GKE yang tidak mengaktifkan pengumpulan terkelola secara default, Anda dapat mengaktifkan pengumpulan terkelola secara manual. Jika pengumpulan terkelola diaktifkan, komponen dalam cluster akan berjalan, tetapi metrik tidak akan dibuat hingga Anda men-deploy resource PodMonitoring yang mengambil endpoint metrik yang valid atau mengaktifkan salah satu paket metrik terkelola.
Paket metrik bidang kontrol menyertakan metrik yang merupakan indikator kondisi sistem yang berguna. Aktifkan pengumpulan metrik bidang kontrol untuk menggunakan metrik ini untuk ketersediaan, latensi, dan SLI lainnya.
- Gunakan metrik server API untuk melacak beban server API, fraksi permintaan server API yang menampilkan error, dan latensi respons untuk permintaan yang diterima oleh server API.
- Gunakan metrik penjadwal untuk membantu Anda merespons masalah penjadwalan secara proaktif saat tidak ada cukup resource untuk Pod yang tertunda.
Metrik untuk SLI ketersediaan
Anda menyatakan SLI ketersediaan berbasis permintaan di Cloud Monitoring API dengan menggunakan struktur TimeSeriesRatio
untuk menyiapkan rasio permintaan "baik" atau "buruk" terhadap total permintaan. Rasio ini digunakan
di kolom goodTotalRatio
dari struktur
RequestBasedSli
.
Aplikasi Anda harus memunculkan metrik Prometheus yang dapat digunakan untuk membuat rasio ini. Aplikasi harus memunculkan minimal dua dari hal berikut:
Metrik yang menghitung total peristiwa; gunakan metrik ini di
totalServiceFilter
rasio.Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap peristiwa.
Metrik yang menghitung peristiwa "buruk", gunakan metrik ini dalam
badServiceFilter
rasio.Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap error atau peristiwa "buruk" lainnya.
Metrik yang menghitung peristiwa "baik", gunakan metrik ini dalam
goodServiceFilter
rasio.Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap peristiwa "baik" atau peristiwa lainnya yang berhasil.
Metrik untuk SLI latensi
Anda dapat menyatakan SLI latensi berbasis permintaan di Cloud Monitoring API dengan membuat struktur DistributionCut
. Struktur
ini digunakan di kolom distributionCut
dari
struktur RequestBasedSli
.
Aplikasi Anda harus memunculkan metrik Prometheus yang dapat digunakan untuk membuat nilai pemotongan distribusi. Anda dapat menggunakan histogram atau ringkasan Prometheus untuk tujuan ini. Untuk menentukan cara menentukan bucket guna mengukur secara akurat apakah respons Anda berada dalam SLO, lihat Jenis metrik dalam dokumentasi Prometheus.
Contoh
Contoh JSON berikut menggunakan metrik prometheus.googleapis.com/apiserver_request_duration_seconds
metrik kontrol bidang kontrol GKE untuk membuat SLO latensi untuk layanan. SLO mewajibkan 98% latensi respons
kurang dari 50 detik dalam satu bulan kalender.
{
"displayName": "98% Calendar month - Request Duration Under 50s",
"goal": 0.98,
"calendarPeriod": "MONTH",
"serviceLevelIndicator": {
"requestBased": {
"distributionCut": {
"distributionFilter": "metric.type=\"prometheus.googleapis.com/apiserver_request_duration_seconds/histogram\" resource.type=\"prometheus_target\"",
"range": {
"min": "-Infinity",
"max": 50
}
}
}
}
}
Langkah selanjutnya
- Membuat SLO
- Pelajari Google Cloud Managed Service for Prometheus lebih lanjut.
- Pelajari metrik bidang kontrol lebih lanjut.