Halaman ini membahas dasar-dasar penggunaan metrik Prometheus untuk SLI ketersediaan dan latensi di Cloud Monitoring, dan penggunaan 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 pengekspor 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 atau direset secara monoton ke 0 saat mulai ulang.
- Meteran: 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 jangka waktu geser.
Untuk mengetahui informasi selengkapnya, lihat Jenis metrik.
Membuat metrik untuk SLI
Jika aplikasi Anda menampilkan metrik Prometheus, Anda dapat menggunakannya untuk SLI.
- Untuk SLI ketersediaan berdasarkan jumlah permintaan dan error, Anda dapat memulai dengan metrik penghitung Prometheus.
- Untuk SLI latensi, Anda dapat menggunakan histogram atau metrik ringkasan Prometheus.
Untuk mengumpulkan metrik Prometheus dengan Google Cloud Managed Service for Prometheus, baca dokumentasi untuk menyiapkan kumpulan metrik terkelola atau yang 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
Kumpulan metrik terkelola oleh Google Cloud Managed Service for Prometheus diaktifkan secara default untuk GKE. Jika Anda menjalankan lingkungan GKE yang tidak mengaktifkan pengumpulan data terkelola secara default, Anda dapat mengaktifkan koleksi terkelola secara manual. Jika pengumpulan terkelola diaktifkan, komponen dalam cluster akan berjalan, tetapi metrik tidak akan dibuat hingga Anda men-deploy resource PodMonitoring yang menyalin endpoint metrik yang valid atau mengaktifkan salah satu paket metrik terkelola.
Paket metrik bidang kontrol mencakup metrik yang merupakan indikator kesehatan 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 tersedia cukup resource untuk Pod yang tertunda.
Metrik untuk SLI ketersediaan
Anda mengekspresikan 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
dalam kolom goodTotalRatio
pada struktur
RequestBasedSli
.
Aplikasi Anda harus memunculkan metrik Prometheus yang dapat digunakan untuk membuat rasio ini. Aplikasi harus memunculkan setidaknya dua dari hal berikut:
Metrik yang menghitung total peristiwa; gunakan metrik ini dalam
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" yang berhasil atau lainnya.
Metrik untuk SLI latensi
Anda mengekspresikan SLI latensi berbasis permintaan di Cloud Monitoring API dengan membuat struktur DistributionCut
. Struktur
ini digunakan dalam kolom distributionCut
pada
struktur RequestBasedSli
.
Aplikasi Anda harus memunculkan metrik Prometheus yang dapat digunakan untuk membuat nilai potongan distribusi. Anda dapat menggunakan histogram atau ringkasan Prometheus untuk tujuan ini. Untuk menentukan cara menentukan bucket agar dapat mengukur secara akurat apakah respons Anda termasuk dalam SLO, lihat Jenis metrik dalam dokumentasi Prometheus.
Contoh
Contoh JSON berikut menggunakan metrik bidang kontrol GKE
prometheus.googleapis.com/apiserver_request_duration_seconds
untuk
membuat SLO latensi untuk layanan. SLO memerlukan 98% latensi respons
dengan durasi 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 lebih lanjut Google Cloud Managed Service for Prometheus.
- Pelajari metrik bidang kontrol lebih lanjut.