Menggunakan metrik Pengontrol Kebijakan

Halaman ini menjelaskan cara menggunakan metrik untuk memantau Pengontrol Kebijakan.

Pengontrol Kebijakan mencakup beberapa metrik terkait penggunaan kebijakan. Misalnya, ada metrik yang mencatat jumlah batasan dan template batasan, serta jumlah pelanggaran audit yang terdeteksi. Untuk membuat dan merekam metrik ini, Policy Controller menggunakan OpenTelemetry. Anda dapat mengonfigurasi Policy Controller untuk mengekspor metrik ini ke Prometheus atau Cloud Monitoring. Setelan default untuk mengekspor metrik mengekspor metrik ke Prometheus dan Cloud Monitoring.

Mengonfigurasi ekspor metrik

Anda dapat mengonfigurasi cara Policy Controller mengekspor metriknya. Anda dapat memilih Prometheus, Cloud Monitoring, keduanya, atau tidak keduanya saat menginstal Policy Controller. Secara default, Policy Controller mencoba mengekspor metrik ke Prometheus dan Cloud Monitoring.

Mengekspor metrik ke Cloud Monitoring

Agar Policy Controller dapat mengekspor metrik ke Cloud Monitoring, akun layanan yang digunakan Policy Controller harus memiliki peran IAM roles/monitoring.metricsWriter di project. Untuk memberikan peran ini, lakukan salah satu hal berikut:

  • Jika Policy Controller berjalan di dalam lingkungan Google Cloud yang memiliki akun layanan default, berikan peran roles/monitoring.metricsWriter di project ke akun layanan tersebut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role=roles/monitoring.metricsWriter
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • PROJECT_NUMBER: nomor project Google Cloud numerik Anda.
  • Jika Workload Identity Federation for GKE atau Workload Identity Federation fleet diaktifkan, berikan peran roles/monitoring.metricsWriter di project kepada Kubernetes ServiceAccount yang digunakan Policy Controller:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
        --role=roles/monitoring.metricWriter
    

    Ganti PROJECT_ID dengan ID project Google Cloud cluster.

Anda dapat melihat metrik ini dengan Metrics Explorer atau dengan menggunakan Cloud Monitoring API.

Mengekspor metrik ke Prometheus

Pengontrol Kebijakan mengekspor metrik untuk Prometheus di port 8888 Pod gatekeeper-controller-manager-* di namespace gatekeeper-system.

Jika Policy Controller berjalan di cluster dengan Google Cloud Managed Service for Prometheus yang dikonfigurasi, metrik ini akan otomatis dikumpulkan dan disimpan di Cloud Monitoring. Hal ini juga berfungsi untuk cluster yang mengaktifkan Google Cloud Managed Service for Prometheus setelah Pengontrol Kebijakan diinstal. Anda mungkin juga perlu memberikan izin tambahan ke akun layanan Compute Engine default yang digunakan Google Cloud Managed Service for Prometheus, bergantung pada kebijakan Anda. Untuk mengetahui detail tentang pemberian izin ke Google Cloud Managed Service for Prometheus, lihat Mengaktifkan Pengumpulan Terkelola: GKE. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi Google Cloud Managed Service for Prometheus, lihat Mulai menggunakan pengumpulan terkelola.

Untuk mengetahui informasi selengkapnya tentang harga Cloud Monitoring, lihat Harga untuk Google Cloud Managed Service for Prometheus.

Untuk contoh cara melihat metrik dengan solusi Google Cloud Managed Service for Prometheus, lihat Membuat kueri menggunakan Cloud Monitoring.

Lihat metrik

Metrik Policy Controller diekspor ke project Cloud Monitoring Anda dalam format Prometheus. Dengan demikian, Anda dapat membuat kueri metrik menggunakan Cloud Monitoring API dan dasbor di konsol Google Cloud . Anda dapat mengedit dasbor ini untuk memenuhi kebutuhan bisnis dan operasional Anda.

Untuk membuat kueri Cloud Monitoring API, gunakan Prometheus Query Language (PromQL) (bahasa kueri de facto untuk metrik Kubernetes) atau Monitoring Query Language (MQL) (bahasa kueri metrik eksklusif Google).

Anda dapat menggunakan template untuk menyiapkan dasbor dengan menelusuri "Policy Controller" di halaman Dasbor Cloud Monitoring. Untuk mengetahui informasi selengkapnya tentang cara membuat dan mengedit template dasbor, lihat dokumentasi Cloud Monitoring.

