All Products
Search
Document Center

Alibaba Cloud Service Mesh:Impor aturan yang dihasilkan ke Prometheus untuk SLO

Last Updated:Aug 21, 2026

Saat Anda menetapkan service level objective (SLO) tingkat aplikasi di Alibaba Cloud Service Mesh (ASM), sekumpulan aturan Prometheus akan dihasilkan secara otomatis. Topik ini menjelaskan cara mengimpor aturan tersebut ke instans Prometheus Anda agar SLO dapat berlaku.

Prasyarat

Langkah 1: Impor aturan ke Prometheus

Topik ini mengasumsikan Anda telah men-deploy Prometheus menggunakan Prometheus Operator. Dalam mode ini, konfigurasi Prometheus dikelola melalui resource kustom. Untuk mengonfigurasi recording rule dan alerting rule, Anda dapat membuat objek PrometheusRule dengan label app: ack-prometheus-operator and release: ack-prometheus-operator.

Catatan
  • Kebutuhan label tersebut bergantung pada pengaturan ruleSelector dalam resource kustom Prometheus Anda. Jika ruleSelector kosong, Anda tidak perlu menambahkan label tersebut. Sesuaikan konfigurasi agar sesuai dengan lingkungan Anda.

  • Jika Anda menggunakan metode berbeda untuk men-deploy Prometheus, Anda harus menggunakan metode yang sesuai untuk menerapkan aturan yang dihasilkan. Untuk informasi selengkapnya, lihat dokumentasi resmi Prometheus.

  1. Dapatkan ruleSelector dari Konsol ACK.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Custom Resources.

    3. Di tab CRDs, klik PrometheusRule.

    4. Di tab Resource Objects, pilih monitoring dari daftar drop-down Namespace. Pada baris untuk ack-prometheus-operator-prometheus, klik Edit YAML di kolom Actions.

    5. Dapatkan bidang ruleSelector.

      Contoh berikut menunjukkan konfigurasi ruleSelector yang umum. Agar Prometheus Operator memilih resource PrometheusRule Anda, resource tersebut harus memiliki label yang ditentukan dalam matchLabels.

      ruleSelector:
        matchLabels:
          app: ack-prometheus-operator
          release: ack-prometheus-operator
  2. Deploy resource PrometheusRule.

    1. Buat file bernama prometheusrule.yaml dengan konten berikut.

      Dalam file YAML, bidang labels harus berisi label yang Anda peroleh pada langkah sebelumnya. Bidang spec berisi aturan Prometheus yang dihasilkan.

      apiVersion: monitoring.coreos.com/v1
      kind: PrometheusRule
      metadata:
        labels:
          app: ack-prometheus-operator
          release: ack-prometheus-operator
        name: asm-rules
        namespace: monitoring
      spec:
        # Ganti ini dengan konten file aturan yang dihasilkan Anda.
    2. Jalankan perintah berikut di kluster ACK Anda untuk menerapkan resource PrometheusRule.

      kubectl apply -f prometheusrule.yaml
  3. Verifikasi bahwa aturan telah diterapkan.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Configurations > ConfigMaps.

    3. Di halaman ConfigMaps, pilih monitoring dari daftar drop-down Namespace. Pada baris untuk konfigurasi Prometheus, klik Edit YAML di kolom Actions.

      Kontroler PrometheusRule secara otomatis mengonversi resource menjadi aturan dan menambahkannya ke ConfigMap agar dapat dibaca oleh Prometheus. Contoh berikut menunjukkan konten ConfigMap, di mana monitoring-asm-rules-fcd9bea9-22b3-462b-8786-424f74f098ec.yaml adalah kunci file aturan ASM:

      up{job= alertmanager main,namespace= monitoring }
                  )
                )
                >= 0.5
              for: 5m
              labels:
                severity: critical
        monitoring-asm-rules-fcd9bea9-22b3-462b-8786-424f74f098ec.yaml: |
          groups:
          - name: sloth-slo-sli-recordings-httpbin-asm-slo
            rules:

Langkah 2: Verifikasi pemantauan SLO

