Evaluasi aturan dan pemberitahuan dengan pengumpulan 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 dalam 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-hal berikut:

  • Evaluator aturan terkelola secara otomatis di-deploy di cluster mana pun tempat pengumpulan 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 tentang data di seluruh cluster. Resource ClusterRules harus diterapkan satu kali per cluster.

  • Semua evaluasi aturan dijalankan terhadap penyimpanan data global, Monarch.

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

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

Diagram sebelumnya juga menunjukkan resource GlobalRules opsional. Gunakan GlobalRules dengan sangat hemat, untuk tugas-tugas seperti menghitung SLO global di berbagai project atau untuk mengevaluasi aturan di berbagai cluster dalam satu project Google Cloud. Kami sangat merekomendasikan penggunaan Aturan dan ClusterRules jika memungkinkan; resource ini memberikan keandalan unggul dan lebih cocok untuk mekanisme deployment dan model tenancy Kubernetes umum.

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

  • Satu cluster tunggal 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 dijalankan terhadap scoping_project_A secara otomatis menyebar ke Project 1 dan 2.

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

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

  • Cluster ini juga memiliki resource GlobalRules yang mengeksekusi aturan terhadap scoping_project_A. GlobalRules tidak otomatis difilter, sehingga GlobalRules akan 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 menimbulkan efek yang tidak terduga, bergantung pada apakah Anda mempertahankan atau menggabungkan label project_id, location, cluster, dan namespace dalam aturan Anda:

  • 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 perlu memastikan akun layanan dasar 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 Raja menggunakan nilai project_id cluster tempat evaluator aturan global berjalan.

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

  • 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 aturan tersebut adalah untuk menggabungkan label tersebut. Jika tidak, performa kueri mungkin akan menurun dan Anda mungkin akan mengalami batas kardinalitas. Sangat tidak dianjurkan untuk menghapus kedua label tersebut.