Você pode monitorar as funções do Lambda SnapStart usando o Amazon CloudWatch, o AWS X-Ray e a Acessar dados de telemetria em tempo real para extensões usando a API Telemetria.
nota
As variáveis de ambiente AWS_LAMBDA_LOG_GROUP_NAME
e AWS_LAMBDA_LOG_STREAM_NAME
não estão disponíveis nas funções do Lambda SnapStart.
Noções básicas sobre o comportamento de logs e faturas com o SnapStart
Existem algumas diferenças relacionadas ao formato do fluxo de logs do CloudWatch para funções do SnapStart:
-
Logs de inicialização: quando um novo ambiente de execução é criado, o
REPORT
não inclui o campoInit Duration
. Isso ocorre porque o Lambda inicializa as funções do SnapStart quando você cria uma versão, em vez de durante a invocação da função. Para as funções do SnapStart, o campoInit Duration
está no registroINIT_REPORT
. Este registro mostra detalhes de duração para Fase de inicialização, incluindo a duração de quaisquer ganchos de runtimebeforeCheckpoint
. -
Logs de invocação: quando um novo ambiente de execução é criado, o
REPORT
inclui os camposRestore Duration
eBilled Restore Duration
:-
Restore Duration
: o tempo necessário para o Lambda restaurar um snapshot, carregar o runtime e executar qualquer hook de runtime after-restore. O processo de restauração de snapshots pode incluir o tempo gasto em atividades fora da MicroVM. Esse tempo é relatado emRestore Duration
. -
Billed Restore Duration
: o tempo necessário para o Lambda carregar o runtime e executar qualquer hook de runtime after-restore.
-
nota
Como acontece com todas as funções do Lambda, as taxas de duração se aplicam ao código executado no manipulador da função. Para funções do SnapStart, as cobranças por duração também se aplicam ao código de inicialização declarado fora do manipulador, ao tempo que demora para o runtime carregar e aos códigos executados em um hook de runtime.
A duração da inicialização a frio corresponde a soma de Restore Duration
+ Duration
.
O exemplo a seguir é uma consulta do Lambda Insights que retorna os percentis de latência para as funções do SnapStart. Para obter mais informações sobre consultas do Lambda Insights, consulte Exemplo de fluxo de trabalho usando consultas para solucionar problemas de uma função.
filter @type = "REPORT"
| parse @log /\d+:\/aws\/lambda\/(?<function>.*)/
| parse @message /Restore Duration: (?<restoreDuration>.*?) ms/
| stats
count(*) as invocations,
pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 50) as p50,
pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 90) as p90,
pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99) as p99,
pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99.9) as p99.9
group by function, (ispresent(@initDuration) or ispresent(restoreDuration)) as coldstart
| sort by coldstart desc
Rastreamento ativo do X-Ray para SnapStart
Você pode usar o X-Ray para rastrear solicitações para as funções do Lambda SnapStart. Existem algumas diferenças relacionadas aos subsegmentos do X-Ray para funções do SnapStart:
-
Não há qualquer subsegmento
Initialization
para as funções do SnapStart. -
O subsegmento
Restore
mostra o tempo necessário para o Lambda restaurar um snapshot, carregar o runtime e executar qualquer hook de runtime after-restore. O processo de restauração de snapshots pode incluir o tempo gasto em atividades fora da MicroVM. Esse tempo é relatado no subsegmentoRestore
. Você não é cobrado pelo tempo gasto fora da microVM para restaurar um snapshot.
Eventos de API de telemetria para SnapStart
O Lambda envia os eventos do SnapStart a seguir para a API de telemetria:
-
platform.restoreStart: mostra o horário em que a Fase Restore foi iniciada.
-
platform.restoreRuntimeDone: mostra se a fase
Restore
ocorreu com êxito. mO Lambda envia essa mensagem quando o runtime envia uma solicitação de API de runtimerestore/next
. Existem três status possíveis: com êxito, com falha e tempo limite. -
platform.restoreReport: mostra quanto tempo durou a fase
Restore
e por quantos milissegundos você foi cobrado durante essa fase.
Amazon API Gateway e métricas de URL da função
Se você criar uma API da Web usando o API Gateway, poderá usar a métrica IntegrationLatency para medir a latência de ponta a ponta (o tempo entre o momento em que o API Gateway retransmite uma solicitação para o backend e o momento em que recebe uma resposta do backend).
Se você estiver usando um URL da função do Lambda, poderá usar a métrica UrlRequestLatency para medir a latência de ponta a ponta (o tempo entre o momento em que o URL da função recebe uma solicitação e o momento em que o URL da função retorna uma resposta).