

# Monitoramento para o Lambda SnapStart
<a name="snapstart-monitoring"></a>

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](telemetry-api.md).

**nota**  
As [variáveis de ambiente](configuration-envvars.md#configuration-envvars-runtime) `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
<a name="snapstart-cloudwatch"></a>

Existem algumas diferenças relacionadas ao formato do [fluxo de logs do CloudWatch](monitoring-cloudwatchlogs.md) para funções do SnapStart:
+ **Logs de inicialização**: quando um novo ambiente de execução é criado, o `REPORT` não inclui o campo `Init 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 campo `Init Duration` está no registro `INIT_REPORT`. Este registro mostra detalhes de duração para [Fase de inicialização](lambda-runtime-environment.md#runtimes-lifecycle-ib), incluindo a duração de quaisquer [ganchos de runtime](snapstart-runtime-hooks.md) `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 e executar qualquer [hook de runtime](snapstart-runtime-hooks.md) after-restore. 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 e executar qualquer [hook de runtime](snapstart-runtime-hooks.md) 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](snapstart-runtime-hooks.md).

A duração da inicialização a frio corresponde a soma de `Restore Duration` \$1 `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](monitoring-insights.md#monitoring-insights-queries).

```
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
<a name="snapstart-xray"></a>

Você pode usar o [X-Ray](services-xray.md) 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](snapstart-runtime-hooks.md) after-restore. 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 de API de telemetria para SnapStart
<a name="snapstart-telemetry"></a>

O Lambda envia os eventos do SnapStart a seguir para a [API de telemetria](telemetry-api.md):
+ [`platform.restoreStart`](telemetry-schema-reference.md#platform-restoreStart): mostra o horário em que a [Fase `Restore`](lambda-runtime-environment.md#runtimes-lifecycle-restore) foi iniciada.
+ [`platform.restoreRuntimeDone`](telemetry-schema-reference.md#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`](telemetry-schema-reference.md#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
<a name="snapstart-metrics"></a>

Se você criar uma API da Web [usando o API Gateway](services-apigateway.md), poderá usar a métrica [IntegrationLatency](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html) 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](urls-configuration.md), poderá usar a métrica [UrlRequestLatency](urls-monitoring.md) 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).