Metrische gegevens van Azure Kubernetes Application Network configureren en weergeven (preview)

Belangrijk

AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

Azure Kubernetes Application Network biedt uitgebreide metrische gegevens voor uw workloads en de azure Kubernetes Application Network-gegevensvlakonderdelen (ZTunnel, Istio CNI en Waypoint) via metrische gegevens van Azure Monitor. In dit artikel wordt uitgelegd hoe u deze metrische gegevens configureert en weergeeft in Azure Monitor.

Beperkingen

Metrische gegevens van besturingsvlak worden momenteel niet ondersteund. Er zijn echter metrische gegevens over het gegevensvlak beschikbaar en u kunt deze gebruiken om de status en prestaties van uw workloads en Azure Kubernetes Application Network-onderdelen te bewaken.

Gegevensvlakstatistieken

Metrische data van het datavlak omvatten metrische data van uw workloads/applicaties en de appnet-system naamruimte. Azure Kubernetes Application Network biedt momenteel alleen ondersteuning voor metrische gegevens over het gegevensvlak.

Gegevensvlakmetrische gegevens configureren

Configuratieopties voor werkruimten voor datavlakmetriek

Wanneer u de verzameling metrische gegevens van Prometheus inschakelt voor lidclusters van Azure Kubernetes Application Network, hebt u de volgende opties voor de configuratie van de werkruimte:

  • Gebruik een bestaande Azure Monitor-werkruimte.
  • Laat de resource-id van de werkruimte weg en gebruik de standaardwerkruimte die is gemaakt voor uw resourcegroep.
  • Maak een nieuwe Azure Monitor-werkruimte.

Verzameling metrische gegevens van gegevensvlak inschakelen

  1. Schakel Prometheus-metrische gegevensverzameling in op uw Azure Kubernetes Application Network-lidcluster met behulp van de az aks update-opdracht met de --azure-monitor-workspace-resource-id-parameter die is ingesteld op uw bestaande workspace-ID. Als Metrische gegevens van Azure Monitor al zijn ingeschakeld in uw lidcluster, kunt u doorgaan met de volgende stap.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. Maak en pas de volgende ConfigMap toe in de kube-system naamruimte met behulp van de kubectl apply opdracht. Met deze ConfigMap kunt u scraping van Ztunnel, Istio CNI, waypoint en uw toepassing/workloads mogelijk maken.

    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. Voeg aantekeningen toe aan de toepassingspods die u wilt scrapen.

    • prometheus.io/scrape: "true" is vereist om aan te geven dat de pod moet worden geschraapt.
    • prometheus.io/path wordt optioneel gebruikt om het pad aan te geven waar metrische gegevens worden gehost. Als u dit weglaat, wordt deze standaard ingesteld op /metrics.
    • prometheus.io/port wordt optioneel gebruikt om de poort aan te geven waar metrische gegevens worden gehost. Als u dit weglaat, gebruikt Prometheus de gedeclareerde poorten van de container uit de podspecificatie. Voor containers zonder gedeclareerde poorten maakt Prometheus een doel zonder poort (alleen met IP-adres), waarvoor een juiste configuratie voor het herlabelen nodig is om met poortaantekeningen te functioneren. Het wordt aanbevolen om expliciet de poort op te geven om betrouwbare scraping te garanderen.

    In het volgende voorbeeld worden aantekeningen gedefinieerd voor een pod waarop metrische gegevens worden gehost op <pod IP>:15020/metrics

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

    Het kan enkele minuten duren voordat de replicaset met metrische AMA-gegevens deze configuratie laadt.

Metrische gegevens van gegevensvlak weergeven

  1. Navigeer naar uw Azure Monitor-werkruimte in Azure Portal om een query uit te voeren op de metrische gegevens met behulp van PromQL.

  2. Genereer verkeer en selecteer vervolgens query's uit de weergegeven metrische gegevens om metrische gegevens weer te geven. U kunt bijvoorbeeld de volgende query uitvoeren om het totale aantal aanvragen weer te geven dat wordt verwerkt via waypoint:

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    In de volgende schermopname ziet u de resultaten voor de voorbeeldquery's:

    Schermopname van de resultaten van de query's om het totale aantal aanvragen weer te geven dat via waypoint wordt verwerkt.

Lijst van kengetallen weergegeven

Onderdeel Metrische gegevens worden weergegeven
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

Toegang tot metrische gegevens rechtstreeks vanuit waypoint-proxy's

Afgezien van de metrische gegevens van istio-aanvragen/antwoorden, verzenden waypoint-proxy's ook envoy-metrische gegevens.

  • Als u een volledige lijst met metrische gegevens wilt vinden die via waypoint worden verzonden, kunt u doorsturen naar een waypoint-proxy in uw naamruimte en de metrische gegevens weergeven met behulp van de volgende opdrachten:

    # 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
    

Metrische gegevens visualiseren met Grafana in Azure Portal

  1. Importeer de Dashboards van de Istio-community.

  2. Genereer verkeer voor uw lidcluster en navigeer vervolgens naar uw Azure Monitor-werkruimte in Azure Portal.

  3. Selecteer Bewakingsdashboards met Grafana>.

    In de volgende schermopnamen ziet u voorbeelden van het importeren van het Istio Ztunnel-dashboard:

    Schermopname van de optie Dashboard importeren in de Azure Monitor-werkruimte in Azure Portal.

    Schermopname van de controleopties voor het importeren van het Ztunnel-dashboard in Azure Portal.

    Schermopname van Ztunnel-dashboardvisualisaties in een Grafana-dashboard in Azure Portal.

Als u Azure Managed Grafana wilt configureren in plaats van Dashboards met Grafana, raadpleegt u Een Azure Managed Grafana-werkruimte maken met behulp van de Azure CLI.

Zie de volgende artikelen voor meer informatie over de waarneembaarheid en bewaking van Azure Kubernetes Application Network: