All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan pembersihan metrik ASM secara berkala

Last Updated:Jun 21, 2026

Service Mesh (ASM) menghasilkan metrik pemantauan untuk seluruh lalu lintas yang masuk, keluar, dan berada di dalam service mesh guna membantu Anda memantau perilaku layanan. Metrik ini mencakup informasi seperti volume lalu lintas, laju error, dan waktu respons. Seiring waktu, akumulasi data metrik dalam jumlah besar dapat meningkatkan konsumsi sumber daya Envoy dan Prometheus. Untuk mengatasi hal ini, ASM menyediakan fitur pembersihan metrik pemantauan secara berkala yang secara otomatis menghapus metrik tidak terpakai yang di-cache di Envoy, sehingga mengurangi konsumsi memori Envoy dan menurunkan beban jaringan saat Prometheus melakukan scrape metrik. Topik ini menjelaskan cara mengonfigurasi fitur tersebut serta menyediakan contoh implementasinya.

Prasyarat

Prosedur

  1. Masuk ke ASM console. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. Di halaman Observability Settings, klik tab Global. Pada bagian Metric Settings, masukkan nilai untuk Periodic Cleaning Time of Metrics, lalu klik Submit.

    Aktifkan sakelar Enable Periodic Cleaning of Metrics.

    Penting

    Tetapkan waktu pembersihan berkala minimal dua kali lipat dari scrape_interval Prometheus. Hal ini memastikan Prometheus dapat berhasil mengambil metrik sebelum metrik tersebut dihapus.

Contoh

Deploy aplikasi contoh

  1. Gunakan konten YAML berikut untuk mendeploy aplikasi contoh pada kluster bidang data. Untuk informasi selengkapnya, lihat Create a stateless workload Deployment atau Create resources by using a YAML file.

    Click to view the YAML

    apiVersion: v1
    kind: Service
    metadata:
      name: httpbin
      labels:
        app: httpbin
        service: httpbin
    spec:
      ports:
      - name: http
        port: 8000
        targetPort: 80
      selector:
        app: httpbin
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: httpbin
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: httpbin
          version: v1
      template:
        metadata:
          labels:
            app: httpbin
            version: v1
        spec:
          containers:
          - image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/httpbin:0.1.0
            imagePullPolicy: IfNotPresent
            name: httpbin
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sleep
      labels:
        app: sleep
        service: sleep
    spec:
      ports:
      - port: 80
        name: http
      selector:
        app: sleep
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sleep
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sleep
      template:
        metadata:
          labels:
            app: sleep
        spec:
          terminationGracePeriodSeconds: 0
          containers:
          - name: sleep
            image: registry.cn-hangzhou.aliyuncs.com/acs/curl:8.1.2
            command: ["/bin/sleep", "infinity"]
            imagePullPolicy: IfNotPresent
  2. Jalankan perintah berikut untuk memeriksa status aplikasi:

    kubectl get pod

    Contoh output:

    NAME                       READY   STATUS    RESTARTS   AGE
    httpbin-846bxxx694-xxxxx   2/2     Running   0          44s
    sleep-866xxx97f9-xxxxx     2/2     Running   0          44s

Aktifkan metrik dan uji

  1. Masuk ke ASM console. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. Pada halaman Observability Settings, klik tab Global. Di bagian Metric Settings, centang kotak Enabled untuk metrik REQUEST_COUNT di bagian Server-side Metrics, lalu klik Submit.

  4. Jalankan perintah berikut untuk mengakses aplikasi httpbin:

     kubectl exec -it deploy/sleep -- sh -c 'for i in $(seq 1 10); do curl -s httpbin:8000/status/418 > /dev/null; done'
  5. Jalankan perintah berikut untuk melihat metrik pemantauan aplikasi httpbin:

    kubectl exec -it deploy/httpbin -c istio-proxy -- curl 0.0.0.0:15020/stats/prometheus | grep istio_requests_total{

    Contoh output:

    istio_requests_total{reporter="destination",source_workload="sleep",source_canonical_service="sleep",...,request_protocol="http",response_code="418",grpc_response_status="",response_flags="-",connection_security_policy="mutual_tls"} 20

Konfigurasikan pembersihan metrik berkala

  1. Ikuti langkah-langkah pada bagian Procedure untuk mengatur waktu pembersihan metrik pemantauan menjadi 10 detik.

    Pembersihan metrik mungkin tertunda beberapa detik. Saat verifikasi, Anda dapat menyesuaikan waktu pembersihan sesuai kebutuhan.
  2. Setelah konfigurasi selesai, jalankan perintah berikut untuk melihat metrik pemantauan aplikasi httpbin:

    kubectl exec -it deploy/httpbin -c istio-proxy -- sh -c ' for i in $(seq 1 2); do echo "# Current content of the istio_requests_total metric: "; curl -s 0.0.0.0:15020/stats/prometheus | grep istio_requests_total{; sleep 15; done'

    Contoh output:

    # Current content of the istio_requests_total metric: 
    istio_requests_total{reporter="destination",source_workload="sleep",source_canonical_service="sleep",...connection_security_policy="mutual_tls"} 30
    # Current content of the istio_requests_total metric: 
    Perintah uji melakukan dua permintaan polling. Permintaan pertama, yang dilakukan sebelum pembersihan, mengembalikan satu baris output metrik dan satu baris output kustom. Setelah 15 detik, data metrik dihapus, dan permintaan berikutnya hanya mengembalikan satu baris output kustom.