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
Sebuah kluster telah ditambahkan ke instance ASM versi 1.18 atau lebih baru. Untuk informasi lebih lanjut, lihat Tambahkan Kluster ke Instance ASM.
Prosedur
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Global, masukkan Periodic Cleaning Time of Metrics pada bagian Enable Periodic Cleaning of Metrics, lalu klik Submit.
PentingDisarankan untuk mengatur waktu pembersihan periodik metrik minimal dua kali nilai
scrape_intervalyang dikonfigurasi untuk Prometheus agar memastikan bahwa Prometheus berhasil menangkap metrik sebelum dibersihkan.
Contoh
Sebar aplikasi sampel
Jalankan perintah berikut untuk menerapkan aplikasi sampel di kluster pada bidang data. Untuk detail operasi, lihat Buat Menggunakan Template YAML.
Jalankan perintah berikut untuk memeriksa status aplikasi.
kubectl get podOutput 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
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
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.

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'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
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.
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.