Konfigurowanie i wyświetlanie metryk usługi Azure Kubernetes Application Network (wersja zapoznawcza)

Ważna

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. 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, świadczoną w miarę możliwości. 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:

Usługa sieciowa Azure Kubernetes Application Network zapewnia szczegółowe metryki dotyczące obciążeń oraz komponentów płaszczyzny danych, takich jak ZTunnel, Istio CNI i Waypoint, przy użyciu metryk usługi Azure Monitor. W tym artykule wyjaśniono, jak skonfigurować i wyświetlić te metryki w usłudze Azure Monitor.

Ograniczenia

Metryki płaszczyzny sterowania nie są obecnie obsługiwane. Dostępne są jednak metryki płaszczyzny danych i można ich używać do monitorowania kondycji i wydajności obciążeń oraz składników usługi Azure Kubernetes Application Network.

Metryki płaszczyzny danych

Metryki płaszczyzny danych obejmują metryki z obciążeń/aplikacji i appnet-system przestrzeni nazw. Usługa Azure Kubernetes Application Network obecnie zapewnia obsługę metryk płaszczyzny danych.

Konfigurowanie metryk płaszczyzny danych

Opcje konfiguracji obszaru roboczego dla metryk płaszczyzny danych

Po włączeniu kolekcji metryk Rozwiązania Prometheus dla klastrów członkowskich usługi Azure Kubernetes Application Network dostępne są następujące opcje konfiguracji obszaru roboczego:

  • Użyj istniejącego obszaru roboczego usługi Azure Monitor.
  • Pomiń identyfikator zasobu obszaru roboczego i użyj domyślnego obszaru roboczego utworzonego dla grupy zasobów.
  • Utwórz nowy obszar roboczy usługi Azure Monitor.

Włącz zbieranie metryk płaszczyzny danych

  1. Włącz zbieranie metryk Prometheus w klastrze członkowskim usługi Azure Kubernetes Application Network przy użyciu polecenia az aks update z parametrem --azure-monitor-workspace-resource-id ustawionym na istniejący identyfikator obszaru roboczego. Jeśli metryki usługi Azure Monitor są już włączone w klastrze członkowskim, możesz przejść do następnego kroku.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Utwórz i zastosuj następującą ConfigMap w przestrzeni nazw kube-system, używając polecenia kubectl apply. Ten ConfigMap umożliwia pozyskiwanie danych z Ztunnel, Istio CNI, waypoint oraz Twojej aplikacji/obciążeń.

    kubectl apply -f - <<EOF
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: ama-metrics-settings-configmap
      namespace: kube-system
    data:
      schema-version: v1
      config-version: ver1
      prometheus-collector-settings: |-
        cluster_alias = ""
        https_config = true
      default-scrape-settings-enabled: |-
        ztunnel = true
        istio-cni = true
      pod-annotation-based-scraping: |-
        podannotationnamespaceregex = ".*"
      default-targets-metrics-keep-list: |-
        ztunnel = ""
        istio-cni = ""
        minimalingestionprofile = true
      default-targets-scrape-interval-settings: |-
        ztunnel = "30s"
        istio-cni = "30s"
        podannotations = "30s"
      debug-mode: |-
        enabled = false
    EOF
    
  3. Dodaj adnotacje do zasobników aplikacji, które chcesz zeskrobać.

    • prometheus.io/scrape: "true" jest wymagane, aby wskazać, że zasobnik powinien zostać zeskropany.
    • prometheus.io/path jest opcjonalnie używany do wskazywania ścieżki, w której są hostowane metryki. W przypadku pominięcia wartość domyślna to /metrics.
    • prometheus.io/port jest opcjonalnie używany do wskazywania portu, na którym są hostowane metryki. W przypadku pominięcia rozwiązanie Prometheus będzie używać zadeklarowanych portów kontenera ze specyfikacji zasobnika. W przypadku kontenerów bez zadeklarowanych portów rozwiązanie Prometheus tworzy obiekt docelowy bez portów (tylko adres IP), który wymaga prawidłowego ponownego etykietowania konfiguracji do pracy z adnotacjami portów. Zaleca się jawne określenie portu w celu zapewnienia niezawodnego złomowania.

    Poniższy przykład definiuje adnotacje dla poda obsługującego metryki pod adresem <pod IP>:15020/metrics

    prometheus.io/scrape: "true"
    prometheus.io/port: "15020"
    prometheus.io/path: "/metrics"
    

    Załadowanie tej konfiguracji przez AMA metrics ReplicaSet może potrwać kilka minut.

