Monitorowanie metryk kontrolera ruchu przychodzącego-nginx w dodatku routingu aplikacji za pomocą rozwiązania Prometheus w narzędziu Grafana (wersja zapoznawcza)
Kontroler ruchu przychodzącego-nginx w dodatku routingu aplikacji uwidacznia wiele metryk dla żądań, procesu nginx i kontrolera, który może być pomocny w analizowaniu wydajności i użycia aplikacji.
Dodatek routingu aplikacji uwidacznia punkt końcowy metryk Rozwiązania Prometheus na /metrics
porcie 10254.
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Wymagania wstępne
- Klaster usługi Azure Kubernetes Service (AKS) z włączonym dodatkiem routingu aplikacji.
- Wystąpienie rozwiązania Prometheus, takie jak usługa zarządzana usługi Azure Monitor dla rozwiązania Prometheus.
- Wystąpienie narzędzia Grafana, takie jak Azure Managed Grafana.
Weryfikowanie punktu końcowego metryk
Aby sprawdzić, czy metryki są zbierane, możesz skonfigurować port do przodu do jednego z zasobników kontrolera ruchu przychodzącego-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
Teraz przekaż port lokalny do portu 10254 na jednym z zasobników 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
Zanotuj port lokalny (43307
w tym przypadku) i otwórz http://localhost:43307/metrics go w przeglądarce. Powinny zostać wyświetlone metryki kontrolera ruchu przychodzącego-nginx, które są ładowane.
Teraz możesz zakończyć port-forward
proces, aby zamknąć przekazywanie dalej.
Konfigurowanie usługi zarządzanej usługi Azure Monitor dla rozwiązania Prometheus i narzędzia Azure Managed Grafana przy użyciu usługi Container Insights
Usługa zarządzana usługi Azure Monitor dla rozwiązania Prometheus to w pełni zarządzana usługa zgodna z rozwiązaniem Prometheus, która obsługuje standardowe funkcje branżowe, takie jak PromQL, pulpity nawigacyjne Grafana i alerty Prometheus. Ta usługa wymaga skonfigurowania dodatku metryk dla agenta usługi Azure Monitor, który wysyła dane do rozwiązania Prometheus. Jeśli klaster nie został skonfigurowany przy użyciu dodatku, możesz wykonać czynności opisane w tym artykule, aby skonfigurować klaster usługi Azure Kubernetes Service (AKS) w celu wysyłania danych do usługi zarządzanej usługi Azure Monitor dla rozwiązania Prometheus i wysyłania zebranych metryk do wystąpienia usługi Azure Managed Grafana.
Włączanie wycinków opartych na adnotacjach zasobników
Po zaktualizowaniu klastra za pomocą agenta usługi Azure Monitor należy skonfigurować agenta w celu włączenia złomowania na podstawie adnotacji zasobników, które są dodawane do zasobników ingress-nginx. Jednym ze sposobów ustawienia tego ustawienia jest ama-metrics-settings-configmap
element ConfigMap w kube-system
przestrzeni nazw.
Uwaga
Spowoduje to zastąpienie istniejącej ama-metrics-settings-configmap
ConfigMap w elemencie kube-system
. Jeśli masz już konfigurację, możesz utworzyć kopię zapasową lub scalić ją z tą konfiguracją.
Jeśli istnieje, możesz utworzyć kopię zapasową istniejącego ama-metrics-settings-config
obiektu ConfigMap, uruchamiając polecenie kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
Poniższa konfiguracja ustawia parametr na podannotationnamespaceregex
.*
, aby zeskrobać wszystkie przestrzenie nazw.
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
W ciągu kilku minut ama-metrics
zasobniki w kube-system
przestrzeni nazw powinny zostać uruchomione ponownie i pobrać nową konfigurację.
Przeglądanie wizualizacji metryk w narzędziu Azure Managed Grafana
Teraz, gdy masz skonfigurowaną usługę zarządzaną Azure Monitor dla rozwiązań Prometheus i Azure Managed Grafana, musisz uzyskać dostęp do wystąpienia zarządzanego narzędzia Grafana.
Istnieją dwa oficjalne pulpity nawigacyjne ruchu przychodzącego-nginx, które można pobrać i zaimportować do wystąpienia narzędzia Grafana:
- Pulpit nawigacyjny kontrolera ruchu przychodzącego-nginx
- Pulpit nawigacyjny wydajności obsługi żądań
Pulpit nawigacyjny kontrolera ruchu przychodzącego-nginx
Ten pulpit nawigacyjny zapewnia widoczność woluminu żądań, połączeń, współczynników powodzenia, ponownego ładowania konfiguracji i konfiguracji poza synchronizacją. Można go również użyć do wyświetlania użycia procesora WE/Wy sieci, pamięci i procesora CPU kontrolera ruchu przychodzącego. Na koniec pokazuje również czasy odpowiedzi ruchu przychodzącego P50, P95 i P99 percentyl oraz ich przepływność.
Ten pulpit nawigacyjny można pobrać z usługi GitHub.
Pulpit nawigacyjny wydajności obsługi żądań
Ten pulpit nawigacyjny zapewnia wgląd w wydajność obsługi żądań różnych miejsc docelowych ruchu przychodzącego nadrzędnego, które są punktami końcowymi aplikacji, do których kontroler ruchu przychodzącego przekazuje ruch. Przedstawia on percentyl P50, P95 i P99 całkowitego czasu żądania i odpowiedzi nadrzędnej. Można również wyświetlić agregacje błędów żądań i opóźnienia. Użyj tego pulpitu nawigacyjnego, aby przejrzeć i poprawić wydajność i skalowalność aplikacji.
Ten pulpit nawigacyjny można pobrać z usługi GitHub.
Importowanie pulpitu nawigacyjnego
Aby zaimportować pulpit nawigacyjny narzędzia Grafana, rozwiń menu po lewej stronie i kliknij pozycję Importuj w obszarze Pulpity nawigacyjne.
Następnie przekaż żądany plik pulpitu nawigacyjnego i kliknij pozycję Załaduj.
Następne kroki
- Skalowanie obciążeń można skonfigurować przy użyciu metryk ruchu przychodzącego zezłomowanego przy użyciu rozwiązania Prometheus przy użyciu narzędzia Kubernetes Event Driven Autoscaler (KEDA). Dowiedz się więcej na temat integracji usługi KEDA z usługą AKS.
- Utwórz i uruchom test obciążeniowy za pomocą usługi Azure Load Testing , aby przetestować wydajność obciążenia i zoptymalizować skalowalność aplikacji.
Azure Kubernetes Service