Memecahkan masalah evaluasi aturan - Layanan Terkelola Amazon untuk Prometheus

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah evaluasi aturan

Panduan ini menyediakan prosedur step-by-step pemecahan masalah untuk masalah umum dengan evaluasi aturan di Amazon Managed Service for Prometheus (AMP). Ikuti prosedur ini untuk mendiagnosis dan menyelesaikan masalah dengan aturan peringatan dan pencatatan Anda.

Validasi status penembakan peringatan

Saat memecahkan masalah evaluasi aturan, verifikasi terlebih dahulu apakah peringatan Anda telah diaktifkan dengan menanyakan deret waktu sintetis. ALERTS Deret ALERTS waktu mencakup label berikut:

  • alertname — Nama peringatan.

  • alertstate - Baik tertunda atau menembak.

    • pending - Peringatan sedang menunggu durasi yang ditentukan dalam for klausa.

    • menembak — Peringatan telah memenuhi persyaratan untuk durasi yang ditentukan. Label tambahan ditentukan dalam aturan peringatan Anda.

catatan

Saat peringatan menyala atau tertunda, nilai sampelnya adalah 1. Saat peringatan Anda menganggur, tidak ada sampel yang diproduksi.

Selesaikan pemberitahuan peringatan yang hilang

Jika peringatan diaktifkan tetapi pemberitahuan tidak tiba, verifikasi pengaturan Alertmanager berikut:

  1. Verifikasi konfigurasi Alertmanager Anda — Periksa apakah penerima rute, dan pengaturan dikonfigurasi dengan benar. Tinjau pengaturan blok rute, termasuk waktu tunggu, interval waktu, dan label yang diperlukan, yang dapat memengaruhi penembakan peringatan. Bandingkan aturan peringatan dengan rute dan penerima yang sesuai untuk mengonfirmasi pencocokan yang tepat. Untuk rute dengantime_interval, verifikasi bahwa stempel waktu termasuk dalam interval yang ditentukan.

  2. Periksa izin penerima peringatan — Saat menggunakan topik Amazon SNS, verifikasi AMP memiliki izin yang diperlukan untuk memublikasikan notifikasi. Untuk informasi selengkapnya, lihat Memberikan izin Layanan Terkelola Amazon untuk Prometheus untuk mengirim pesan peringatan ke topik Amazon SNS Anda.

  3. Validasi kompatibilitas payload penerima — Konfirmasikan penerima peringatan Anda menerima format payload Alertmanager. Untuk persyaratan Amazon SNS, lihat. Memahami aturan validasi pesan Amazon SNS

  4. Tinjau log Alertmanager — AMP menyediakan log vended dari Alertmanager untuk membantu men-debug masalah notifikasi. Untuk informasi selengkapnya, lihat Pantau Layanan Terkelola Amazon untuk acara Prometheus dengan Log CloudWatch .

Untuk informasi selengkapnya tentang Alertmanager, lihat. Mengelola dan meneruskan peringatan di Amazon Managed Service untuk Prometheus dengan manajer peringatan

Periksa status kesehatan aturan

Aturan yang salah dapat menyebabkan kegagalan evaluasi. Gunakan metode berikut untuk mengidentifikasi mengapa aturan gagal dievaluasi:

Gunakan ListRules API

ListRulesAPI menyediakan informasi tentang kesehatan aturan. Periksa health dan lastError bidang untuk mendiagnosis masalah.

Contoh respon:

{ "status": "success", "data": { "groups": [ { "name": "my_rule_group", "file": "my_namespace", "rules": [ { "state": "firing", "name": "broken_alerting_rule", "query": "...", "duration": 0, "keepFiringFor": 0, "labels": {}, "annotations": {}, "alerts": [], "health": "err", "lastError": "vector contains metrics with the same labelset after applying alert labels", "type": "alerting", "lastEvaluation": "1970-01-01T00:00:00.00000000Z", "evaluationTime": 0.08 } ] } ] } }

Gunakan log penjual

ListRules API hanya menampilkan informasi terbaru. Untuk riwayat yang lebih detail, aktifkan log vended di ruang kerja Anda untuk mengakses:

  • Cap waktu kegagalan evaluasi

  • Pesan kesalahan terperinci

  • Data evaluasi historis

Contoh pesan log yang dijual:

{ "workspaceId": "ws-a2c55905-e0b4-4065-a310-d83ce597a391", "message": { "log": "Evaluating rule failed, name=broken_alerting_rule, group=my_rule_group, namespace=my_namespace, err=vector contains metrics with the same labelset after applying alert labels", "level": "ERROR", "name": "broken_alerting_rule", "group": "my_rule_group", "namespace": "my_namespace" }, "component": "ruler" }

Untuk lebih banyak contoh log dari Ruler atau Alertmanager, lihat dan. Pemecahan Masalah Penggaris Mengelola dan meneruskan peringatan di Amazon Managed Service untuk Prometheus dengan manajer peringatan

