View a markdown version of this page

Utilizzo CloudWatch delle metriche con Lambda Web Functions - AWS Lambda

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à.

Utilizzo CloudWatch delle metriche con Lambda Web Functions

AWS Lambda pubblica i parametri delle funzioni Web su Amazon CloudWatch in due namespace:

  • AWS/Lambda/Web— Metriche di richiesta e risposta per ogni endpoint e metriche di utilizzo delle risorse per gli ambienti di esecuzione che servono ogni funzione Web. Lambda centralizza queste metriche nella regione principale della funzione Web, in modo che i valori nella regione principale includano il traffico proveniente da ogni regione servita dall'endpoint.

  • AWS/Lambda/Web/Usage— Metriche di utilizzo e limitazione regionali che mostrano il consumo rispetto alle quote regionali e ai limiti degli endpoint. Queste metriche non sono centralizzate. Rimangono nella regione in cui è stata inoltrata la richiesta.

Lambda pubblica le metriche di richiesta, utilizzo e limitazione solo quando una richiesta produce un valore per esse. Le metriche dell'ambiente di esecuzione sono diverse: Lambda le pubblica ogni minuto per ogni ambiente di esecuzione attivo. Alcune metriche sono scarse: Lambda non pubblica un punto dati pari a 0 per un periodo in cui l'evento non si è verificato. Ad esempio, se nessuna richiesta restituisce una risposta 5xx in un periodo, non HTTPResponseStatusClass5XX ha un punto dati per quel periodo. Le tabelle seguenti descrivono quando Lambda emette ogni metrica. Quando crei allarmi in base a metriche sparse, configura il modo in cui l'allarme tratta i dati mancanti. Per ulteriori informazioni, consulta Configurazione del modo in cui gli CloudWatch allarmi trattano i dati mancanti nella Amazon CloudWatch User Guide.

Metriche di richiesta

Le metriche delle richieste vengono pubblicate nel AWS/Lambda/Web namespace con le dimensioni and. FunctionName EndpointName Usano l'unità. Count Usa la Sum statistica.

Metrica Statistic Quando Lambda lo emette Description
ExecutedRequests Sum Solo per i periodi in cui almeno una richiesta ha raggiunto un ambiente di esecuzione. Il numero di richieste che hanno raggiunto un ambiente di esecuzione. Le richieste che Lambda limita o rifiuta prima che raggiungano un ambiente di esecuzione non vengono conteggiate.
HTTPResponseStatusClass4XX Sum Sparso. Solo per periodi con almeno una risposta 4xx. Il numero di risposte restituite ai chiamanti con un codice di stato compreso tra 400 e 499. La risposta può provenire dall'applicazione o da Lambda, incluse le richieste limitate che ricevono HTTP 429. Le richieste che Lambda rifiuta prima di identificare l'endpoint, ad esempio le richieste non corrette, non vengono conteggiate.
HTTPResponseStatusClass5XX Sum Sparso. Solo per periodi con almeno una risposta 5xx. Il numero di risposte restituite ai chiamanti con un codice di stato compreso tra 500 e 599. La risposta può provenire dalla tua applicazione o da Lambda. Durante un'interruzione del servizio, questa metrica potrebbe sottostimare gli errori.

Le metriche della classe di stato contano il codice di stato ricevuto dal chiamante. Non distinguono le risposte scritte dall'applicazione dalle risposte restituite da Lambda. Se l'applicazione ha già inviato lo stato e le intestazioni della risposta, un errore successivo, ad esempio uno streaming interrotto o un timeout della richiesta, viene conteggiato nel codice di stato originale. Per identificare l'origine di un errore, utilizzate l'intestazione della lambda-web-error-type risposta e i log. Per contare separatamente gli errori delle applicazioni, pubblica le tue metriche. Per ulteriori informazioni, consulta Pubblicazione di metriche personalizzate con il formato metrico incorporato.

Per stimare il tasso di errore del server, dividi HTTPResponseStatusClass5XX per ExecutedRequests lo stesso periodo con la matematica CloudWatch metrica. Ad esempio, utilizzateFILL(m5xx, 0) / m_executed, where m5xx e m_executed are gli ID delle due metriche. Poiché HTTPResponseStatusClass5XX è scarso, usalo FILL in modo che i periodi senza errori restituiscano 0 invece di non avere alcun valore. HTTPResponseStatusClass5XXconta anche 5xx risposte che Lambda ha restituito prima che una richiesta raggiungesse un ambiente di esecuzione. ExecutedRequestsnon conta queste risposte, quindi il rapporto può sovrastimare la frequenza durante un'interruzione del servizio.

