全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Gabungkan metrik Istio dengan metrik aplikasi

更新时间:Jul 02, 2025

Untuk aplikasi yang terintegrasi dengan Prometheus, Anda dapat menggunakan proxy sidecar untuk mengekspos metrik aplikasi dengan menggabungkan metrik Istio dan metrik aplikasi. Topik ini menjelaskan cara menggabungkan metrik Istio dengan metrik aplikasi.

Prasyarat

Sebuah instance Service Mesh (ASM) versi 1.17.2.30 atau lebih baru telah dibuat. Untuk informasi lebih lanjut, lihat Buat instance ASM atau Perbarui instance ASM.

Penting

Fitur ini tidak cocok untuk skenario di mana metrik aplikasi bersifat sensitif. Metrik aplikasi dikumpulkan bersama dengan metrik Istio. Pengguna yang memiliki izin untuk melihat metrik Istio juga dapat melihat metrik aplikasi.

Deskripsi fitur

Setelah mengaktifkan fitur penggabungan metrik Istio dengan metrik aplikasi, ASM menggabungkan metrik aplikasi dengan metrik Istio. Anotasi prometheus.io dari aplikasi ditambahkan ke semua pod pada bidang data untuk mengaktifkan kemampuan pengambilan metrik Prometheus. Jika anotasi tersebut sudah ada, mereka akan ditimpa. Proxy sidecar menggabungkan metrik Istio dengan metrik aplikasi. Prometheus dapat memperoleh metrik yang digabungkan dari titik akhir :15020/stats/prometheus.

Setelah fitur ini diaktifkan, ASM melakukan operasi berikut pada pod:

  • Metode pengambilan yang dianotasikan dengan anotasi prometheus.io sebelum ASM diperkenalkan disimpan ke variabel lingkungan proxy sidecar.

  • Metrik Prometheus yang dihasilkan oleh aplikasi yang dicegat oleh ASM dan metrik proxy sidecar digabungkan dan diekspor ke titik akhir :15020/stats/prometheus untuk diambil oleh Prometheus.

Langkah 1: Sebarkan aplikasi contoh

Sebarkan aplikasi yang berisi anotasi prometheus.io. Untuk informasi lebih lanjut, lihat Sebarkan aplikasi dalam instance ASM.

Kode contoh berikut memberikan contoh file penyebaran untuk aplikasi productpage:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: productpage-v1
  labels:
    app: productpage
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: productpage
      version: v1
  template:
    metadata:
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9080"
        prometheus.io/path: "/metrics"
      labels:
        app: productpage
        version: v1
    spec:
      ......

Setelah aplikasi productpage diterapkan, informasi pod berikut dihasilkan:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/pod-ips: 172.17.0.132
    kubectl.kubernetes.io/default-container: productpage
    kubectl.kubernetes.io/default-logs-container: productpage
    kubernetes.io/psp: ack.privileged
    prometheus.io/path: /metrics
    prometheus.io/port: '9080'
    prometheus.io/scrape: 'true'

Dalam template YAML di atas, Anda dapat melihat anotasi prometheus.io berikut:

prometheus.io/path: /metrics
prometheus.io/port: '9080'
prometheus.io/scrape: 'true'

Langkah 2: Aktifkan fitur penggabungan metrik Istio dengan metrik aplikasi

Secara default, fitur ini dinonaktifkan untuk instance ASM. Anda dapat mengonfigurasi fitur ini untuk instance ASM secara global atau untuk setiap workload dengan menambahkan anotasi prometheus.istio.io/merge-metrics: "true" ke pod aplikasi. Dalam contoh ini, fitur ini dikonfigurasi untuk instance ASM.

  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 ASM Instance > Base Information.

  3. Di bagian Config Info, klik Enable di samping Merge Istio's Metrics with Application Metrics. Dalam pesan Enable Merging of Istio's Metrics with Application Metrics, klik OK.

Catatan

Jika Anda tidak lagi memerlukan fitur ini, Anda dapat menonaktifkannya dengan salah satu cara berikut:

  • Jika fitur ini diaktifkan untuk instance ASM, klik Disable di samping Merge Istio's Metrics with Application Metrics di bagian Config Info. Dalam pesan Disable Merging of Istio's Metrics with Application Metrics, klik OK.

  • Jika fitur ini diaktifkan untuk workload, tambahkan anotasi prometheus.istio.io/merge-metrics: "false" ke pod yang sesuai.

Langkah 3: Lihat hasilnya

Setelah mengaktifkan fitur penggabungan metrik Istio dengan metrik aplikasi, lihat informasi pod setelah me-restart pod.

Kode contoh berikut memberikan contoh template YAML pod:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/pod-ips: 172.17.0.126
    kubectl.kubernetes.io/default-container: productpage
    kubectl.kubernetes.io/default-logs-container: productpage
    kubernetes.io/psp: ack.privileged
    prometheus.io/path: /stats/prometheus
    prometheus.io/port: '15020'
    prometheus.io/scrape: 'true'
    ......
spec:
  containers:
    - args:
        - proxy
        - sidecar
        ......
      env:
        ......
        - name: ISTIO_PROMETHEUS_ANNOTATIONS
          value: '{"scrape":"true","path":"/metrics","port":"9080"}'
                

Template YAML di atas menunjukkan bahwa anotasi prometheus.io diperbarui menjadi konten berikut. Selain itu, variabel lingkungan baru bernama ISTIO_PROMETHEUS_ANNOTATIONS ditambahkan. Kode contoh berikut menunjukkan bahwa nilai variabel lingkungan tersebut sama dengan anotasi prometheus.io yang dikonfigurasi untuk aplikasi.

prometheus.io/path: /stats/prometheus
prometheus.io/port: '15020'
prometheus.io/scrape: 'true'