Membuat aturan pemberitahuan dari project Anda

Buat grup yang berisi aturan pemberitahuan untuk metrik atau log project Anda di konsol GDC. Aturan metrik mengirimkan pemberitahuan berdasarkan data metrik, dan aturan log mengirimkan pemberitahuan berdasarkan data logging. Anda harus memasukkan ekspresi bahasa kueri yang menentukan apakah pemberitahuan harus berpindah ke status tertunda. Selain itu, Anda dapat menyertakan nilai opsional seperti label dan anotasi.

Label memungkinkan Anda membedakan karakteristik pemberitahuan sebagai peta pasangan nilai kunci. Gunakan label untuk menambahkan atau mengganti informasi, seperti tingkat keparahan (error, kritis, peringatan, atau informasi), kode pemberitahuan, dan nama singkat untuk mengidentifikasi resource.

Di sisi lain, gunakan anotasi untuk menambahkan metadata yang tidak mengidentifikasi ke pemberitahuan. Misalnya, Anda dapat menyertakan nilai untuk pesan dan ekspresi yang ditampilkan di kolom antarmuka pengguna (UI) atau URL runbook untuk membantu tindakan penyelesaian.

Atau, Anda dapat membuat aturan pemberitahuan menggunakan Observability API untuk berinteraksi langsung dengan resource kustom dan memperbarui perubahan di namespace project Anda.

Sebelum memulai

Sebelum melanjutkan, pastikan Anda memiliki izin yang diperlukan berikut:

Membuat aturan pemberitahuan berdasarkan log

Untuk mendapatkan izin yang Anda perlukan guna membuat atau melihat aturan pemberitahuan berdasarkan log, minta Admin IAM Project Anda untuk memberi Anda salah satu peran berikut di namespace project Anda:

  • Pembuat Aturan Logging: membuat LoggingRule resource kustom. Minta peran Pembuat Aturan Logging (loggingrule-creator).
  • Editor Aturan Logging: mengedit atau mengubah LoggingRule resource kustom. Minta peran Logging Rule Editor (loggingrule-editor).
  • Logging Rule Viewer: melihat resource kustom LoggingRule. Minta peran Logging Rule Viewer (loggingrule-viewer).

Membuat aturan pemberitahuan berdasarkan metrik

Untuk mendapatkan izin yang Anda perlukan guna membuat atau melihat aturan pemberitahuan berdasarkan metrik, minta Admin IAM Project Anda untuk memberi Anda salah satu peran berikut di namespace project Anda:

  • Editor Aturan Pemantauan: mengedit atau mengubah MonitoringRule resource kustom. Minta peran Editor Aturan Pemantauan (monitoringrule-editor).
  • Monitoring Rule Viewer: melihat MonitoringRule resource kustom. Minta peran Monitoring Rule Viewer (monitoringrule-viewer).

Untuk mengetahui informasi selengkapnya tentang penetapan peran, lihat Deskripsi peran bawaan.

Membuat aturan

Anda dapat membuat aturan pemberitahuan menggunakan konsol GDC, yang merupakan metode pilihan, atau dengan men-deploy resource kustom menggunakan Observability API di namespace project Anda.

Konsol

Ikuti langkah-langkah berikut untuk membuat aturan pemberitahuan dari konsol GDC:

  1. Di konsol GDC, pilih project.
  2. Di menu navigasi, klik Operations > Alerting.
  3. Klik tab Alerting Policy.
  4. Klik Buat Grup Aturan.
  5. Pilih apakah Anda ingin membuat grup untuk Metrik atau Log. Aturan metrik mengirimkan pemberitahuan berdasarkan data pemantauan sistem dan aturan logging mengirimkan pemberitahuan berdasarkan data logging sistem.
  6. Di kolom Nama grup aturan pemberitahuan, masukkan nama untuk grup.
  7. Di kolom Interval evaluasi aturan, masukkan jumlah detik untuk setiap interval.
  8. Di kolom Batas, masukkan jumlah maksimum pemberitahuan. Masukkan 0 untuk pemberitahuan tak terbatas.
  9. Di bagian Alert rules, klik Create Alert Rule.
  10. Masukkan nama untuk aturan pemberitahuan.
  11. Masukkan ekspresi untuk aturan pemberitahuan:

    • Untuk aturan logging sistem, masukkan ekspresi LogQL (Bahasa Kueri Log).
    • Untuk aturan pemantauan sistem, masukkan ekspresi PromQL (Prometheus Query Language).

    Ekspresi ini harus dievaluasi ke pernyataan benar atau salah, yang menentukan apakah pemberitahuan harus berpindah ke status tertunda atau tidak.

  12. Di kolom Durasi, masukkan jumlah detik untuk menentukan kapan pemberitahuan aktif beralih dari status tertunda ke status terbuka. Catatan: Jika Anda menyetel durasi ke nilai 0, sistem Observabilitas akan mengirimkan pemberitahuan segera setelah kondisi terpenuhi.

  13. Di kolom Tingkat Keseriusan, pilih tingkat keseriusan, seperti Error atau Peringatan.

  14. Masukkan nama pendek untuk mengidentifikasi resource terkait, seperti AIS atau DHCP.

  15. Masukkan kode pemberitahuan untuk mengidentifikasi pemberitahuan.

  16. Masukkan URL atau informasi runbook untuk membantu menyelesaikan masalah.

  17. Masukkan pesan atau deskripsi pemberitahuan.

  18. Opsional: Klik Tambahkan label untuk menambahkan label sebagai pasangan nilai kunci.

  19. Opsional: Klik Tambahkan anotasi untuk menambahkan anotasi sebagai pasangan nilai kunci.

  20. Klik Simpan untuk membuat aturan.

  21. Klik Buat untuk membuat grup aturan. Grup aturan muncul dalam daftar Grup aturan pemberitahuan.

