Evaluasi aturan dan pemberitahuan dengan koleksi terkelola

Dokumen ini menjelaskan konfigurasi untuk evaluasi aturan dan pemberitahuan dalam deployment Managed Service for Prometheus yang menggunakan koleksi terkelola.

Diagram berikut mengilustrasikan deployment yang menggunakan beberapa cluster di dua project Google Cloud dan menggunakan evaluasi aturan dan pemberitahuan, serta resource GlobalRules opsional:

Deployment untuk evaluasi aturan dan pemberitahuan yang menggunakan koleksi terkelola.

Untuk menyiapkan dan menggunakan deployment seperti yang ada dalam diagram, perhatikan hal berikut:

  • Evaluator aturan terkelola otomatis di-deploy di cluster tempat koleksi terkelola berjalan. Evaluator ini dikonfigurasi sebagai berikut:

    • Gunakan resource Rules untuk menjalankan aturan pada data dalam namespace. Resource aturan harus diterapkan di setiap namespace tempat Anda ingin menjalankan aturan.

    • Gunakan resource ClusterRules untuk menjalankan aturan pada data di seluruh cluster. Resource ClusterRules harus diterapkan satu kali per cluster.

  • Semua evaluasi aturan dijalankan terhadap datastore global, Monarch.

    • Resource aturan secara otomatis memfilter aturan ke project, lokasi, cluster, dan namespace tempat aturan diinstal.
    • Resource ClusterRules secara otomatis memfilter aturan ke project, lokasi, dan cluster tempat aturan diinstal.
    • Semua hasil aturan ditulis ke Monarch setelah evaluasi.
  • Instance Prometheus AlertManager di-deploy secara manual di setiap cluster. Evaluator aturan terkelola dikonfigurasi dengan mengedit resource OperatorConfig untuk mengirim aturan pemberitahuan yang diaktifkan ke instance AlertManager lokal. Penonaktifan, konfirmasi, dan alur kerja pengelolaan insiden biasanya ditangani di alat pihak ketiga seperti PagerDuty.

    Anda dapat memusatkan pengelolaan pemberitahuan di beberapa cluster ke dalam satu AlertManager menggunakan resource Endpoints Kubernetes.

Diagram sebelumnya juga menunjukkan resource GlobalRules opsional. Gunakan GlobalRules dengan sangat hemat, untuk tugas seperti menghitung SLO global di seluruh project atau mengevaluasi aturan di seluruh cluster dalam satu project Google Cloud. Sebaiknya gunakan Rules dan ClusterRules jika memungkinkan; resource ini memberikan keandalan yang lebih baik dan lebih cocok untuk mekanisme deployment dan model kepemilikan Kubernetes umum.

Jika Anda menggunakan resource GlobalRules, perhatikan hal berikut dari diagram sebelumnya:

  • Satu cluster yang berjalan di dalam Google Cloud ditetapkan sebagai cluster evaluasi aturan global untuk cakupan metrik. Evaluator aturan terkelola ini dikonfigurasi untuk menggunakan scoping_project_A, yang berisi Project 1 dan 2. Aturan yang dieksekusi terhadap scoping_project_A secara otomatis akan diperluas ke Project 1 dan 2.

    Akun layanan pokok harus diberi izin Monitoring Viewer untuk scoping_project_A. Untuk informasi tambahan tentang cara menetapkan kolom ini, lihat Evaluasi aturan multi-project dan global.

  • Seperti di semua cluster lainnya, evaluator aturan ini disiapkan dengan resource Rules dan ClusterRules yang mengevaluasi aturan yang dicakup untuk namespace atau cluster. Aturan ini otomatis difilter ke project lokal—Project 1, dalam hal ini. Karena scoping_project_A berisi Project 1, aturan yang dikonfigurasi Rules dan ClusterRules hanya dijalankan terhadap data dari project lokal seperti yang diharapkan.

  • Cluster ini juga memiliki resource GlobalRules yang mengeksekusi aturan terhadap scoping_project_A. GlobalRules tidak difilter secara otomatis, sehingga GlobalRules dijalankan persis seperti yang ditulis di semua project, lokasi, cluster, dan namespace di scoping_project_A.

  • Aturan pemberitahuan yang diaktifkan akan dikirim ke AlertManager yang dihosting sendiri seperti yang diharapkan.

Penggunaan GlobalRules dapat memiliki efek yang tidak terduga, bergantung pada apakah Anda mempertahankan atau menggabungkan label project_id, location, cluster, dan namespace dalam aturan:

  • Jika aturan GlobalRules Anda mempertahankan label project_id (dengan menggunakan klausa by(project_id)), hasil aturan akan ditulis kembali ke Monarch menggunakan nilai project_id asli dari deret waktu yang mendasarinya.

    Dalam skenario ini, Anda harus memastikan akun layanan yang mendasarinya memiliki izin Monitoring Metric Writer untuk setiap project yang dipantau di scoping_project_A. Jika menambahkan project baru yang dipantau ke scoping_project_A, Anda juga harus menambahkan izin baru ke akun layanan secara manual.

  • Jika aturan GlobalRules Anda tidak mempertahankan label project_id (dengan tidak menggunakan klausa by(project_id)), hasil aturan akan ditulis kembali ke Monarch menggunakan nilai project_id cluster tempat evaluator aturan global berjalan.

    Dalam skenario ini, Anda tidak perlu mengubah akun layanan yang mendasarinya lebih lanjut.

  • Jika GlobalRules Anda mempertahankan label location (dengan menggunakan klausa by(location)), hasil aturan akan ditulis kembali ke Monarch menggunakan setiap region Google Cloud asli tempat deret waktu yang mendasarinya berasal.

    Jika GlobalRules Anda tidak mempertahankan label location, data akan ditulis kembali ke lokasi cluster tempat evaluator aturan global berjalan.

Sebaiknya pertahankan label cluster dan namespace dalam hasil evaluasi aturan, kecuali jika tujuan aturannya adalah untuk menggabungkan label tersebut. Jika tidak, performa kueri mungkin menurun dan Anda mungkin mengalami batas kardinalitas. Sebaiknya jangan hapus kedua label tersebut.