Membuat pemberitahuan

Untuk menerima notifikasi saat metrik Anda memenuhi batas tertentu, buat kebijakan pemberitahuan di Cloud Monitoring.

Integrasi pihak ketiga

Dengan menggunakan Cloud Monitoring API, alat observabilitas pihak ketiga dapat menyerap metrik Policy Controller.

Misalnya, jika Anda menggunakan dasbor Grafana, tambahkan Cloud Monitoring API sebagai sumber data di Grafana. Untuk mempelajari lebih lanjut, lihat Google Cloud Monitoring di dokumentasi Grafana.

Metrik yang tersedia

Jika Pengontrol Kebijakan diaktifkan di cluster Anda dan dikonfigurasi untuk diekspor ke Cloud Monitoring, Anda dapat membuat kueri untuk metrik berikut (semua diawali dengan OpenCensus/):

Nama Jenis Label Deskripsi
OpenCensus/audit_duration_seconds Kumulatif Distribusi durasi siklus audit
OpenCensus/audit_last_run_time Meteran Stempel waktu epoch sejak runtime audit terakhir, yang diberikan sebagai detik dalam floating-point
OpenCensus/constraint_template_ingestion_count Kumulatif status Jumlah total tindakan penyerapan template batasan
OpenCensus/constraint_template_ingestion_duration_seconds Kumulatif status Distribusi durasi penyerapan Template Batasan
OpenCensus/constraint_templates Meteran status Jumlah template batasan saat ini
OpenCensus/validation_request_count Penghitung admission_status Jumlah permintaan penerimaan dari server API
OpenCensus/validation_request_duration_seconds Kumulatif admission_status Distribusi durasi permintaan penerimaan
OpenCensus/violations Meteran enforcement_action Jumlah pelanggaran audit yang terdeteksi dalam siklus audit terakhir
OpenCensus/watch_manager_intended_watch_gvk Meteran Jumlah GroupVersionKinds unik yang harus dipantau oleh Policy Controller. Metrik ini adalah kombinasi dari resource dan batasan yang disinkronkan.
OpenCensus/watch_manager_watched_gvk Meteran Jumlah GroupVersionKinds unik yang sebenarnya dipantau oleh Policy Controller. Metrik ini dimaksudkan agar konvergen menjadi sama dengan OpenCensus/watch_manager_intended_watch_gvk.

Jika Policy Controller dikonfigurasi untuk diekspor ke Prometheus, Anda dapat membuat kueri metrik berikut (semuanya diawali dengan Prometheus/):

Nama Jenis Label Deskripsi
Prometheus/gatekeeper_audit_duration_seconds/histogram Kumulatif Distribusi durasi siklus audit
Prometheus/gatekeeper_audit_last_run_end_time/gauge Meteran Stempel waktu epoch akhir proses audit terakhir, yang diberikan sebagai detik dalam floating-point
Prometheus/gatekeeper_audit_last_run_time/gauge Meteran Stempel waktu epoch awal proses audit terakhir, yang diberikan dalam detik sebagai angka floating point
Prometheus/gatekeeper_constraint_template_ingestion_count/counter Kumulatif status Jumlah total tindakan penyerapan template batasan
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram Kumulatif status Distribusi durasi penyerapan Template Batasan
Prometheus/gatekeeper_constraint_templates/gauge Meteran status Jumlah template batasan saat ini
Prometheus/gatekeeper_validation_request_count/counter Kumulatif admission_status, admission_dryrun Jumlah permintaan penerimaan dari server API
Prometheus/gatekeeper_validation_request_duration_seconds/histogram Kumulatif admission_status Distribusi durasi permintaan penerimaan
Prometheus/gatekeeper_violations/gauge Meteran enforcement_action Jumlah pelanggaran audit yang terdeteksi dalam siklus audit terakhir
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge Meteran Jumlah GroupVersionKinds unik yang harus dipantau oleh Policy Controller. Metrik ini adalah kombinasi dari resource dan batasan yang disinkronkan.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge Meteran Jumlah GroupVersionKinds unik yang sebenarnya dipantau oleh Policy Controller. Metrik ini dimaksudkan agar konvergen menjadi sama dengan Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

Langkah berikutnya