Halaman ini menjelaskan cara memigrasikan aturan pemberitahuan Prometheus ke kebijakan pemberitahuan Cloud Monitoring dengan kondisi berbasis PromQL. Proses migrasi 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 dalam 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
Dengan gcloud CLI, Anda dapat memigrasikan aturan pemberitahuan dan penerima yang sudah ada untuk membuat saluran notifikasi dan kebijakan pemberitahuan 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 memberikan beberapa file konfigurasi Prometheus secara bersamaan untuk membuat beberapa kebijakan pemberitahuan dengan kondisi berbasis PromQL.
Jika Anda menyediakan file Alertmanager Prometheus dengan minimal satu penerima, gcloud CLI akan mengonversi setiap penerima menjadi 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 notifikasi, lalu mengaitkan setiap saluran notifikasi 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 Alertmanager Prometheus 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 merupakan implementasi dari |
{{humanize $value}} |
Variabel ini merupakan implementasi dari |
{{$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
. Dengan perintah ini, Anda juga dapat memigrasikan penerima Prometheus ke saluran notifikasi Cloud Monitoring.
- Untuk memigrasikan aturan pemberitahuan, Anda harus memiliki file file aturan YAML atau JSON Prometheus yang berisi aturan pemberitahuan.
Untuk memigrasikan penerima, Anda harus file Alertmanager YAML atau JSON Prometheus 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 Alertmanager Prometheus
Untuk membuat saluran notifikasi dari file konfigurasi Alertmanager Prometheus, 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 membuat saluran notifikasi dari file konfigurasi Alertmanager Prometheus 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 akan 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 email, PagerDuty, dan penerima 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
Kemudian, gcloud CLI membuat kebijakan pemberitahuan seperti dalam 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 Google Cloud Managed Service for Prometheus
Google Cloud mengonfigurasi evaluasi aturan terkelola untuk Google Cloud 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 langkah berikut:
Salin bagian
groups
resource kustom ke 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 Aturan, CustomRules, atau GlobalRules, sebaiknya buat dan migrasikan file aturan terpisah untuk setiap resource. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Prometheus.
Mengelola filter dan ekspresi agregasi
Aturan 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 di file aturan Prometheus sebelum memigrasikan file.
Misalnya, evaluator aturan terkelola untuk Google Cloud Managed Service for Prometheus mengeksekusi 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 menjalankan kueri 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 gabungkan berdasarkan label dalam kueri Anda untuk memastikan Cloud Monitoring menjalankan kueri sebagaimana mestinya. Misalnya, jika membuat file aturan dari resource kustom Aturan, 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 Aturan dan ClusterRules:
Jenis resource aturan | Filter label |
---|---|
Aturan |
|
ClusterRule |
|
Untuk mengetahui informasi selengkapnya tentang perilaku pemfilteran dalam ekspresi Prometheus, lihat Pemilih vektor instan.