Le metriche di richiesta nella regione d'origine aggregano il traffico proveniente da ogni regione servita dall'endpoint, in modo che un allarme nella regione d'origine copra l'intero endpoint. Crea allarmi e dashboard in base ai valori della regione d'origine. Non fare affidamento su queste metriche in altre regioni; vedi. Telemetria in ogni regione

Lambda emette i parametri della richiesta quando una richiesta viene completata. Per una richiesta di lunga durata, il punto dati può apparire fino al timeout della richiesta successivo all'avvio della richiesta, in modo che gli errori dovuti a richieste lunghe possano arrivare agli allarmi in ritardo. Per il timeout della richiesta, vedi. Timeout della richiesta

Metriche dell'ambiente di esecuzione

Le metriche dell'ambiente di esecuzione descrivono le risorse utilizzate dagli ambienti di esecuzione che servono le funzioni Web. Lambda li pubblica nello spazio dei AWS/Lambda/Web nomi con la FunctionName dimensione e li centralizza nell'area principale della funzione Web.

Lambda emette queste metriche una volta al minuto per ogni ambiente di esecuzione attivo, quindi potrebbero essere scarse se non ci sono ambienti di esecuzione attivi. Un valore può essere 0. Un ambiente di esecuzione può pubblicare più di un punto dati al minuto, ad esempio quando si inizializza e quando si spegne, quindi non utilizzare la SampleCount statistica per contare gli ambienti attivi. Per contarli per un endpoint, usa. EndpointActiveEnvironments

Metrica Unità Statistica Description
EnvironmentActiveTime Milliseconds Sum L'ora in cui gli ambienti di esecuzione della funzione erano attivi, compresa l'inizializzazione. Ogni punto dati rappresenta il tempo di attività di un ambiente rispetto al punto dati precedente, quindi la somma in un periodo è il tempo totale impiegato dall'ambiente.
EnvironmentCPUTime Milliseconds Sum Il tempo di vCPU consumato dagli ambienti di esecuzione della funzione, inclusa l'inizializzazione.
EnvironmentMaxMemoryUsage Megabytes Maximum Il picco di memoria utilizzato finora da un ambiente di esecuzione nel corso del suo ciclo di vita.
EnvironmentConcurrentRequests Count Maximum Il numero massimo di richieste fornite contemporaneamente da un ambiente di esecuzione durante il periodo.
ResponseBytes Bytes Sum Il numero di byte di risposta inviati dagli ambienti di esecuzione della funzione.

Le metriche dell'ambiente di esecuzione non includono la EndpointName dimensione. Coprono tutti gli endpoint della funzione Web.

Metriche di utilizzo e limitazione a livello regionale

Le metriche di utilizzo e limitazione mostrano quanto l'account e gli endpoint sono vicini ai limiti regionali e quale limite ha limitato una richiesta. La quota di frequenza di richiesta dell'account e la quota vCPU dell'account Arm64 si applicano separatamente in ciascuna regione Regione AWS, pertanto Lambda pubblica queste metriche in ciascuna regione e non le centralizza. Per vedere l'utilizzo per una regione, visualizza le metriche in quella regione. Per le quote, vedi. Funzioni Web Lambda

Queste metriche sono pubblicate nel AWS/Lambda/Web/Usage namespace con le dimensioniFunctionName, EndpointName e. ExecutionRegion Usano l'unità. Count

