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 mengetahui pembahasan tentang kebijakan pemberitahuan berbasis SLO, lihat 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 hal tertentu: filter dalam spesifikasi MetricThreshold dari kondisi menggunakan pemilih deret waktu, bukan sepasang jenis metrik dan resource yang dipantau.

Kondisi untuk kebijakan pemberitahuan berbasis SLO

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

Kondisi nilai minimum metrik dapat berisi dua pasangan 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 menyetel 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 Mencantumkan SLO.

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

Misalnya, filter berikut mendapatkan laju pembakaran SLO target dengan periode lihat kembali 1 jam:

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

Bagian kebijakan pemberitahuan lainnya

Untuk menyelesaikan kebijakan pemberitahuan, tentukan nilai untuk kolom yang tersisa:

  • displayName: Deskripsi kebijakan pemberitahuan.
  • combiner: Menjelaskan logika untuk menggabungkan kondisi. Kebijakan ini hanya memiliki satu kondisi, sehingga AND atau OR dapat berfungsi.
  • notificationChannels: Array saluran notifikasi yang ada untuk 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 pembakaran. Untuk mengetahui informasi tentang cara mencantumkan, mengubah, dan menghapus kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan menurut API.

Protokol

Untuk membuat kebijakan pemberitahuan menggunakan curl, kirim pesan POST ke endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies, dan berikan kebijakan pemberitahuan dalam isi permintaan. JSON di isi permintaan menjelaskan kebijakan pemberitahuan yang menggunakan kondisi nilai minimum berdasarkan pemilih deret waktu select_slo_burn_rate dengan periode lihat kembali 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. Kirim 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