Halaman ini menjelaskan cara memigrasikan aturan pemberitahuan Prometheus ke kebijakan pemberitahuan Cloud Monitoring dengan kondisi berbasis PromQL. Proses migrasi ini berguna jika Anda menggunakan PromQL di lingkungan di luar Google Cloud. Dengan memigrasikan aturan pemberitahuan Prometheus ke Cloud Monitoring, Anda dapat mengelola semua kebijakan pemberitahuan di satu lingkungan.
Untuk mengetahui informasi umum tentang kebijakan pemberitahuan dengan kondisi berbasis PromQL, lihat Kebijakan pemberitahuan dengan PromQL.
Anda juga dapat mengimpor dasbor Grafana. Untuk mengetahui informasi selengkapnya, lihat Mengimpor dasbor Grafana ke Cloud Monitoring.
Cara kerja migrasi
Di gcloud CLI, Anda dapat memigrasikan aturan pemberitahuan dan penerima yang ada untuk membuat kebijakan pemberitahuan dan saluran notifikasi Cloud Monitoring. gcloud CLI dapat melakukan jenis migrasi berikut:
Jika Anda memberikan file konfigurasi Prometheus dengan aturan pemberitahuan, gcloud CLI akan membuat kebijakan pemberitahuan dengan kondisi berbasis PromQL.
Anda dapat menyediakan beberapa file konfigurasi Prometheus secara bersamaan untuk membuat beberapa kebijakan pemberitahuan dengan kondisi berbasis PromQL.
Jika Anda menyediakan file Alertmanager Prometheus dengan setidaknya satu penerima, gcloud CLI akan mengonversi setiap penerima ke saluran notifikasi yang setara di Monitoring.
Jika Anda memberikan file Prometheus Alertmanager dan file konfigurasi Prometheus secara bersamaan, gcloud CLI akan membuat kebijakan pemberitahuan dan saluran pemberitahuan, lalu mengaitkan setiap saluran pemberitahuan baru dengan kebijakan pemberitahuan baru.
Jika Anda memberikan beberapa file konfigurasi dengan aturan pemberitahuan, gcloud CLI akan menetapkan setiap saluran notifikasi dari file Alertmanager ke setiap kebijakan pemberitahuan baru.
Jika aturan pemberitahuan Prometheus Anda mereferensikan metrik kustom, gcloud CLI memerlukan deskripsi metrik yang setara untuk membuat kebijakan pemberitahuan.
File konfigurasi Prometheus dan file Prometheus Alertmanager harus diformat sebagai file aturan Prometheus yang valid dalam YAML atau JSON.
Pemetaan Kolom
gcloud CLI memetakan kolom antara aturan pemberitahuan Prometheus dan kebijakan pemberitahuan Cloud Monitoring sebagai berikut:
Aturan pemberitahuan Prometheus | Kebijakan pemberitahuan Cloud Monitoring |
---|---|
alert |
conditionPrometheusQueryLanguage.alertRule |
expr |
conditionPrometheusQueryLanguage.query |
for |
conditionPrometheusQueryLanguage.duration |
labels |
conditionPrometheusQueryLanguage.labels |
annotations: "summary" |
documentation.subject |
annotations: "description" |
documentation.content |
Variabel dokumentasi Google Cloud dalam aturan pemberitahuan Prometheus yang dimigrasikan
Prometheus menggunakan template kolom pemberitahuan untuk mengonfigurasi variabel dalam anotasi dan label aturan pemberitahuan. Saat Anda memigrasikan aturan pemberitahuan Prometheus yang memiliki template kolom pemberitahuan, Cloud Monitoring akan mengonversi template tersebut menjadi variabel dokumentasi Cloud Monitoring sebagai berikut:
Template kolom pemberitahuan Prometheus | Variabel dokumentasi Cloud Monitoring |
---|---|
{{$value}} |
Variabel ini adalah implementasi |
{{humanize $value}} |
Variabel ini adalah implementasi |
{{$labels}} |
${metric_or_resource.labels} |
{{humanize $labels}} |
${metric_or_resource.labels} |
{{$labels.key}} |
Muncul sebagai
|
{{humanize $labels.<key>}} |
Muncul sebagai
|
Memigrasikan aturan pemberitahuan dan penerima dari Prometheus
Untuk memigrasikan aturan pemberitahuan Prometheus ke kebijakan pemberitahuan Cloud Monitoring dengan kondisi berbasis PromQL, gunakan perintah gcloud alpha monitoring policies
migrate
. Perintah ini juga memungkinkan Anda
memigrasikan penerima Prometheus ke saluran notifikasi Cloud Monitoring.
- Untuk memigrasikan aturan pemberitahuan, Anda harus memiliki file file aturan Prometheus YAML atau JSON yang berisi aturan pemberitahuan.
Untuk memigrasikan penerima, Anda harus memiliki file Alertmanager Prometheus YAML atau JSON yang berisi penerima.
Google Cloud tidak mendukung migrasi aturan perekaman Prometheus. Untuk menggunakan aturan perekaman, sebaiknya gunakan evaluator aturan yang di-deploy sendiri.
Membuat kebijakan pemberitahuan dari file konfigurasi Prometheus
Untuk membuat kebijakan pemberitahuan dari file konfigurasi Prometheus, jalankan perintah berikut. Anda dapat membuat beberapa kebijakan pemberitahuan dengan memberikan beberapa jalur file:
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2
Membuat saluran notifikasi dari file konfigurasi Prometheus Alertmanager
Untuk membuat saluran notifikasi dari file konfigurasi Prometheus Alertmanager, jalankan perintah berikut:
gcloud alpha monitoring policies migrate \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Membuat kebijakan pemberitahuan dan saluran notifikasi secara bersamaan
Untuk membuat kebijakan pemberitahuan dari file konfigurasi Prometheus dan untuk membuat saluran notifikasi dari file konfigurasi Prometheus Alertmanager secara bersamaan, jalankan perintah berikut:
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2 \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Contoh
Anda memiliki file konfigurasi Prometheus dengan aturan pemberitahuan yang mengirimkan pemberitahuan saat penggunaan CPU tetap lebih besar dari 75% selama satu menit. Aturan pemberitahuan dikonfigurasi sebagai berikut:
groups: - name: Utilization_Alerts interval: 30s rules: - alert: CPU_Utilization_Over_75 expr: compute_googleapis_com:instance_cpu_utilization > 75 for: 60s labels: severity: page annotations: subject: "Subject: ${metric.label.value}" description: "CPU utilization is over 75%"
Anda juga memiliki file Prometheus AlertManager yang berisi penerima email, PagerDuty, dan webhook.
receivers: - name: 'team-emails' email_configs: - to: EMAIL_ADDRESS - name: 'team-pager' pagerduty_configs: - service_key: SERVICE_KEY - name: 'team-webhook' webhook_configs: - url: WEBHOOK_ADDRESS
Untuk membuat kebijakan pemberitahuan dan saluran notifikasi, jalankan perintah berikut:
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_CONFIG_FILE \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_ALERTMANAGER_FILE
gcloud CLI kemudian akan membuat kebijakan pemberitahuan seperti contoh berikut:
{ "name": "projects/PROJECT_ID/alertPolicies/POLICY_ID", "displayName": "Utilization_Alerts/CPU_Utilization_Over_75", "documentation": { "content": "CPU utilization is over 75%", "mimeType": "text/markdown", "subject": "Subject: ${metric.label.value}" }, "userLabels": {}, "conditions": [ { "name": "projects/PROJECT_ID/alertPolicies/POLICY_ID/conditions/CONDITION_ID", "displayName": "CPU_Utilization_Over_75" "conditionPrometheusQueryLanguage": { "alertRule": "CPU_Utilization_Over_75", "duration": "60s", "evaluationInterval": "30s", "labels": { "severity": "page" }, "query": "compute_googleapis_com:instance_cpu_utilization > 75", "ruleGroup": "Utilization_Alerts" } } ], "alertStrategy": {}, "combiner": "OR", "enabled": true, "notificationChannels": [ "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_1", "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_2", "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_3" ] }
Memigrasikan aturan pemberitahuan dari Managed Service for Prometheus
Google Cloud mengonfigurasi evaluasi aturan terkelola untuk Managed Service for Prometheus menggunakan resource kustom Rules, ClusterRules, dan GlobalRules.
Untuk memigrasikan resource ini ke kebijakan pemberitahuan Google Cloud dengan kondisi berbasis PromQL, lakukan hal berikut:
Salin bagian
groups
dari resource kustom ke dalam file aturan Prometheus baru.Migrasikan file aturan dengan menggunakan gcloud CLI.
Misalnya, Anda memiliki resource kustom Aturan berikut:
apiVersion: monitoring.googleapis.com/v1 kind: Rules metadata: namespace: NAMESPACE_NAME name: example-rules spec: groups: - name: example interval: 30s rules: - alert: FewerThanTenInstancesUp expr: sum(up) < 10
File aturan Prometheus yang dibuat dengan menyalin groups
dari resource kustom Aturan sebelumnya akan terlihat seperti berikut:
groups: - name: example interval: 30s rules: - alert: FewerThanTenInstancesUp expr: sum(up) < 10
Memigrasikan beberapa resource kustom Aturan
Jika Anda ingin memigrasikan beberapa Rules, CustomRules, atau GlobalRules, sebaiknya buat dan migrasikan file aturan terpisah untuk setiap resource. Untuk informasi selengkapnya, lihat dokumentasi Prometheus.
Mengelola ekspresi filter dan agregasi
Rules dan ClusterRules secara otomatis memfilter ekspresi pemberitahuan Prometheus berdasarkan label tertentu. Untuk mempertahankan perilaku ini dalam kueri kebijakan pemberitahuan yang dimigrasikan, Anda harus menyertakan label ini secara eksplisit dalam filter atau ekspresi agregasi dalam file aturan Prometheus sebelum memigrasikan file.
Misalnya,
evaluator aturan terkelola untuk Managed Service for Prometheus
menjalankan ekspresi sum(up) < 10
sebagai berikut:
sum(up{project_id="test-project", cluster="test-cluster", namespace="NAMESPACE_NAME"}) < 10
Namun, jika kebijakan pemberitahuan memiliki kueri PromQL sum(up) < 10
, Cloud Monitoring akan mengeksekusi kueri tersebut hanya sebagai sum(up) < 10
. Kueri ini diterapkan ke setiap project, cluster, dan namespace Google Cloud dalam cakupan metrik Anda. Untuk menghindari perilaku ini, sebaiknya
agregasi menurut label dalam kueri Anda untuk memastikan Cloud Monitoring mengeksekusi
kueri Anda sebagaimana mestinya. Misalnya, saat membuat file aturan dari resource kustom Rules, Anda dapat mengubah sum(up) < 10
menjadi ekspresi berikut:
sum (up) by (project_id, cluster, namespace) < 10
Ekspresi sebelumnya menghasilkan deret waktu terpisah untuk setiap project, cluster, dan namespace Google Cloud, lalu membandingkan setiap deret waktu dengan nilai minimum pemberitahuan <10
.
Tabel berikut menunjukkan urutan evaluasi filter ekspresi pemberitahuan untuk Rules dan ClusterRules:
Jenis resource aturan | Filter label |
---|---|
Aturan |
|
ClusterRule |
|
Untuk informasi selengkapnya tentang perilaku pemfilteran dalam ekspresi Prometheus, lihat Pemilih vektor instan.