Metrica Statistic Quando Lambda lo emette Description
ExecutedRequests Sum Solo per i periodi in cui almeno una richiesta ha raggiunto un ambiente di esecuzione nella regione. Il numero di richieste che hanno raggiunto un ambiente di esecuzione nella regione.
EndpointActiveEnvironments Maximum Con richieste all'endpoint. Il valore può essere 0. Non ci sono punti dati finché l'endpoint non riceve richieste. Il numero di ambienti di esecuzione attivi dell'endpoint nella regione. Confronta questo valore conmaxEnvironments.
AccountRequestThrottles Sum Sparso. Solo per periodi con almeno un acceleratore di questo tipo. Il numero di richieste all'endpoint che sono state limitate perché l'account ha raggiunto la quota di frequenza delle richieste nella regione.
EndpointRequestThrottles Sum Scarso. Solo per periodi con almeno un acceleratore di questo tipo. Il numero di richieste che sono state limitate perché l'endpoint ha raggiunto il limite di frequenza delle richieste (). rateLimit
AccountActiveVCPUArm64Throttles Sum Sparso. Solo per periodi con almeno un acceleratore di questo tipo. Il numero di richieste all'endpoint che sono state limitate perché servite avrebbe superato la quota di vCPU Arm64 dell'account nella regione. Come le altre metriche relative all'accelerazione, conta solo le accelerazioni di questo endpoint. Per vedere il totale dell'account, sommalo tra gli endpoint.
EndpointActiveEnvironmentThrottles Sum Sparso. Solo per periodi con almeno un acceleratore di questo tipo. Il numero di richieste che sono state limitate perché servite avrebbe superato l'impostazione dell'endpoint. maxEnvironments

Lambda attribuisce ogni richiesta limitata a un limite, quindi una richiesta limitata incrementa al massimo una metrica di accelerazione. Le richieste che Lambda rallenta perché vengono inizializzati troppi ambienti di esecuzione contemporaneamente restituiscono HTTP 429 con il tipo di Platform.EndpointConcurrentInitThrottle errore ma non incrementano alcuna metrica di accelerazione. Nel AWS/Lambda/Web namespace vengono conteggiate HTTPResponseStatusClass4XX anche le richieste limitate.

Per monitorare un PerRegion endpoint MultiRegion OR, visualizza o invia un allarme sulle metriche di utilizzo in ciascuna regione oppure combinale in una dashboard interregionale. CloudWatch

Utilizzo di metriche con altre funzionalità CloudWatch

Poiché le AWS/Lambda/Web metriche sono centralizzate nella regione d'origine, puoi utilizzarle con le CloudWatch funzionalità standard di quella regione, tra cui:

  • Amazon CloudWatch Observability Access Manager: condividi i parametri di Web Function con un account di monitoraggio centrale in modo che un account possa osservare molti account applicativi.

  • Dashboard e allarmi: crea dashboard e allarmi in base ai parametri della regione principale per coprire l'intera distribuzione multiregionale.

Impostazione di un allarme su 5xx risposte

Crea CloudWatch allarmi per rilevare problemi come tassi di errore elevati o limitazioni.

Il comando seguente crea un allarme che si attiva quando i chiamanti ricevono più di cinque risposte 5xx dall'endpoint in un periodo di cinque minuti.

aws cloudwatch put-metric-alarm \ --alarm-name my-web-app-prod-5xx \ --namespace AWS/Lambda/Web \ --metric-name HTTPResponseStatusClass5XX \ --statistic Sum \ --period 300 \ --threshold 5 \ --comparison-operator GreaterThanThreshold \ --evaluation-periods 1 \ --treat-missing-data notBreaching \ --dimensions Name=FunctionName,Value=my-web-app Name=EndpointName,Value=prod \ --alarm-actions arn:aws:sns:us-east-1:111122223333:my-alerts

Sostituisci i valori seguenti:

  • my-web-app-prod-5xx— Un nome per l'allarme.

  • my-web-app— Il nome della tua funzione Web.

  • prod: il nome dell'endpoint.

  • arn:aws:sns:us-east-1:111122223333:my-alerts— L'ARN dell'argomento Amazon SNS che riceve notifiche di allarme.

--treat-missing-data notBreachingè importante qui. HTTPResponseStatusClass5XXè una metrica sparsa, quindi i periodi senza risposte 5xx non producono punti dati. Senza questa impostazione, l'allarme entrerebbe nello INSUFFICIENT_DATA stato durante quei periodi.

Nota

Le metriche delle funzioni Web non includono una dimensione di revisione. Per attribuire errori a una revisione durante una distribuzione Canary, imposta una variabile di ambiente che identifichi la build, ad esempio in ogni revisioneAPP_VERSION, e includi il suo valore nei log strutturati o come dimensione nelle metriche pubblicate con il formato metrico incorporato. Gli eventi del registro di sistema, ad esempio, registrano platform.initStart anche l'revisionIdesecuzione di ogni ambiente di esecuzione e l'intestazione di lambda-web-logstream risposta identifica il flusso di log dell'ambiente di esecuzione che ha fornito una richiesta. Per la procedura di rollback, vedere. Tornare indietro