Periksa metrik dan peringatan di Prometheus

  1. Sambungkan ke kluster ACK Anda menggunakan kubectl dan jalankan perintah berikut untuk meneruskan layanan Prometheus ke port lokal.

    kubectl --namespace monitoring port-forward svc/ack-prometheus-operator-prometheus 9090
  2. Klik https://localhost:9090 untuk mengakses konsol Prometheus.

  3. Di UI Prometheus, masukkan asm_slo_info di browser ekspresi lalu klik Execute untuk melihat konfigurasi SLO Anda.

    Kueri mengembalikan hasil asm_slo_info{asm_slo="asm-slo",slo_id="httpbin-asm-slo",slo_mode="cli-gen-prom",slo_objective="99.9",slo_service="httpbin",slo_spec="prometheus/v1",slo_version="dev"}, yang menunjukkan bahwa recording rule Prometheus Anda telah dikonfigurasi dengan benar.

  4. Di bagian atas halaman, klik Alerts untuk melihat aturan peringatan.

    Kehadiran dua aturan berikut menunjukkan bahwa aturan peringatan Prometheus Anda telah dikonfigurasi dengan benar. Dua aturan peringatan bernama asm-alert ditampilkan, keduanya menunjukkan 0 active (tidak ada peringatan aktif).

Skenario 1: Simulasi Trafik Normal

  1. Jalankan skrip berikut untuk mensimulasikan traffic dengan tingkat keberhasilan 99,5%.

    Ganti {ingress-gateway-ip} dengan alamat IP aktual gerbang masuk Anda. Untuk mendapatkan alamat IP gerbang masuk, lihat Lihat informasi gerbang masuk.

    #!/bin/bash
    for i in `seq 200`
    do
    if (( $i == 100 ))
    then
        curl -I http://{ingress-gateway-ip}/status/500;
    else
        curl -I http://{ingress-gateway-ip}/;
    fi
    echo "OK"
    sleep 0.01;
    done;
  2. Kembali ke UI Prometheus, masukkan slo:period_error_budget_remaining:ratio di browser ekspresi, lalu klik Execute. Amati perubahan sisa anggaran kesalahan Anda.

    Setelah menjalankan kueri, graf menunjukkan rasio sisa anggaran kesalahan turun tajam dari sekitar 1,0 menjadi sekitar 0,93, yang menunjukkan bahwa anggaran kesalahan sedang dikonsumsi dengan cepat.

    Tabel berikut menjelaskan metrik SLO utama. Untuk informasi selengkapnya, lihat Ikhtisar service level objective (SLO).

    Metric

    Description

    slo:period_error_budget_remaining:ratio

    Sisa anggaran kesalahan untuk periode SLO 30 hari.

    slo:sli_error:ratio_rate30d

    Tingkat kesalahan rata-rata selama periode SLO 30 hari.

    slo:period_burn_rate:ratio

    Laju pembakaran selama periode SLO 30 hari.

    slo:current_burn_rate:ratio

    Laju pembakaran saat ini.

Skenario 2: Simulasikan traffic kesalahan

Secara manual picu kegagalan untuk menguji aturan peringatan.

  1. Jalankan skrip berikut untuk mensimulasikan traffic dengan tingkat keberhasilan 50%, yang setara dengan laju pembakaran 50.

    Ganti {ingress-gateway-ip} dengan alamat IP aktual gerbang masuk Anda.

    #!/bin/bash
    for i in `seq 200`
    do
    curl -I http://{ingress-gateway-ip}/
    curl -I http://{ingress-gateway-ip}/status/500;
    echo "OK"
    sleep 0.01;
    done;
  2. Kembali ke halaman Alerts di konsol Prometheus untuk melihat peringatan yang dipicu.

    Di halaman Alerts, di bawah path file aturan monitoring-asm-rules.yaml, dalam grup aturan sloth-slo-alerts-httpbin-asm-slo2, dua aturan peringatan asm-alert berada dalam status aktif (1 active):

    • Aturan pertama: sloth_severity=page, sloth_window=30m, label mencakup alertlabel="bbb", pagelabels="ddd", sloth_id="httpbin-asm-slo2".

    • Aturan kedua: sloth_severity=ticket, sloth_window=2h, label mencakup ticketlabel="eee".

Lihat peringatan di konsol Alertmanager

Dalam kerangka kerja Prometheus, komponen Alertmanager mengumpulkan peringatan yang dihasilkan oleh server Prometheus dan meneruskannya ke penerima berdasarkan konfigurasi Anda.

  1. Jalankan perintah berikut untuk meneruskan layanan ack-prometheus-operator-alertmanager ke port lokal.

    kubectl --namespace monitoring port-forward svc/ack-prometheus-operator-alertmanager 9093
  2. Klik https://localhost:9093 untuk mengakses konsol Alertmanager.

  3. Di halaman Alertmanager, klik ikon 展开 expand untuk melihat detail peringatan.

    Daftar peringatan Alertmanager menunjukkan dua peringatan kustom bertipe asm-alert: satu dengan slo_severity=page (slo_window=30m) dan lainnya dengan slo_severity=ticket (slo_window=2h), yang menunjukkan bahwa aturan peringatan SLO ASM telah berhasil dipicu.