Dela via


Övervaka ingress-nginx-kontrollantmåtten i tillägget för programroutning med Prometheus i Grafana (förhandsversion)

Ingress-nginx-kontrollanten i tillägget för programdirigering exponerar många mått för begäranden, nginx-processen och kontrollanten som kan vara till hjälp vid analys av programmets prestanda och användning.

Tillägget programroutning exponerar Prometheus-måttslutpunkten på /metrics port 10254.

Viktigt!

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och anmäl dig. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. AKS-förhandsversioner omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

Förutsättningar

Validera måttslutpunkten

Om du vill verifiera att måtten samlas in kan du konfigurera en port framåt till någon av ingress-nginx-kontrollantpoddarna.

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

Vidarebefordra nu en lokal port till port 10254 på en av nginx-poddarna.

kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254

Observera den lokala porten (43307 i det här fallet) och öppna http://localhost:43307/metrics i webbläsaren. Du bör se ingress-nginx-kontrollantmåtten läsas in.

Skärmbild av Prometheus-måtten i webbläsaren.

Nu kan du avsluta port-forward processen för att stänga vidarebefordran.

Konfigurera azure monitor-hanterad tjänst för Prometheus och Azure Managed Grafana med containerinsikter

Azure Monitor-hanterad tjänst för Prometheus är en fullständigt hanterad Prometheus-kompatibel tjänst som stöder branschstandardfunktioner som PromQL, Grafana-instrumentpaneler och Prometheus-aviseringar. Den här tjänsten kräver att du konfigurerar måtttillägget för Azure Monitor-agenten, som skickar data till Prometheus. Om klustret inte har konfigurerats med tillägget kan du följa den här artikeln för att konfigurera ditt Azure Kubernetes Service-kluster (AKS) för att skicka data till Azure Monitor managed service for Prometheus och skicka de insamlade måtten till en Azure Managed Grafana-instans.

Aktivera poddanteckningsbaserad skrapning

När klustret har uppdaterats med Azure Monitor-agenten måste du konfigurera agenten för att aktivera skrapning baserat på poddanteckningar som läggs till i ingress-nginx-poddarna. Ett sätt att ange den här inställningen är i ama-metrics-settings-configmap ConfigMap i kube-system namnområdet.

Varning

Detta ersätter din befintliga ama-metrics-settings-configmap ConfigMap i kube-system. Om du redan har en konfiguration kanske du vill göra en säkerhetskopia eller sammanfoga den med den här konfigurationen.

Du kan säkerhetskopiera en befintlig ama-metrics-settings-config ConfigMap om den finns genom att köra kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml

Följande konfiguration anger parametern podannotationnamespaceregex till .* för att skrapa alla namnområden.

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

Om några minuter ama-metrics bör poddarna i kube-system namnområdet startas om och hämta den nya konfigurationen.

Granska visualisering av mått i Azure Managed Grafana

Nu när du har konfigurerat Azure Monitor-hanterad tjänst för Prometheus och Azure Managed Grafana bör du komma åt din Hanterade Grafana-instans.

Det finns två officiella instrumentpaneler för ingress-nginx som du kan ladda ned och importera till din Grafana-instans:

  • Instrumentpanel för ingress-nginx-styrenhet
  • Instrumentpanel för hantering av begäranden

Instrumentpanel för ingress-nginx-styrenhet

Den här instrumentpanelen ger dig insyn i begärandevolym, anslutningar, lyckade priser, konfigurationsåterladdningar och konfigurationer som inte är synkroniserade. Du kan också använda den för att visa nätverkets I/O-tryck, minne och cpu-användning av ingresskontrollanten. Slutligen visas även svarstiderna P50, P95 och P99-percentilen för dina ingresser och deras dataflöde.

Du kan ladda ned den här instrumentpanelen från GitHub.

Skärmbild av en webbläsare som visar instrumentpanelen ingress-nginx på Grafana.

Instrumentpanel för hantering av begäranden

Den här instrumentpanelen ger dig insyn i prestanda för hantering av begäranden för de olika överordnade målen, som är dina programslutpunkter som ingresskontrollanten vidarebefordrar trafik till. Den visar P50-, P95- och P99-percentilen för totalt antal begäranden och uppströms svarstider. Du kan också visa aggregeringar av begärandefel och svarstider. Använd den här instrumentpanelen för att granska och förbättra prestanda och skalbarhet för dina program.

Du kan ladda ned den här instrumentpanelen från GitHub.

Skärmbild av en webbläsare som visar instrumentpanelen för hantering av prestanda för ingress-nginx-begäranden på Grafana.

Importera en instrumentpanel

Om du vill importera en Grafana-instrumentpanel expanderar du den vänstra menyn och klickar på Importera under Instrumentpaneler.

Skärmbild av en webbläsare som visar Grafana-instansen med importinstrumentpanelen markerad.

Ladda sedan upp önskad instrumentpanelsfil och klicka på Läs in.

Skärmbild av en webbläsare som visar dialogrutan Importinstrumentpanel för Grafana-instans.

Nästa steg