Esportazione delle metriche - AWS App Mesh

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esportazione delle metriche

Envoy emette molte statistiche sia sul proprio funzionamento che su varie dimensioni del traffico in entrata e in uscita. Per ulteriori informazioni sulle statistiche di Envoy, consultaStatistichenella documentazione Envoy. Queste metriche sono disponibili tramite/statsendpoint sulla porta di amministrazione del proxy, che in genere è9901.

Ilstatil prefisso sarà diverso a seconda che si utilizzino uno o più ascoltatori. Di seguito sono riportati alcuni esempi per illustrare le differenze.

avvertimento

Se aggiorni il tuo listener singolo alla funzione listener multiplo, potresti subire una modifica improvvisa dovuta al prefisso stat aggiornato illustrato nella tabella seguente.

Ti consigliamo di utilizzare l'immagine Envoy1.22.2.1-prodo dopo. Ciò consente di visualizzare nomi di metriche simili nell'endpoint Prometheus.

Listener singolo (SL) /Statistiche esistenti con prefisso listener «ingress» Ascoltatori multipli (ML) /Nuove statistiche con «ingress». <protocol>. <port>"prefisso listener

http.*ingress*.rds.rds_ingress_http_5555.version_text

http.*ingress.http.5555*.rds.rds_ingress_http_5555.version_text

http.*ingress.http.6666*.rds.rds_ingress_http_6666.version_text

listener.0.0.0.0_15000.http.*ingress*.downstream_rq_2xx

listener.0.0.0.0_15000.http.*ingress.http.5555*.downstream_rq_2xx

listener.0.0.0.0_15000.http.*ingress.http.6666*.downstream_rq_2xx

http.*ingress*.downstream_cx_length_ms

http.*ingress.http.5555*.downstream_cx_length_ms

http.*ingress.http.6666*.downstream_cx_length_ms

Per ulteriori informazioni sull'endpoint delle statistiche, consultaEndpoint delle statistichenella documentazione Envoy. Per ulteriori informazioni sull'interfaccia di amministrazione, consultaAbilita l'interfaccia di amministrazione del proxy Envoy.

Prometheus per App Mesh con Amazon EKS

Prometheus è un toolkit open source per il monitoraggio e l'invio di avvisi. Una delle sue funzionalità è quella di specificare un formato per l'emissione di metriche che può essere utilizzato da altri sistemi. Per ulteriori informazioni su Prometheus, consultaPanoramicanella documentazione di Prometheus. Envoy può emettere le sue metriche tramite il suo endpoint di statistica inserendo il parametro/stats?format=prometheus.

Per i clienti che utilizzano Envoy image build v1.22.2.1-prod, sono disponibili due dimensioni aggiuntive per indicare le statistiche specifiche del listener di ingresso:

  • appmesh.listener_protocol

  • appmesh.listener_port

Di seguito è riportato un confronto tra le statistiche esistenti di Prometheus e le nuove statistiche.

  • Statistiche esistenti con prefisso listener «ingress»

    envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 931433
  • Nuove statistiche con «ingress. <protocol>. <port>"+ Appmesh Envoy Image v1.22.2.1-prod o versione successiva

    envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",appmesh_listener_protocol="http",appmesh_listener_port="5555",envoy_http_conn_manager_prefix="ingress"} 20
  • Nuove statistiche con «ingress. <protocol>. <port>"+ Envoy Imagebuild personalizzato

    envoy_http_http_5555_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 15983

Per più ascoltatori,cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port>il cluster speciale sarà specifico per l'ascoltatore.

  • Statistiche esistenti con prefisso listener «ingress»

    envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",Mesh="multiple-listeners-mesh",VirtualGateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_http_15001"} 0
  • Nuove statistiche con «ingress. <protocol>. <port>»

    envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_1111_http_15001"} 0 envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_2222_http_15001"} 0

Installazione di Prometheus

  1. Aggiungi il repository EKS a Helm:

    helm repo add eks https://aws.github.io/eks-charts
  2. Installazione di App Mesh Prometheus

    helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ --namespace appmesh-system

Esempio di Prometheus

Nell'esempio seguente viene creata unaPersistentVolumeClaimper l'archiviazione persistente di Prometheus.

helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ --namespace appmesh-system \ --set retention=12h \ --set persistentVolumeClaim.claimName=prometheus

Procedura dettagliata per l'utilizzo di Prometheus

Per saperne di più su Prometheus e Prometheus con Amazon EKS

CloudWatch per App Mesh

Emissione delle statistiche di Envoy a CloudWatch di Amazon EKS

È possibile installare il plugin CloudWatch Agisci sul tuo cluster e configuralo per raccogliere un sottoinsieme di metriche dai tuoi proxy. Se non disponi già di un cluster Amazon EKS, puoi crearne uno seguendo i passaggi inProcedura guidata: App Meshsul GitHub. È possibile installare un'applicazione di esempio nel cluster seguendo la stessa procedura dettagliata.

Per impostare le autorizzazioni IAM appropriate per il cluster e installare l'agente, segui i passaggi indicati inInstallazione di CloudWatch Agente con Prometheus Metrics Collection. L'installazione predefinita contiene una configurazione di scrape di Prometheus che richiama un utile sottoinsieme di statistiche di Envoy. Per ulteriori informazioni, consulta la paginaParametri Prometheus per App Mesh.

