Monitoramento para Lambda SnapStart - AWS Lambda

Monitoramento para Lambda SnapStart

Você pode monitorar suas SnapStart funções do Lambda usando Amazon CloudWatch,AWS X-Ray, e. API de Telemetria do Lambda

nota

As variáveis de AWS_LAMBDA_LOG_STREAM_NAME ambiente AWS_LAMBDA_LOG_GROUP_NAME e não estão disponíveis nas funções Lambda SnapStart .

CloudWatch para SnapStart

Há algumas diferenças com o formato do fluxo de CloudWatch log para SnapStart funções:

  • Logs de inicialização: quando um novo ambiente de execução é criado, o REPORT não inclui o campo Init Duration. Isso porque o Lambda inicializa SnapStart funções quando você cria uma versão em vez de durante a invocação da função. Para SnapStart funções, o Init Duration campo está no INIT_REPORT registro. Este registro mostra detalhes de duração para Fase de inicialização, incluindo a duração de quaisquer ganchos de runtime beforeCheckpoint.

  • Logs de invocação: quando um novo ambiente de execução é criado, o REPORT inclui os campos Restore Duration e Billed Restore Duration:

    • Restore Duration: o tempo necessário para o Lambda restaurar um snapshot, carregar o runtime (JVM) e executar qualquer hook de runtime de afterRestore. O processo de restauração de snapshots pode incluir o tempo gasto em atividades fora da MicroVM. Esse tempo é relatado em Restore Duration.

    • Billed Restore Duration: o tempo necessário para o Lambda carregar o runtime (JVM) e executar qualquer gancho de afterRestore. Você não é cobrado pelo tempo necessário para restaurar um snapshot.

nota

As cobranças por duração se aplicam ao código executado no handler de função, ao código de inicialização declarado fora do handler, ao tempo que demora para o runtime (JVM) carregar e aos códigos executados em um hook de runtime. Para ter mais informações, consulte Preços do SnapStart.

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 das funções. 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 X-Ray para SnapStart

Você pode usar o X-Ray para rastrear solicitações às funções do Lambda SnapStart . Há algumas diferenças entre os subsegmentos de X-Ray para SnapStart funções:

  • Não há Initialization subsegmento para SnapStart funções.

  • O subsegmento Restore mostra o tempo necessário para o Lambda restaurar um snapshot, carregar o runtime (JVM) e executar qualquer hook de runtime do afterRestore. O processo de restauração de snapshots pode incluir o tempo gasto em atividades fora da MicroVM. Esse tempo é relatado no subsegmento Restore. Você não é cobrado pelo tempo gasto fora da microVM para restaurar um snapshot.

Eventos da API de telemetria para SnapStart

O Lambda envia os seguintes SnapStart eventos para o: 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 runtime restore/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 IntegrationLatencymétrica para medir a end-to-end latência (o tempo entre o momento em que o API Gateway retransmite uma solicitação para o back-end e o momento em que recebe uma resposta do back-end).

Se você estiver usando um URL de função Lambda, poderá usar a UrlRequestLatencymétrica para medir a end-to-end latência (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).