API

Anda dapat membuat aturan pemantauan dan pencatatan log sistem di GDC menggunakan Observability API dengan men-deploy resource kustom. Resource kustom MonitoringRule atau LoggingRule terdiri dari satu atau beberapa kueri dan ekspresi untuk membentuk kondisi, frekuensi evaluasi, dan, secara opsional, durasi kondisi terpenuhi.

Ikuti langkah-langkah berikut untuk membuat aturan pemberitahuan dengan men-deploy resource kustom di namespace project Anda:

  1. Buat file YAML untuk resource kustom menggunakan template berikut untuk aturan pemberitahuan pemantauan atau logging:
  2. Di kolom namespace resource kustom, masukkan namespace project Anda.
  3. Di kolom name, masukkan nama untuk konfigurasi aturan pemberitahuan.
  4. Opsional: Jika Anda mengonfigurasi resource kustom LoggingRule untuk aturan logging, Anda dapat memilih sumber log untuk pemberitahuan di kolom source. Misalnya, masukkan nilai seperti operational atau audit.
  5. Di kolom interval, masukkan jumlah detik untuk durasi interval evaluasi aturan.
  6. Opsional: Di kolom limit, masukkan jumlah maksimum pemberitahuan. Masukkan 0 untuk pemberitahuan tak terbatas.
  7. Opsional: Jika Anda juga ingin menghitung metrik dan mengonfigurasi aturan perekaman, masukkan informasi berikut di kolom recordRules:

    • Di kolom record, masukkan nama rekaman. Nilai ini menentukan deret waktu tempat aturan perekaman akan ditulis dan harus berupa nama metrik yang valid.
    • Di kolom expr, masukkan ekspresi untuk aturan perekaman:

      • Untuk aturan logging sistem, masukkan ekspresi LogQL (Bahasa Kueri Log).
      • Untuk aturan pemantauan sistem, masukkan ekspresi PromQL (Prometheus Query Language).

      Ekspresi ini harus diselesaikan ke nilai numerik untuk direkam sebagai metrik baru.

    • Opsional: Di kolom labels, tentukan label yang ingin Anda tambahkan atau ganti sebagai pasangan nilai kunci.

  8. Di kolom alertRules, masukkan informasi berikut untuk mengonfigurasi aturan pemberitahuan:

    • Di kolom alert, masukkan nama pemberitahuan.
    • Di kolom expr, masukkan ekspresi untuk aturan pemberitahuan:

      • Untuk aturan pembuatan log sistem, masukkan ekspresi LogQL.
      • Untuk aturan pemantauan sistem, masukkan ekspresi PromQL.

      Ekspresi ini harus dievaluasi ke pernyataan benar atau salah, yang menentukan apakah pemberitahuan harus berpindah ke status tertunda atau tidak.

    • Opsional: Di kolom for, masukkan durasi dalam detik yang diperlukan agar kondisi yang ditentukan terpenuhi untuk memindahkan pemberitahuan dari status tertunda ke status terbuka. Durasi default jika Anda tidak menentukan nilai lain adalah 0 detik.

    • Di kolom labels, tentukan label yang ingin Anda tambahkan atau ganti sebagai pasangan nilai kunci. Label berikut wajib ada:

      • severity: Pilih tingkat keparahan, seperti error, critical, warning, atau info.
      • code: Masukkan kode pemberitahuan untuk mengidentifikasi pemberitahuan.
      • resource: Masukkan nama singkat untuk mengidentifikasi resource terkait, seperti AIS atau DHCP.
    • Opsional: Di kolom annotations, tambahkan anotasi sebagai pasangan nilai kunci.

  9. Simpan file YAML resource kustom.

  10. Deploy resource kustom di namespace project cluster admin untuk membuat aturan pemberitahuan.

