Membuat kebijakan pemberitahuan

Kebijakan pemberitahuan untuk laju pengeluaran anggaran error Anda didasarkan pada pemilih deret waktu select_slo_burn_rate, yang dijelaskan dalam Mengambil data SLO. Ada pemilih deret waktu lainnya, dan Anda dapat menggunakan beberapa di antaranya sebagai dasar untuk kebijakan pemberitahuan. Untuk pembahasan tentang kebijakan pemberitahuan berbasis SLO, lihat Memberikan pemberitahuan tentang laju pengeluaran.

Anda membuat kebijakan pemberitahuan menggunakan metode alertPolicies.create. Penggunaan umum metode ini didokumentasikan dalam Mengelola kebijakan pemberitahuan.

Kebijakan pemberitahuan untuk SLO mirip dengan kebijakan pemberitahuan batas metrik lainnya, tetapi berbeda dalam satu cara tertentu: filter dalam spesifikasi MetricThreshold kondisi menggunakan pemilih deret waktu, bukan sepasang metrik dan jenis resource yang dimonitor.

Kondisi untuk kebijakan pemberitahuan berbasis SLO

Kebijakan pemberitahuan harus memiliki minimal satu ketentuan. Untuk kondisi berbasis SLO, gunakan kondisi jenis MetricThreshold.

Kondisi batas metrik dapat berisi dua pasang konfigurasi deret waktu: filter dan aggregations. Karena data SLO diambil secara berbeda dari data deret waktu lainnya, satu-satunya kolom yang digunakan dalam kondisi untuk SLO adalah kolom filter.

Kondisi untuk SLO menetapkan kolom comparison, thresholdValue, duration, dan trigger.

Contoh ini membuat kondisi yang dilanggar saat laju pembakaran melebihi 2 kali laju normal. Strukturnya terlihat seperti ini:

  "conditions": [
    {
      "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
      "conditionThreshold": {
        "filter": DATA_RETRIEVAL_FILTER_FOR_SLO,
        "comparison":"COMPARISON_GT",
        "thresholdValue": 2,
        "duration": {
          "seconds":"0",
        },
      },
    }
  ],

Untuk menetapkan kolom filter, Anda memerlukan nama resource SLO tertentu. Nilai ini berbentuk projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}. Untuk mengetahui informasi tentang cara menemukan ID SLO, lihat Listingan SLO.

Untuk membuat pemberitahuan tentang laju pengeluaran, gunakan pemilih deret waktu select_slo_burn_rate. Pemilih ini mengambil dua nilai, SLO target dan periode lihat balik. Untuk informasi selengkapnya, lihat select_slo_burn_rate.

Misalnya, filter berikut mendapatkan laju pengeluaran SLO target dengan periode lihat balik 1 jam:

"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"

Bagian lain dari kebijakan pemberitahuan

Untuk menyelesaikan kebijakan pemberitahuan, tetapkan nilai untuk kolom lainnya:

  • displayName: Deskripsi kebijakan pemberitahuan.
  • combiner: Menjelaskan logika untuk menggabungkan kondisi. Kebijakan ini hanya memiliki satu ketentuan, sehingga AND atau OR dapat berfungsi.
  • notificationChannels: Array saluran notifikasi yang ada yang akan digunakan saat kebijakan pemberitahuan dipicu. Untuk mengetahui informasi tentang cara menemukan dan membuat saluran notifikasi, lihat Saluran notifikasi.
  • documentation: Informasi yang dikirim saat kondisi dilanggar untuk membantu penerima mendiagnosis masalah. Untuk mengetahui detailnya, lihat Documentation.

Membuat kebijakan pemberitahuan

Contoh berikut menggunakan API untuk membuat kebijakan pemberitahuan laju burn-rate. Untuk informasi tentang cara mencantumkan, mengubah, dan menghapus kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan menurut API.

Protocol

Untuk membuat kebijakan pemberitahuan menggunakan curl, kirim pesan POST ke endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies, dan masukkan kebijakan pemberitahuan di isi permintaan. JSON dalam isi permintaan menjelaskan kebijakan pemberitahuan yang menggunakan kondisi nilai minimum berdasarkan pemilih deret waktu select_slo_burn_rate dengan periode lihat balik satu jam.

  1. Buat variabel untuk menyimpan isi permintaan:

    CREATE_ALERT_POST_BODY=$(cat <<EOF
    {
      "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2",
      "combiner":"AND",
      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")",
            "comparison":"COMPARISON_GT",
            "thresholdValue": 2,
            "duration": {
              "seconds":"0",
            },
          },
        }
      ],
      "notificationChannels": ["${NOTIFICATION_CHANNEL}", ],
      "documentation": {
         "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.",
         "mime_type": "text/markdown",
      },
    }
    EOF
    )
    
  2. Posting permintaan ke endpoint:

    curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies