Pantau metrik pengontrol ingress-nginx dalam add-on perutean aplikasi dengan Prometheus di Grafana (pratinjau)
Pengontrol ingress-nginx dalam add-on perutean aplikasi mengekspos banyak metrik untuk permintaan, proses nginx, dan pengontrol yang dapat membantu dalam menganalisis performa dan penggunaan aplikasi Anda.
Add-on perutean aplikasi mengekspos titik akhir metrik Prometheus di /metrics
port 10254.
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Prasyarat
- Kluster Azure Kubernetes Service (AKS) dengan add-on perutean aplikasi diaktifkan.
- Instans Prometheus, seperti layanan terkelola Azure Monitor untuk Prometheus.
- Instans Grafana, seperti Azure Managed Grafana.
Memvalidasi titik akhir metrik
Untuk memvalidasi metrik yang sedang dikumpulkan, Anda dapat mengatur penerusan port ke salah satu pod pengontrol ingress-nginx.
kubectl get pods -n app-routing-system
NAME READY STATUS RESTARTS AGE
external-dns-667d54c44b-jmsxm 1/1 Running 0 4d6h
nginx-657bb8cdcf-qllmx 1/1 Running 0 4d6h
nginx-657bb8cdcf-wgcr7 1/1 Running 0 4d6h
Sekarang teruskan port lokal ke port 10254 pada salah satu pod nginx.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
Perhatikan port lokal (43307
dalam hal ini) dan buka http://localhost:43307/metrics di browser Anda. Anda akan melihat pemuatan metrik pengontrol ingress-nginx.
Anda sekarang dapat mengakhiri port-forward
proses untuk menutup penerusan.
Mengonfigurasi layanan terkelola Azure Monitor untuk Prometheus dan Azure Managed Grafana menggunakan Container Insights
Layanan terkelola Azure Monitor untuk Prometheus adalah layanan yang kompatibel dengan Prometheus yang dikelola sepenuhnya yang mendukung fitur standar industri seperti PromQL, dasbor Grafana, dan pemberitahuan Prometheus. Layanan ini memerlukan konfigurasi addon metrik untuk agen Azure Monitor, yang mengirim data ke Prometheus. Jika kluster Anda tidak dikonfigurasi dengan add-on, Anda dapat mengikuti artikel ini untuk mengonfigurasi kluster Azure Kubernetes Service (AKS) untuk mengirim data ke layanan terkelola Azure Monitor untuk Prometheus dan mengirim metrik yang dikumpulkan ke instans Azure Managed Grafana.
Mengaktifkan pengikisan berbasis anotasi pod
Setelah kluster Anda diperbarui dengan agen Azure Monitor, Anda perlu mengonfigurasi agen untuk mengaktifkan pengikisan berdasarkan anotasi Pod, yang ditambahkan ke pod ingress-nginx. Salah satu cara untuk mengatur pengaturan ini adalah di ama-metrics-settings-configmap
ConfigMap di kube-system
namespace layanan.
Perhatian
Ini akan menggantikan ConfigMap yang ada ama-metrics-settings-configmap
di kube-system
. Jika Anda sudah memiliki konfigurasi, Anda mungkin ingin mengambil cadangan atau menggabungkannya dengan konfigurasi ini.
Anda dapat mencadangkan ama-metrics-settings-config
ConfigMap yang ada jika ada dengan menjalankan kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
Konfigurasi berikut mengatur podannotationnamespaceregex
parameter ke .*
untuk mengikis semua namespace.
kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
name: ama-metrics-settings-configmap
namespace: kube-system
data:
schema-version:
#string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
v1
config-version:
#string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
ver1
prometheus-collector-settings: |-
cluster_alias = ""
default-scrape-settings-enabled: |-
kubelet = true
coredns = false
cadvisor = true
kubeproxy = false
apiserver = false
kubestate = true
nodeexporter = true
windowsexporter = false
windowskubeproxy = false
kappiebasic = true
prometheuscollectorhealth = false
# Regex for which namespaces to scrape through pod annotation based scraping.
# This is none by default. Use '.*' to scrape all namespaces of annotated pods.
pod-annotation-based-scraping: |-
podannotationnamespaceregex = ".*"
default-targets-metrics-keep-list: |-
kubelet = ""
coredns = ""
cadvisor = ""
kubeproxy = ""
apiserver = ""
kubestate = ""
nodeexporter = ""
windowsexporter = ""
windowskubeproxy = ""
podannotations = ""
kappiebasic = ""
minimalingestionprofile = true
default-targets-scrape-interval-settings: |-
kubelet = "30s"
coredns = "30s"
cadvisor = "30s"
kubeproxy = "30s"
apiserver = "30s"
kubestate = "30s"
nodeexporter = "30s"
windowsexporter = "30s"
windowskubeproxy = "30s"
kappiebasic = "30s"
prometheuscollectorhealth = "30s"
podannotations = "30s"
debug-mode: |-
enabled = false
EOF
Dalam beberapa menit, ama-metrics
pod di kube-system
namespace harus memulai ulang dan mengambil konfigurasi baru.
Meninjau visualisasi metrik di Azure Managed Grafana
Sekarang setelah Anda memiliki layanan terkelola Azure Monitor untuk Prometheus dan Azure Managed Grafana yang dikonfigurasi, Anda harus mengakses instans Grafana Terkelola Anda.
Ada dua dasbor ingress-nginx resmi yang dapat Anda unduh dan impor ke instans Grafana Anda:
- Dasbor pengontrol Ingress-nginx
- Meminta penanganan dasbor performa
Dasbor pengontrol Ingress-nginx
Dasbor ini memberi Anda visibilitas volume permintaan, koneksi, tingkat keberhasilan, pemuatan ulang konfigurasi, dan konfigurasi tidak sinkron. Anda juga dapat menggunakannya untuk melihat tekanan IO jaringan, memori, dan penggunaan CPU pengontrol ingress. Akhirnya, ini juga menunjukkan waktu respons persentil P50, P95, dan P99 dari ingress Anda dan throughputnya.
Anda dapat mengunduh dasbor ini dari GitHub.
Meminta penanganan dasbor performa
Dasbor ini memberi Anda visibilitas ke dalam performa penanganan permintaan dari berbagai tujuan hulu ingress, yang merupakan titik akhir aplikasi Anda yang diteruskan oleh pengontrol ingress. Ini menunjukkan persentil P50, P95 dan P99 dari total permintaan dan waktu respons upstram. Anda juga dapat melihat agregat kesalahan permintaan dan latensi. Gunakan dasbor ini untuk meninjau dan meningkatkan performa dan skalabilitas aplikasi Anda.
Anda dapat mengunduh dasbor ini dari GitHub.
Mengimpor dasbor
Untuk mengimpor dasbor Grafana, perluas menu sebelah kiri dan klik Impor di bawah Dasbor.
Kemudian unggah file dasbor yang diinginkan dan klik Muat.
Langkah berikutnya
- Anda dapat mengonfigurasi penskalakan beban kerja menggunakan metrik ingress yang diekstraksi dengan Prometheus menggunakan Kubernetes Event Driven Autoscaler (KEDA). Pelajari selengkapnya tentang mengintegrasikan KEDA dengan AKS.
- Buat dan jalankan pengujian beban dengan Azure Load Testing untuk menguji performa beban kerja dan mengoptimalkan skalabilitas aplikasi Anda.
Azure Kubernetes Service