De metrische gegevens van de ingangs-nginx-controller bewaken in de invoegtoepassing voor toepassingsroutering met Prometheus in Grafana (preview)
De controller voor inkomend-nginx in de invoegtoepassing voor toepassingsroutering bevat veel metrische gegevens voor aanvragen, het nginx-proces en de controller die nuttig kan zijn bij het analyseren van de prestaties en het gebruik van uw toepassing.
De invoegtoepassing voor toepassingsroutering toont het eindpunt voor metrische gegevens van Prometheus op /metrics
poort 10254.
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Vereisten
- Een AKS-cluster (Azure Kubernetes Service) waarvoor de invoegtoepassing voor toepassingsroutering is ingeschakeld.
- Een Prometheus-exemplaar, zoals een beheerde Azure Monitor-service voor Prometheus.
- Een Grafana-exemplaar, zoals Azure Managed Grafana.
Het eindpunt voor metrische gegevens valideren
Als u wilt controleren of de metrische gegevens worden verzameld, kunt u een poort doorsturen naar een van de ingangs-nginx-controllerpods instellen.
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
Stuur nu een lokale poort door naar poort 10254 op een van de nginx-pods.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
Noteer de lokale poort (43307
in dit geval) en open http://localhost:43307/metrics deze in uw browser. U ziet dat de metrische gegevens voor inkomend-nginx-controller worden geladen.
U kunt het port-forward
proces nu beƫindigen om het doorsturen te sluiten.
Beheerde Azure Monitor-service configureren voor Prometheus en Azure Managed Grafana met behulp van Container Insights
Beheerde Azure Monitor-service voor Prometheus is een volledig beheerde Prometheus-compatibele service die ondersteuning biedt voor industriestandaardfuncties zoals PromQL-, Grafana-dashboards en Prometheus-waarschuwingen. Voor deze service moet u de invoegtoepassing voor metrische gegevens configureren voor de Azure Monitor-agent, die gegevens naar Prometheus verzendt. Als uw cluster niet is geconfigureerd met de invoegtoepassing, kunt u dit artikel volgen om uw AKS-cluster (Azure Kubernetes Service) te configureren voor het verzenden van gegevens naar de beheerde Azure Monitor-service voor Prometheus en het verzenden van de verzamelde metrische gegevens naar een Beheerd Grafana-exemplaar van Azure.
Op podaantekening gebaseerde scraping inschakelen
Zodra uw cluster is bijgewerkt met de Azure Monitor-agent, moet u de agent configureren om scraping in te schakelen op basis van podaantekeningen, die worden toegevoegd aan de ingress-nginx-pods. Een manier om deze instelling in te stellen, bevindt zich in de ama-metrics-settings-configmap
ConfigMap in de kube-system
naamruimte.
Let op
Hiermee vervangt u uw bestaande ama-metrics-settings-configmap
ConfigMap in de kube-system
. Als u al een configuratie hebt, kunt u een back-up maken of deze samenvoegen met deze configuratie.
U kunt een back-up maken van een bestaande ama-metrics-settings-config
ConfigMap als deze bestaat door deze uit te voeren kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
Met de volgende configuratie wordt de podannotationnamespaceregex
parameter ingesteld om .*
alle naamruimten te scrapen.
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
Binnen een paar minuten moeten de ama-metrics
pods in de kube-system
naamruimte opnieuw worden opgestart en de nieuwe configuratie worden opgehaald.
Visualisatie van metrische gegevens bekijken in Azure Managed Grafana
Nu u de beheerde Azure Monitor-service voor Prometheus en Azure Managed Grafana hebt geconfigureerd, hebt u toegang tot uw beheerde Grafana-exemplaar.
Er zijn twee officiƫle dashboards voor inkomend verkeer-nginx-dashboards die u kunt downloaden en importeren in uw Grafana-exemplaar:
- Dashboard voor inkomend-nginx-controller
- Prestatiedashboard voor het verwerken van aanvragen
Dashboard voor inkomend-nginx-controller
Dit dashboard biedt u inzicht in het aanvraagvolume, verbindingen, slagingspercentages, herlaadt en configuraties worden niet gesynchroniseerd. U kunt deze ook gebruiken om de netwerk-I/O-druk, het geheugen en de CPU van de ingangscontroller weer te geven. Ten slotte worden ook de reactietijden P50, P95 en P99-percentiel van uw ingresses en hun doorvoer weergegeven.
U kunt dit dashboard downloaden via GitHub.
Prestatiedashboard voor het verwerken van aanvragen
Dit dashboard geeft u inzicht in de verwerking van aanvragen voor de prestaties van de verschillende upstream-bestemmingen voor inkomend verkeer. Dit zijn de eindpunten van uw toepassingen waarnaar de ingangscontroller verkeer doorstuurt. Het toont het percentiel P50, P95 en P99 van de totale aanvraag- en upstream-responstijden. U kunt ook aggregaties van aanvraagfouten en latentie weergeven. Gebruik dit dashboard om de prestaties en schaalbaarheid van uw toepassingen te controleren en te verbeteren.
U kunt dit dashboard downloaden via GitHub.
Een dashboard importeren
Als u een Grafana-dashboard wilt importeren, vouwt u het linkermenu uit en klikt u op Importeren onder Dashboards.
Upload vervolgens het gewenste dashboardbestand en klik op Laden.
Volgende stappen
- U kunt het schalen van uw workloads configureren met behulp van metrische gegevens voor inkomend verkeer die met Prometheus worden gesroot met behulp van Kubernetes Event Driven Autoscaler (KEDA). Meer informatie over het integreren van KEDA met AKS.
- Maak en voer een belastingstest uit met Azure Load Testing om de prestaties van workloads te testen en de schaalbaarheid van uw toepassingen te optimaliseren.
Azure Kubernetes Service