Mengonfigurasi aturan logging dan pemantauan sistem dari resource kustom

Bagian ini berisi template YAML yang harus Anda gunakan untuk membuat aturan pemberitahuan dengan men-deploy resource kustom. Jika membuat notifikasi dari konsol GDC, Anda dapat melewati bagian ini.

Resource kustom MonitoringRule

Untuk membuat aturan pemantauan sistem, Anda harus membuat resource kustom MonitoringRule. MonitoringRule terdiri dari aturan perekaman dan aturan pemberitahuan yang menjelaskan kondisi untuk mengirimkan pemberitahuan.

File YAML berikut menunjukkan template resource kustom MonitoringRule:

# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
  # Choose namespace that matches the project namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Rule evaluation interval
  interval: 60s

  # Configure limit for number of alerts (0: no limit)
  # Optional. Default: 0 (no limit)
  limit: 0

  # Configure recording rules to generate new metrics based on pre-existing metrics.
  # Recording rules precompute expressions that are frequently needed or computationally expensive.
  # These rules save their result as a new set of time series.
  recordRules:
    # Define which timeseries to write to. The value must be a valid metric name.
  - record: MyMetricsName

    # Define PromQL expression to evaluate for this rule
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite
    # Optional. Map of key-value pairs
    labels:
      <label_key>: <label_value>

  # Configure alert rules
  alertRules:
    # Define alert name 
  - alert: <string>

    # Define PromQL expression to evaluate for this rule
    # https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
    expr: rate({service_name="bob-service"} [1m])

    # Define when an active alert moves from pending to open
    # Optional. Default: 0s
    for: 0s

    # Define labels to add or overwrite
    # Required, Map of key-value pairs
    # Required labels:
    #     severity: [error, critical, warning, info]
    #     code:
    #     resource: component/service/hardware related to the alert
    #     additional labels are optional
    labels:
      severity: error
      code: 202
      resource: AIS
      <label_key>: <label_value>

    # Define annotations to add
    # Optional. Map of key-value pairs
    # Recommended annotations:
    #     message: value of Message field in UI
    #     expression: value of Rule field in UI
    #     runbookurl: URL for link in Actions to take field in UI
    annotations:
      <label_key>: <label_value>

Ganti PROJECT_NAMESPACE dengan namespace project Anda.

Resource kustom LoggingRule

Untuk membuat aturan pencatatan sistem, Anda harus membuat resource kustom LoggingRule. LoggingRule terdiri dari aturan perekaman dan aturan pemberitahuan yang menjelaskan kondisi untuk mengirimkan pemberitahuan.

# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
  # Choose namespace that matches the project namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Choose which log source to base alerts on (Operational/Audit Logs)
  # Optional. Default: Operational
  source: operational

  # Rule evaluation interval
  interval: 60s

  # Configure limit for number of alerts (0: no limit)
  # Optional. Default: 0 (no limit)
  limit: 0

  # Configure recording rules to generate new metrics based on pre-existing logs.
  # Recording rules generate metrics based on logs.
  # Use recording rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
  recordRules:
    # Define which timeseries to write to. The value must be a valid metric name.
  - record: MyMetricsName

    # Define LogQL expression to evaluate for this rule
    # https://grafana.com/docs/loki/latest/rules/
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite
    # Optional. Map of key-value pairs
    labels:
      <label_key>: <label_value>

  # Configure alert rules
  alertRules:
    # Define alert name
  - alert: <string>

    # Define LogQL expression to evaluate for this rule
    expr: rate({service_name="bob-service"} [1m])

    # Define when an active alert moves from pending to open
    # Optional. Default: 0s
    for: 0s

    # Define labels to add or overwrite
    # Required, Map of key-value pairs
    # Required labels:
    #     severity: [error, critical, warning, info]
    #     code:
    #     resource: component/service/hardware related to alert
    #     additional labels are optional
    labels:
      severity: warning
      code: 202
      resource: AIS
      <label_name>: <label_value>

    # Define annotations to add
    # Optional. Map of key-value pairs
    # Recommended annotations:
    #     message: value of Message field in UI
    #     expression: value of Rule field in UI
    #     runbookurl: URL for link in Actions to take field in UI
    annotations:
      <label_name>: <label_value>

Ganti PROJECT_NAMESPACE dengan namespace project Anda.