Prometheus adalah alat pemantauan open source untuk aplikasi cloud-native. Topik ini menjelaskan cara mengintegrasikan instans Prometheus yang dikelola sendiri dengan Alibaba Cloud Service Mesh (ASM) untuk memantau mesh. Contoh yang digunakan adalah ack-prometheus-operator open source dari Alibaba Cloud Container Service for Kubernetes (ACK).
Prasyarat
Kluster ACK telah dibuat. Untuk informasi selengkapnya, lihat Create an ACK managed cluster.
Instans ASM telah dibuat. Untuk informasi selengkapnya, lihat Create an ASM instance. Instans Prometheus dan instans Grafana telah dibuat di kluster ACK. Untuk informasi selengkapnya, lihat Use open source Prometheus for monitoring.
Instal ack-prometheus-operator
Topik ini menggunakan ack-prometheus-operator open source dari ACK sebagai contoh konfigurasi. Jika Anda menginstal instans Prometheus yang dikelola sendiri di kluster menggunakan metode lain, tambahkan konten bidang additionalScrapeConfigs ke konfigurasi scrape instans Prometheus tersebut. Untuk informasi selengkapnya tentang konfigurasi scrape, lihat prometheus_scrape_config.
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi sebelah kiri, pilih .
Pada halaman Helm, temukan ack-prometheus-operator lalu klik Update di kolom Actions.
Pada panel Update Release, ubah bidang
additionalScrapeConfigsdi kotak teks YAML, lalu klik OK.File YAML cukup panjang. Anda dapat menekan Ctrl+F untuk mencari bidang
additionalScrapeConfigs. Berikut adalah bidangadditionalScrapeConfigsyang telah dimodifikasi:additionalScrapeConfigs: # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labeldrop regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name
Hasilkan data pemantauan
Kirim permintaan ke layanan pada bidang data. Pada contoh ini, digunakan aplikasi Bookinfo. Untuk informasi selengkapnya, lihat Getting started. Buka halaman Productpage dari Bookinfo dan segarkan halaman tersebut beberapa kali. 
Verifikasi hasil
Periksa apakah proxy Envoy mengumpulkan metrik yang ditentukan
Jalankan perintah berikut. Jika output berisi data pemantauan, berarti proxy Envoy sedang mengumpulkan metrik yang ditentukan. Jika output kosong, berarti proxy Envoy tidak mengumpulkan metrik tersebut.
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istioLihat metrik yang dipantau oleh Prometheus
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih .
Pada halaman Services, temukan Prometheus lalu klik alamat IP-nya di kolom External IP.
Pada halaman Prometheus, masukkan istio_requests_total di kotak pencarian lalu klik Execute. Metrik yang dipantau oleh Prometheus akan ditampilkan.

Lihat dasbor Grafana dari data metrik
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih .
Pada halaman Services, temukan Grafana, lalu klik alamat IP-nya di kolom External IP.
Pada halaman Grafana, pilih Istio Workload Dashboard di pojok kiri atas. Gambar berikut menunjukkan dasbor Grafana yang ditampilkan.
