Esportazione di parametri - 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 di parametri

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

Ilstat prefisso sarà diverso a seconda che si utilizzino ascoltatori singoli o multipli. Di seguito sono riportati alcuni esempi per illustrare le differenze.

avvertimento

Se aggiorni il tuo listener singolo alla funzione multi-listener, potresti riscontrare un cambiamento radicale a causa del prefisso statistico aggiornato illustrato nella tabella seguente.

Ti consigliamo di utilizzare l'immagine di Envoy1.22.2.1-prod o una versione successiva. Ciò consente di visualizzare nomi di metriche simili nell'endpoint Prometheus.

Single Listener (SL) /Statistiche esistenti con prefisso listener «ingress» Ascoltatori multipli (ML) /Nuove statistiche con «ingresso». <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 stats, consulta l'endpoint Statistics nella documentazione di 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 kit di strumenti di monitoraggio e avvisi open source. Una delle sue funzionalità consiste nello specificare un formato per l'emissione di metriche che possono essere utilizzate da altri sistemi. Per ulteriori informazioni su Prometheus, consulta Panoramica nella documentazione di Prometheus. Envoy può emettere le sue metriche tramite il suo endpoint stats 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 «ingresso». <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 «ingresso». <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, il clustercds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port> 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 «ingresso». <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

Di seguito è riportato un esempio di creazione di un archivio persistentePersistentVolumeClaim per 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 CloudWatch da Amazon EKS

Puoi installare l' CloudWatch agente nel tuo cluster e configurarlo per raccogliere un sottoinsieme di metriche dai tuoi proxy. Se non disponi già di un cluster Amazon EKS, puoi crearne uno seguendo la procedura descritta in Walkthrough: App Mesh with Amazon EKS attivo 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 in Installare l' CloudWatch agente con Prometheus Metrics Collection. L'installazione predefinita contiene una configurazione di scrape di Prometheus che estrae un utile sottoinsieme di statistiche di Envoy. Per ulteriori informazioni, consulta Prometheus Parametri per App Mesh.

Per creare una CloudWatch dashboard personalizzata di App Mesh configurata per visualizzare le metriche che l'agente sta raccogliendo, segui i passaggi del tutorial Visualizzazione delle metriche di Prometheus. I grafici inizieranno a essere compilati con le metriche corrispondenti non appena il traffico entra nell'applicazione App Mesh.

Applicazione di filtri ai parametri per CloudWatch

L'estensione delle metriche App Mesh fornisce un sottoinsieme di metriche utili che forniscono informazioni sul comportamento delle risorse che definisci nella tua mesh. Poiché l' CloudWatchagente supporta lo scraping delle metriche di Prometheus, puoi fornire una configurazione di scrape per selezionare le metriche che desideri estrarre da Envoy e inviarle CloudWatch.

Puoi trovare un esempio di metriche di scraping utilizzando Prometheus nella nostra guida dettagliata di Metrics Extension.

CloudWatch Esempio

Puoi trovare una configurazione di esempio di CloudWatch nel nostro archivio diAWS campioni.

Procedure dettagliate per l'utilizzo CloudWatch

Estensione dei parametri per App Mesh

Envoy genera centinaia di metriche suddivise in alcune dimensioni diverse. 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 delle metriche App Mesh 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 delle metriche App Mesh, imposta la variabileAPPMESH_METRIC_EXTENSION_VERSION di ambiente su1.

APPMESH_METRIC_EXTENSION_VERSION=1

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

Metriche relative al traffico in entrata

  • ActiveConnectionCount

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

    • Dimensioni: maglia VirtualNode, VirtualGateway

  • NewConnectionCount

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

    • Dimensioni: maglia VirtualNode, VirtualGateway

  • ProcessedBytes

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

    • Dimensioni: maglia VirtualNode, VirtualGateway

  • RequestCount

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

    • Dimensioni: maglia VirtualNode, VirtualGateway

  • GrpcRequestCount

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

    • Dimensioni: maglia VirtualNode, VirtualGateway

Metriche relative al traffico in uscita

Vedrai dimensioni diverse nelle metriche in uscita in base al fatto che provengano da un nodo virtuale o da un gateway virtuale.

  • TargetProcessedBytes

    • envoy.appmesh.TargetProcessedBytes— Byte TCP totali inviati e ricevuti da destinazioni a monte di Envoy.

    • 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 indirizzate a un target a monte di Envoy che hanno prodotto 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 indirizzate a un target a monte di Envoy che hanno portato a 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 indirizzate a un target a monte di Envoy che hanno prodotto 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 indirizzate a un target a monte di Envoy che hanno prodotto 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 un target a monte di Envoy.

    • 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 un target a monte di Envoy 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 completo, le metriche e la registrazione delle applicazioni cloud. Datadog rende l'infrastruttura, le applicazioni e le applicazioni di terze parti completamente osservabili.

Installazione di Datadog

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

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

Per ulteriori informazioni su Datadog