Wyświetlanie metryk płaszczyzny danych

  1. Przejdź do obszaru roboczego usługi Azure Monitor w witrynie Azure Portal, aby wysłać zapytanie do metryk przy użyciu rozwiązania PromQL.

  2. Wygeneruj ruch, a następnie wybierz zapytania z uwidocznionych metryk , aby wyświetlić metryki. Możesz na przykład uruchomić następujące zapytanie, aby wyświetlić łączną liczbę żądań obsługiwanych przez punkt końcowy:

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    Poniższy zrzut ekranu przedstawia wyniki przykładowych zapytań:

    Zrzut ekranu przedstawiający wyniki zapytań, aby wyświetlić łączną liczbę żądań obsługiwanych przez punkt drogowy.

Lista uwidocznionych metryk

Składnik Uwidocznione metryki
ZTunnel istio_build
istio_xds_connection_terminations_total
istio_xds_message_total
istio_xds_message_bytes_total
istio_tcp_connections_opened_total
istio_tcp_connections_closed_total
istio_tcp_received_bytes_total
istio_tcp_sent_bytes_total
istio_on_demand_dns
istio_dns_requests_total
istio_dns_upstream_requests
istio_dns_upstream_failures
istio_dns_upstream_request_duration_seconds
workload_manager_active_proxy_count
workload_manager_pending_proxy_count
workload_manager_proxies_started_total
workload_manager_proxies_stopped_total
Istio CNI istio_cni_install_ready
istio_cni_installs_total
nodeagent_reconcile_events_total
ztunnel_connected
Waypoint istio_build
istio_request_bytes_bucket
istio_request_bytes_count
istio_request_bytes_sum
istio_request_duration_milliseconds_bucket
istio_request_duration_milliseconds_count
istio_request_duration_milliseconds_sum
istio_requests_total
istio_response_bytes_bucket
istio_response_bytes_count
istio_response_bytes_sum

Uzyskiwanie dostępu do metryk bezpośrednio z serwerów proxy punktu wyjścia

Oprócz metryk żądania/odpowiedzi Istio, proxy punktów waypoint emitują także metryki usługi Envoy.

  • Aby znaleźć pełną listę metryk emitowanych przez waypoint, możesz przekazać port do serwera proxy waypoint w przestrzeni nazw i wyświetlić listę metryk przy użyciu następujących poleceń:

    # Port-forward to waypoint proxy
    kubectl port-forward -n <namespace> deployment/waypoint 15020:15020 &
    
    # List metrics exposed by waypoint
    curl http://localhost:15020/stats/prometheus | grep -v '^#' | grep -v '^$' | awk -F'{' '{print $1}' | sort -u
    

Wizualizowanie metryk za pomocą narzędzia Grafana w witrynie Azure Portal

  1. Zaimportuj społecznościowe pulpity nawigacyjne Istio.

  2. Wygeneruj ruch dla klastra członkowskiego, a następnie przejdź do obszaru roboczego usługi Azure Monitor w witrynie Azure Portal.

  3. Wybierz pozycję Monitorowanie>pulpitów nawigacyjnych za pomocą narzędzia Grafana.

    Na poniższych zrzutach ekranu przedstawiono przykłady importowania pulpitu nawigacyjnego istio Ztunnel:

    Zrzut ekranu przedstawiający opcję importu pulpitu nawigacyjnego w obszarze roboczym usługi Azure Monitor w witrynie Azure Portal.

    Zrzut ekranu przedstawiający opcje przeglądu dotyczące importowania pulpitu nawigacyjnego usługi Ztunnel w witrynie Azure Portal.

    Zrzut ekranu przedstawiający wizualizacje pulpitu nawigacyjnego usługi Ztunnel w pulpicie nawigacyjnym narzędzia Grafana w witrynie Azure Portal.

Jeśli chcesz skonfigurować Azure Managed Grafana zamiast pulpitów nawigacyjnych z Grafana, zobacz Tworzenie obszaru roboczego Azure Managed Grafana przy użyciu Azure CLI.

Aby uzyskać więcej informacji na temat możliwości i monitorowania usługi Azure Kubernetes Application Network, zobacz następujące artykuły: