全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan pembersihan periodik metrik dalam instance ASM

更新时间:Jul 02, 2025

Service Mesh (ASM) menghasilkan metrik untuk semua lalu lintas masuk, keluar, dan internal layanan di dalam ASM guna memantau kinerja layanan. Metrik ini mencakup informasi seperti total lalu lintas, laju kesalahan, dan waktu respons permintaan. Namun, operasi jangka panjang menghasilkan sejumlah besar metrik yang meningkatkan konsumsi sumber daya Envoy dan Prometheus secara signifikan. Oleh karena itu, ASM menyediakan fitur konfigurasi pembersihan periodik metrik pemantauan untuk membersihkan metrik yang disimpan di Envoy namun belum digunakan selama periode tertentu. Fitur ini membantu meningkatkan efisiensi penggunaan memori Envoy serta mengurangi beban jaringan saat Prometheus menarik metrik. Topik ini menjelaskan cara mengonfigurasi pembersihan periodik metrik beserta contoh penggunaannya.

Prasyarat

Prosedur

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

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

  3. Di halaman Observability Settings, klik tab Global, masukkan Periodic Cleaning Time of Metrics pada bagian Enable Periodic Cleaning of Metrics, lalu klik Submit.

    image

    Penting

    Disarankan untuk mengatur waktu pembersihan periodik metrik minimal dua kali nilai scrape_interval yang dikonfigurasi untuk Prometheus agar memastikan bahwa Prometheus berhasil menangkap metrik sebelum dibersihkan.

Contoh

Sebar aplikasi sampel

  1. Jalankan perintah berikut untuk menerapkan aplikasi sampel di kluster pada bidang data. Untuk detail operasi, lihat Buat Menggunakan Template YAML.

    Klik untuk Melihat Detail

    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

    Output yang Diharapkan:

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

Aktifkan metrik dan lakukan verifikasi

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

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

  3. Di halaman Observability Settings, klik tab Global. Dalam daftar Monitoring Metrics Setting, centang Enabled di sebelah metrik REQUEST_COUNT pada kolom Server-side Metrics. Lalu, klik Submit.

    image

  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{

    Output yang Diharapkan:

    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 periodik metrik pemantauan

  1. Atur waktu pembersihan periodik metrik menjadi 10 detik dengan mengikuti langkah-langkah di Prosedur.

    Ada beberapa detik penundaan dalam proses pembersihan. Selama 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 "# Isi saat ini dari metrik istio_requests_total: "; curl -s 0.0.0.0:15020/stats/prometheus | grep istio_requests_total{; sleep 15; done'

    Output yang Diharapkan:

    # Isi saat ini dari metrik istio_requests_total: 
    istio_requests_total{reporter="destination",source_workload="sleep",source_canonical_service="sleep",...connection_security_policy="mutual_tls"} 30
    # Isi saat ini dari metrik istio_requests_total: 
    Perintah uji di atas mengirimkan 2 permintaan secara total. Sebelum fitur ini diaktifkan, setiap permintaan mengembalikan satu baris metrik dan satu baris output kustom. Setelah fitur ini diaktifkan, metrik dibersihkan dalam 15 detik, dan setiap permintaan mengembalikan satu baris output kustom.