Freigeben über


Konfigurieren und Anzeigen von Azure Kubernetes-Anwendungsnetzwerkmetriken (Vorschau)

Von Bedeutung

AKS-Vorschaufunktionen sind auf Selbstbedienungsbasis und freiwillig verfügbar. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Das Azure Kubernetes-Anwendungsnetzwerk bietet umfassende Metriken für Ihre Workloads und die Azure Kubernetes Application Network-Datenebenenkomponenten (ZTunnel, Istio CNI und Waypoint) über Azure Monitor-Metriken. In diesem Artikel wird erläutert, wie Sie diese Metriken in Azure Monitor konfigurieren und anzeigen.

Einschränkungen

Steuerungsebenenmetriken werden derzeit nicht unterstützt. Datenebenenmetriken sind jedoch verfügbar, und Sie können sie verwenden, um die Integrität und Leistung Ihrer Workloads und Azure Kubernetes Application Network-Komponenten zu überwachen.

Datenebenenmetriken

Metriken der Datenebene umfassen Metriken aus Ihren Workloads/Anwendungen und dem appnet-system Namespace. Das Azure Kubernetes-Anwendungsnetzwerk bietet derzeit nur Unterstützung für Datenebenenmetriken.

Konfigurieren von Datenebenenmetriken

Arbeitsbereichskonfigurationsoptionen für Datenebenenmetriken

Wenn Sie die Prometheus-Metriksammlung für Azure Kubernetes Application Network-Membercluster aktivieren, haben Sie die folgenden Optionen für die Arbeitsbereichskonfiguration:

  • Verwenden Sie einen vorhandenen Azure Monitor-Arbeitsbereich.
  • Lassen Sie die Arbeitsbereichsressourcen-ID aus, und verwenden Sie den standardarbeitsbereich, der für Ihre Ressourcengruppe erstellt wurde.
  • Erstellen Sie einen neuen Azure Monitor-Arbeitsbereich.

Aktivieren Sie die Sammlung von Datenebenenkennzahlen

  1. Aktivieren Sie die Prometheus-Metriken-Sammlung auf Ihrem Azure Kubernetes Application Network-Mitgliedscluster, indem Sie den az aks update-Befehl verwenden und den --azure-monitor-workspace-resource-id-Parameter auf Ihre vorhandene Arbeitsbereichs-ID setzen. Wenn Azure Monitor-Metriken bereits in Ihrem Mitgliedscluster aktiviert sind, können Sie mit dem nächsten Schritt fortfahren.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Erstellen und anwenden Sie die folgende ConfigMap im kube-system Namespace mithilfe des kubectl apply Befehls. Diese ConfigMap ermöglicht das Scraping von Ztunnel, Istio CNI, Waypoint und Ihrer Anwendung/Workloads.

    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. Fügen Sie Anmerkungen zu den Anwendungspods hinzu, die Sie entfernen möchten.

    • prometheus.io/scrape: "true" ist erforderlich, um anzugeben, dass der Pod entfernt werden soll.
    • prometheus.io/path optional verwendet wird, um den Pfad anzugeben, in dem Metriken gehostet werden. Wenn dieser Wert nicht angegeben wird, wird standardmäßig auf /metrics gesetzt.
    • prometheus.io/port optional verwendet wird, um den Port anzugeben, an dem Metriken gehostet werden. Ohne Angabe verwendet Prometheus die deklarierten Ports des Containers aus der Pod-Spezifikation. Für Container ohne deklarierte Ports erstellt Prometheus ein portfreies Ziel (nur IP), das eine ordnungsgemäße Neubezeichnungskonfiguration erfordert, um mit Portanmerkungen zu arbeiten. Es wird empfohlen, den Port explizit anzugeben, um ein zuverlässiges Scraping sicherzustellen.

    Im folgenden Beispiel werden Anmerkungen für einen Pod definiert, der Metriken hostet: <pod IP>:15020/metrics

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

    Es kann einige Minuten dauern, bis die AMA-Metrik ReplicaSet diese Konfiguration lädt.

Datenebenenmetriken anzeigen

  1. Navigieren Sie zum Azure Monitor-Arbeitsbereich im Azure-Portal, um die Metriken mithilfe von PromQL abzufragen.

  2. Generieren Sie datenverkehr, und wählen Sie dann Abfragen aus den verfügbar gemachten Metriken aus, um Metriken anzuzeigen. Sie können z. B. die folgende Abfrage ausführen, um die Gesamtanzahl der anforderungen anzuzeigen, die per Waypoint verarbeitet werden:

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    Der folgende Screenshot zeigt Ergebnisse für die Beispielabfragen:

    Screenshot der Ergebnisse der Abfragen, um die Gesamtanzahl der anforderungen anzuzeigen, die per Waypoint verarbeitet werden.

Liste der verfügbar gemachten Metriken

Bestandteil Metriken offengelegt
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
Wegpunkt 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

Zugreifen auf Metriken direkt von Waypoint-Proxys

Neben den Istio-Anforderungs-/Antwortmetriken geben Waypoint-Proxys auch Envoy-Metriken aus.

  • Um eine vollständige Liste der metriken zu finden, die von WayPoint ausgegeben werden, können Sie zu einem Waypoint-Proxy in Ihrem Namespace portieren und die Metriken mithilfe der folgenden Befehle auflisten:

    # 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
    

Visualisieren von Metriken mit Grafana im Azure-Portal

  1. Importieren Sie die Istio-Community-Dashboards.

  2. Generieren Sie Datenverkehr für Ihren Mitgliedscluster, und navigieren Sie dann im Azure-Portal zu Ihrem Azure Monitor-Arbeitsbereich.

  3. Wählen SieÜberwachungsdashboards> mit Grafana aus.

    Die folgenden Screenshots zeigen Beispiele für den Import des Istio Ztunnel-Dashboards:

    Screenshot der Option

    Screenshot der Überprüfungsoptionen für das Importieren des Ztunnel-Dashboards im Azure-Portal.

    Screenshot der Ztunnel-Dashboardvisualisierungen in einem Grafana-Dashboard im Azure-Portal.

Wenn Sie Azure Managed Grafana anstelle von Dashboards mit Grafana konfigurieren möchten, lesen Sie " Erstellen eines Azure Managed Grafana"-Arbeitsbereichs mithilfe der Azure CLI.

Weitere Informationen zu Azure Kubernetes Application Network Observability und Monitoring finden Sie in den folgenden Artikeln: