Menggunakan metrik Prometheus

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:

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

    Anda dapat menggunakan penghitung Prometheus yang bertambah untuk setiap peristiwa.

  2. 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.

  3. 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