Gunakan offset dalam kueri untuk menangani penundaan konsumsi

Secara default, ekspresi dievaluasi tanpa offset (permintaan instan), menggunakan nilai pada waktu evaluasi. Jika konsumsi metrik tertunda, aturan perekaman mungkin tidak mewakili nilai yang sama seperti saat Anda mengevaluasi ekspresi secara manual setelah semua metrik dicerna.

Tip

Menggunakan pengubah offset dapat mengurangi masalah yang disebabkan oleh penundaan konsumsi. Untuk informasi selengkapnya, lihat Pengubah offset dalam dokumentasi Prometheus.

Jika aturan Anda dievaluasi pada 12:00, tetapi sampel terbaru untuk metrik adalah dari 11:45 karena penundaan konsumsi, aturan tidak akan menemukan sampel pada stempel waktu 12:00. Untuk mengurangi ini, tambahkan offset, seperti:. my_metric_name offset 15m

Ketika metrik berasal dari sumber yang berbeda, seperti dua server, mereka mungkin tertelan pada waktu yang berbeda. Untuk mengurangi ini, bentuk ekspresi, seperti: metric_from_server_A / metric_from_server_B

Jika aturan mengevaluasi antara waktu konsumsi server A dan server B, Anda akan mendapatkan hasil yang tidak terduga. Menggunakan offset dapat membantu menyelaraskan waktu evaluasi.

Masalah dan solusi umum

Kesenjangan dalam merekam data aturan

Jika Anda melihat celah dalam data aturan perekaman dibandingkan dengan evaluasi manual (saat Anda langsung menjalankan ekspresi promQL asli aturan perekaman melalui API kueri atau UI), ini mungkin disebabkan oleh salah satu hal berikut:

  1. Waktu evaluasi yang panjang — Kelompok aturan tidak dapat memiliki beberapa evaluasi simultan. Jika waktu evaluasi melebihi interval yang dikonfigurasi, evaluasi selanjutnya mungkin terlewatkan. Beberapa evaluasi yang terlewat berturut-turut melebihi interval yang dikonfigurasi dapat menyebabkan aturan perekaman menjadi basi. Untuk informasi lebih lanjut, lihat Kebuntuan dalam dokumentasi Prometheus. Anda dapat memantau durasi evaluasi menggunakan CloudWatch metrik RuleGroupLastEvaluationDuration untuk mengidentifikasi kelompok aturan yang terlalu lama untuk dievaluasi.

  2. Memantau evaluasi yang tidak terjawab — AMP menyediakan RuleGroupIterationsMissed CloudWatch metrik untuk dilacak saat evaluasi dilewati. ListRules API menampilkan waktu evaluasi dan waktu evaluasi terakhir untuk setiap aturan/grup, yang dapat membantu mengidentifikasi pola evaluasi yang terlewat. Untuk informasi selengkapnya, lihat ListRules.

Rekomendasi: Pisahkan aturan menjadi grup terpisah

Untuk mengurangi durasi evaluasi, pisahkan aturan menjadi kelompok aturan terpisah. Aturan dalam grup dijalankan secara berurutan, sedangkan kelompok aturan dapat mengeksekusi secara paralel. Simpan aturan terkait yang saling bergantung satu sama lain dalam kelompok yang sama. Umumnya, kelompok aturan yang lebih kecil memastikan evaluasi yang lebih konsisten dan lebih sedikit kesenjangan.

Praktik terbaik untuk evaluasi aturan

  1. Optimalkan ukuran grup aturan - Jaga agar kelompok aturan tetap kecil untuk memastikan evaluasi yang konsisten. Kelompokkan aturan terkait bersama, tetapi hindari kelompok aturan besar.

  2. Tetapkan interval evaluasi yang sesuai - Seimbangkan antara peringatan tepat waktu dan beban sistem. Tinjau pola stabilitas metrik yang dipantau untuk memahami rentang fluktuasi normalnya.

  3. Gunakan pengubah offset untuk metrik tertunda — Tambahkan offset untuk mengkompensasi penundaan konsumsi. Sesuaikan durasi offset berdasarkan pola konsumsi yang diamati.

  4. Pantau kinerja evaluasi — Lacak RuleGroupIterationsMissed metrik. Tinjau waktu evaluasi di ListRules API.

  5. Validasi ekspresi aturan - Pastikan ekspresi cocok persis antara definisi aturan dan kueri manual. Uji ekspresi dengan rentang waktu yang berbeda untuk memahami perilaku.

  6. Tinjau aturan kesehatan secara teratur — Periksa kesalahan dalam evaluasi aturan. Pantau log yang dijual untuk masalah berulang.

Dengan mengikuti langkah-langkah pemecahan masalah dan praktik terbaik ini, Anda dapat mengidentifikasi dan menyelesaikan masalah umum dengan evaluasi aturan di Amazon Managed Service for Prometheus.