Grafana'da Prometheus ile uygulama yönlendirme eklentisinde giriş-nginx denetleyicisi ölçümlerini izleme (önizleme)
Uygulama yönlendirme eklentisindeki giriş-nginx denetleyicisi, istekler, nginx işlemi ve denetleyici için uygulamanızın performansını ve kullanımını analiz etme konusunda yardımcı olabilecek birçok ölçümü kullanıma sunar.
Uygulama yönlendirme eklentisi, 10254 numaralı bağlantı noktasında Prometheus ölçüm uç noktasını /metrics
kullanıma sunar.
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından kısmen en iyi çaba temelinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Önkoşullar
- Uygulama yönlendirme eklentisinin etkinleştirildiği bir Azure Kubernetes Service (AKS) kümesi.
- Prometheus için Azure İzleyici yönetilen hizmeti gibi bir Prometheus örneği.
- Azure Yönetilen Grafana gibi bir Grafana örneği.
Ölçüm uç noktasını doğrulama
Ölçümlerin toplandığını doğrulamak için ingress-nginx denetleyici podlarından birine doğru bir bağlantı noktası ayarlayabilirsiniz.
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
Şimdi yerel bağlantı noktasını nginx podlarından birinde 10254 numaralı bağlantı noktasına iletin.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
Yerel bağlantı noktasını (43307
bu durumda) not edin ve tarayıcınızda açın http://localhost:43307/metrics . inging-nginx denetleyicisi ölçümlerinin yükleniyor olduğunu görmeniz gerekir.
Artık iletmeyi port-forward
kapatmak için işlemi sonlandırabilirsiniz.
Container Insights kullanarak Prometheus ve Azure Yönetilen Grafana için Azure İzleyici yönetilen hizmetini yapılandırma
Prometheus için Azure İzleyici yönetilen hizmeti, PromQL, Grafana panoları ve Prometheus uyarıları gibi endüstri standardı özellikleri destekleyen tam olarak yönetilen bir Prometheus uyumlu hizmettir. Bu hizmet, Verileri Prometheus'a gönderen Azure İzleyici aracısı için ölçüm eklentisinin yapılandırılmasını gerektirir. Kümeniz eklentiyle yapılandırılmadıysa, Azure Kubernetes Service (AKS) kümenizi Prometheus için Azure İzleyici yönetilen hizmetine veri gönderecek ve toplanan ölçümleri bir Azure Yönetilen Grafana örneğine gönderecek şekilde yapılandırmak için bu makaleyi izleyebilirsiniz.
Pod ek açıklama tabanlı kazıma özelliğini etkinleştirme
Kümeniz Azure İzleyici aracısı ile güncelleştirildikten sonra, aracıyı ingress-nginx podlarına eklenen Pod ek açıklamalarını temel alarak kazıma özelliğini etkinleştirecek şekilde yapılandırmanız gerekir. Bu ayarı ayarlamanın bir yolu, ad alanında ConfigMap'tir ama-metrics-settings-configmap
kube-system
.
Dikkat
Bu, içindeki mevcut ama-metrics-settings-configmap
ConfigMap'inizin kube-system
yerini alır. Zaten bir yapılandırmanız varsa, bir yedekleme almak veya bu yapılandırmayla birleştirmek isteyebilirsiniz.
Mevcut ama-metrics-settings-config
bir ConfigMap varsa komutunu çalıştırarak yedekleyebilirsiniz kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
Aşağıdaki yapılandırma, parametresini podannotationnamespaceregex
.*
tüm ad alanlarını kazımak için olarak ayarlar.
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
Birkaç dakika içinde ad ama-metrics
alanı içindeki kube-system
podların yeniden başlatılması ve yeni yapılandırmayı alması gerekir.
Azure Yönetilen Grafana'da ölçümlerin görselleştirmesini gözden geçirme
Prometheus ve Azure Yönetilen Grafana için Azure İzleyici yönetilen hizmetini yapılandırdığınıza göre Yönetilen Grafana örneğine erişmeniz gerekir.
Grafana örneğinize indirip içeri aktarabileceğiniz iki resmi giriş-nginx panosu vardır:
- Ingress-nginx denetleyici panosu
- İstek işleme performans panosu
Ingress-nginx denetleyici panosu
Bu pano, istek hacmi, bağlantılar, başarı oranları, yapılandırma yeniden yüklemeleri ve yapılandırmaların eşitlenmemiş olduğunu gösterir. Giriş denetleyicisinin ağ GÇ baskısını, belleği ve CPU kullanımını görüntülemek için de kullanabilirsiniz. Son olarak, girişlerinizin P50, P95 ve P99 yüzde birlik yanıt sürelerini ve bunların aktarım hızını da gösterir.
Bu panoyu GitHub'dan indirebilirsiniz.
İstek işleme performans panosu
Bu pano, uygulamalarınızın giriş denetleyicisinin trafiği ilettiği uç noktaları olan farklı giriş yukarı akış hedeflerinin istek işleme performansı hakkında görünürlük sağlar. Toplam isteğin ve yukarı akış yanıt sürelerinin P50, P95 ve P99 yüzdebirlik değerlerini gösterir. Ayrıca istek hatalarının ve gecikme süresinin toplamlarını da görüntüleyebilirsiniz. Uygulamalarınızın performansını ve ölçeklenebilirliğini gözden geçirmek ve geliştirmek için bu panoyu kullanın.
Bu panoyu GitHub'dan indirebilirsiniz.
Panoyu içeri aktarma
Grafana panosunu içeri aktarmak için sol menüyü genişletin ve Panolar'ın altında İçeri Aktar'a tıklayın.
Ardından istediğiniz pano dosyasını karşıya yükleyin ve Yükle'ye tıklayın.
Sonraki adımlar
- Kubernetes Event Driven Autoscaler (KEDA) kullanarak Prometheus ile kazınan giriş ölçümlerini kullanarak iş yüklerinizi ölçeklendirmeyi yapılandırabilirsiniz. KEDA'nın AKS ile tümleştirilmesi hakkında daha fazla bilgi edinin.
- İş yükü performansını test etmek ve uygulamalarınızın ölçeklenebilirliğini iyileştirmek için Azure Yük Testi ile yük testi oluşturun ve çalıştırın.
Azure Kubernetes Service