Menggunakan metrik Prometheus

Halaman ini membahas dasar-dasar penggunaan metrik Prometheus untuk SLI ketersediaan dan latensi di Cloud Monitoring, serta penggunaan metrik tersebut untuk membuat SLO.

Dasar-dasar Prometheus

Prometheus adalah solusi pemantauan open source terkemuka untuk metrik dan pemberitahuan.

Prometheus mendukung data dimensional 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 secara monoton atau direset ke 0 saat dimulai ulang.
  • Pengukur: nilai numerik tunggal yang dapat disetel secara arbitrer.
  • Histogram: sekelompok bucket yang dapat dikonfigurasi untuk pengambilan sampel pengamatan dan pencatatan 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 memancarkan 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 metrik histogram atau ringkasan Prometheus.

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 menjalankan 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 meng-scrape endpoint metrik yang valid atau mengaktifkan salah satu paket metrik terkelola.

Paket metrik bidang kontrol mencakup metrik yang merupakan indikator berguna untuk kesehatan sistem. Aktifkan pengumpulan metrik bidang kontrol untuk menggunakan metrik ini untuk SLI ketersediaan, latensi, dan 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 memancarkan metrik Prometheus yang dapat digunakan untuk membuat rasio ini. Aplikasi harus memancarkan setidaknya dua hal berikut:

  1. Metrik yang menghitung total peristiwa; gunakan metrik ini dalam rasio totalServiceFilter.

    Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap peristiwa.

  2. Metrik yang menghitung peristiwa "buruk", gunakan metrik ini dalam rasio badServiceFilter.

    Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap error atau peristiwa "buruk" lainnya.

  3. Metrik yang menghitung peristiwa "baik", gunakan metrik ini dalam rasio goodServiceFilter.

    Anda dapat menggunakan penghitung Prometheus yang diinkrementalkan untuk setiap peristiwa "baik" yang berhasil atau lainnya.

Metrik untuk SLI latensi

Anda 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 memancarkan metrik Prometheus yang dapat digunakan untuk membuat nilai pemotongan distribusi. Anda dapat menggunakan histogram atau ringkasan Prometheus untuk tujuan ini. Untuk menentukan cara mendefinisikan bucket secara akurat mengukur apakah respons Anda termasuk dalam SLO, lihat Jenis metrik dalam dokumentasi Prometheus.

Contoh

Contoh JSON berikut menggunakan metrik bidang kontrol GKE, yaitu metrik prometheus.googleapis.com/apiserver_request_duration_seconds, untuk membuat SLO latensi untuk layanan. SLO memerlukan 98% latensi respons agar 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 berikutnya