Per creare un'App Mesh personalizzata CloudWatch dashboard configurato per visualizzare le metriche che l'agente sta raccogliendo, segui i passaggi indicati nelVisualizzazione delle metriche Prometheustutorial. I grafici inizieranno a essere compilati con le metriche corrispondenti non appena il traffico entra nell'applicazione App Mesh.

Applicazione di filtri ai parametri di filtri per CloudWatch

App Meshestensione delle estensioni delle estensionifornisce un sottoinsieme di metriche utili che forniscono informazioni sul comportamento delle risorse definite nella mesh. Dal momento che CloudWatchl'agente supporta lo scraping delle metriche di Prometheus, puoi fornire una configurazione di scrape per selezionare le metriche che desideri estrarre da Envoy e inviarle a CloudWatch.

Puoi trovare un esempio di metriche di scraping utilizzando Prometheus nel nostroEstensione delle estensioni delle estensionispiegazione guidata.

CloudWatch Esempio

Puoi trovare un esempio di configurazione di CloudWatch nel nostroAWSRepository dei.

Procedure dettagliate per l'utilizzo CloudWatch

Estensione Parametri per App Mesh

Envoy genera centinaia di metriche suddivise in diverse dimensioni. Le metriche non sono semplici nel modo in cui si riferiscono ad App Mesh. Nel caso dei servizi virtuali, non esiste alcun meccanismo per sapere con certezza quale servizio virtuale sta comunicando con un determinato nodo virtuale o gateway virtuale.

L'estensione App Mesh metrics migliora i proxy Envoy in esecuzione nella tua mesh. Questo miglioramento consente ai proxy di emettere metriche aggiuntive che sono consapevoli delle risorse definite. Questo piccolo sottoinsieme di metriche aggiuntive ti aiuterà a comprendere meglio il comportamento delle risorse che hai definito in App Mesh.

Per abilitare l'estensione App Mesh metrics, imposta la variabile di ambienteAPPMESH_METRIC_EXTENSION_VERSIONa1.

APPMESH_METRIC_EXTENSION_VERSION=1

Per ulteriori informazioni sulle variabili di configurazione Envoy, consultaVariabili di configurazione Envoy.

Metriche relative al traffico in entrata

  • ActiveConnectionCount

    • envoy.appmesh.ActiveConnectionCount— Numero di connessioni TCP attive.

    • Dimensioni— App Mesh VirtualNode, VirtualGateway

  • NewConnectionCount

    • envoy.appmesh.NewConnectionCount— Numero totale di connessioni TCP.

    • Dimensioni— App Mesh VirtualNode, VirtualGateway

  • ProcessedBytes

    • envoy.appmesh.ProcessedBytes— Byte TCP totali inviati e ricevuti dai client downstream.

    • Dimensioni— App Mesh VirtualNode, VirtualGateway

  • RequestCount

    • envoy.appmesh.RequestCount— Il numero di richieste HTTP elaborate.

    • Dimensioni— App Mesh VirtualNode, VirtualGateway

  • GrpcRequestCount

    • envoy.appmesh.GrpcRequestCount— Il numero di richieste GPRC elaborate.

    • Dimensioni— App Mesh VirtualNode, VirtualGateway

Metriche relative al traffico in uscita

Vedrai dimensioni diverse nelle metriche in uscita a seconda che provengano da un nodo virtuale o da un gateway virtuale.

  • TargetProcessedBytes

    • envoy.appmesh.TargetProcessedBytes— Byte TCP totali inviati e ricevuti da destinazioni upstream.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_2XX_Count

    • envoy.appmesh.HTTPCode_Target_2XX_Count— Il numero di richieste HTTP a un target upstream che hanno generato una risposta HTTP 2xx.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_3XX_Count

    • envoy.appmesh.HTTPCode_Target_3XX_Count— Il numero di richieste HTTP a un target upstream che hanno generato una risposta HTTP 3xx.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_4XX_Count

    • envoy.appmesh.HTTPCode_Target_4XX_Count— Il numero di richieste HTTP a un target upstream che hanno generato una risposta HTTP 4xx.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • HTTPCode_Target_5XX_Count

    • envoy.appmesh.HTTPCode_Target_5XX_Count— Il numero di richieste HTTP a un target upstream che hanno generato una risposta HTTP 5xx.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • RequestCountPerTarget

    • envoy.appmesh.RequestCountPerTarget— Il numero di richieste inviate a una destinazione upstream.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

  • TargetResponseTime

    • envoy.appmesh.TargetResponseTime— Il tempo trascorso da quando viene effettuata una richiesta a una destinazione upstream a quando viene ricevuta la risposta completa.

    • Dimensioni:

      • Dimensioni del nodo virtuale: mesh, VirtualNode, TargetVirtualService, TargetVirtualNode

      • Dimensioni del gateway virtuale: mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

Datadog per App Mesh

Datadog è un'applicazione di monitoraggio e sicurezza per il monitoraggio end-to-end, le metriche e la registrazione delle applicazioni cloud. Datadog rende la tua infrastruttura, le tue applicazioni e le applicazioni di terze parti completamente osservabili.

Installazione di Datadog

  • EKS - Per configurare Datadog con EKS, segui questi passaggi dalDocumenti Datadog.

  • ECS EC2 - Per configurare Datadog con ECS EC2, segui questi passaggi dalDocumenti Datadog.

Per ulteriori informazioni su Datadog