Share via


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

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.

Screenshot of the Prometheus metrics in the browser.

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.

Screenshot of a browser showing the ingress-nginx dashboard on Grafana.

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.

Screenshot of a browser showing the ingress-nginx request handling performance dashboard on Grafana.

Een dashboard importeren

Als u een Grafana-dashboard wilt importeren, vouwt u het linkermenu uit en klikt u op Importeren onder Dashboards.

Screenshot of a browser showing the Grafana instance with Import dashboard highlighted.

Upload vervolgens het gewenste dashboardbestand en klik op Laden.

Screenshot of a browser showing the Grafana instance import dashboard dialog.

Volgende stappen