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
-
Anda telah menambahkan kluster ke instans ASM versi 1.18 atau yang lebih baru. Untuk informasi selengkapnya, lihat Add a cluster to an ASM instance.
Prosedur
-
Masuk ke ASM console. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
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.
PentingTetapkan waktu pembersihan berkala minimal dua kali lipat dari
scrape_intervalPrometheus. Hal ini memastikan Prometheus dapat berhasil mengambil metrik sebelum metrik tersebut dihapus.
Contoh
Deploy aplikasi contoh
-
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.
-
Jalankan perintah berikut untuk memeriksa status aplikasi:
kubectl get podContoh 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
-
Masuk ke ASM console. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
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.
-
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{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
-
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.
-
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.