Monitorar métricas do Step Functions usando o Amazon CloudWatch
O monitoramento é uma parte importante da manutenção da confiabilidade, da disponibilidade e do desempenho do AWS Step Functions e de soluções da AWS. É necessário coletar o máximo de dados de monitoramento dos serviços da AWS que você usa para depurar falhas em pontos variados.
Antes de começar a monitorar o Step Functions, você deve criar um plano de monitoramento que responda às seguintes perguntas:
-
Quais são seus objetivos de monitoramento?
-
Quais recursos você vai monitorar?
-
Com que frequência você vai monitorar esses recursos?
-
Quais ferramentas de monitoramento você usará?
-
Quem realizará o monitoramento das tarefas?
-
Quem deve ser notificado quando algo der errado?
A próxima etapa é estabelecer um parâmetro de desempenho normal do em seu ambiente. Para isso, meça o desempenho em vários momentos e em diferentes condições de carga. Ao monitorar o Step Functions, avalie a possibilidade de armazenar os dados históricos de monitoramento. Esses dados podem servir de parâmetro para você comparar com os dados de desempenho atuais, identificar padrões normais de desempenho e anomalias de desempenho e criar meios para a solução de problemas.
Por exemplo, com o Step Functions, é possível monitorar quantas atividades ou tarefas de AWS Lambda falham em virtude de um tempo limite de pulsação. Quando o desempenho ficar aquém do parâmetro que você estabeleceu, é provável que precise alterar seu intervalo de pulsação.
Para estabelecer um parâmetro, você deve monitorar no mínimo as métricas a seguir:
-
ActivitiesStarted
-
ActivitiesTimedOut
-
ExecutionsStarted
-
ExecutionsTimedOut
-
LambdaFunctionsStarted
-
LambdaFunctionsTimedOut
Métricas do Step Functions para o CloudWatch
O Step Functions fornece os tipos de métrica a seguir ao Amazon CloudWatch. Você pode usar essas métricas para rastrear suas máquinas de estado e atividades e definir alarmes sobre valores limite. É possível visualizar as métricas usando o AWS Management Console.
Fornecimento de métricas do CloudWatch
As métricas do CloudWatch são entregues com base em melhor esforço.
A integridade e pontualidade das métricas não são garantidas. O ponto de dados para uma solicitação específica pode ser retornado com um timestamp posterior à solicitação processada. O ponto de dados para um minuto pode sofrer um atraso antes de ficar disponível por meio do CloudWatch ou pode não ser entregue. As métricas de solicitação do CloudWatch fornecem uma ideia das execuções de máquina de estado quase em tempo real. Não se trata de uma contabilidade completa de todas as métricas relacionadas à execução.
Devido à natureza de melhor esforço deste atributo, os relatórios disponíveis no Painel de gerenciamento de custos e faturamento
Métricas que relatam um intervalo de tempo
Algumas das métricas do CloudWatch para o Step Functions são intervalos de tempo, sempre medidos em milissegundos. Essas métricas geralmente correspondem aos estágios da execução para os quais você pode definir limites de tempo para uma máquina de estado, atividade e função do Lambda, com nomes descritivos.
Por exemplo, a métrica ActivityRunTime
mede quanto tempo uma atividade precisa para ser concluída depois que começa a ser executada. Você pode definir um valor de tempo limite para o mesmo espaço de tempo.
No console do CloudWatch, você pode obter os melhores resultados se escolher average como a estatística de exibição para as métricas do intervalo de tempo.
Métricas que relatam uma contagem
Algumas das métricas do CloudWatch para o Step Functions relatam resultados como uma contagem. Por exemplo, o ExecutionsFailed
registra o número de execuções de máquina de estado com falha.
O Step Functions emite duas métricas de ExecutionsStarted
para cada execução de máquina de estado. Isso faz que a estatística do SampleCount para a métrica ExecutionsStarted
mostre o valor de 2 para cada execução de máquina de estado. A estatística SampleCount mostra ExecutionStarted=1
e ExecutionStarted=0
quando a execução é concluída.
dica
Recomendamos selecionar Soma como a estatística de exibição para as métricas que relatam uma contagem no console do CloudWatch.
Métricas de execução
O namespace AWS/States
inclui as métricas a seguir para todas as execuções do Step Functions. Essas são métricas adimensionais que se aplicam à conta em uma região.
Métrica | Descrição |
---|---|
OpenExecutionCount |
Número aproximado de execuções abertas no momento: fluxos de trabalho que estão em andamento na conta. A intenção é fornecer insights sobre quando os fluxos de trabalho estão se aproximando do limite máximo de execução, para evitar erros de ExecutionLimitExceeded ao chamar
|
OpenExecutionLimit |
Número máximo de execuções abertas. Para ter mais informações, consulte Cotas relacionadas a contas. Esse limite não se aplica ao fluxos de trabalho expressos. |
Métricas de execução de máquina de estado com versão ou alias
Quando você realiza uma execução de máquina de estado com uma versão ou um alias, o Step Functions emite as métricas a seguir. A métrica ExecutionThrottled
só será emitida no caso de execução com controle de utilização. Essas métricas incluirão StateMachineArn
para identificar uma máquina de estado específica.
Métrica | Descrição |
---|---|
ExecutionTime |
O intervalo, em milissegundos, entre o momento em que a execução começa e a hora em que ela termina. |
ExecutionThrottled |
O número de eventos StateEntered e repetições com controle de utilização. Isso está relacionado à limitação StateTransition . Para ter mais informações, consulte Cotas relacionadas aos controles de utilização de estado. |
ExecutionsAborted |
Número de execuções anuladas ou encerradas. |
ExecutionsFailed |
Número de execuções com falha. |
ExecutionsStarted |
Número de execuções iniciadas. |
ExecutionsSucceeded |
Número de execuções concluídas com êxito. |
ExecutionsTimedOut |
Número de execuções que atingiram o tempo limite por qualquer motivo. |
Métricas de execução para fluxos de trabalho expressos
O namespace de AWS/States
inclui as seguintes métricas para as execuções dos fluxos de trabalho expressos do Step Functions.
Métrica | Descrição |
---|---|
ExpressExecutionMemory
|
A memória total consumida por um fluxo de trabalho expresso. |
ExpressExecutionBilledDuration |
A duração pela qual um fluxo de trabalho expresso é cobrado. |
ExpressExecutionBilledMemory |
A quantidade de memória consumida pela qual um fluxo de trabalho expresso é cobrado. |
Métricas de execução de Redrive para fluxos de trabalho padrão
Quando você redrive uma execução de máquina de estado, o Step Functions emite as seguintes métricas.
Para todas as execuções redriven, a métrica Executions*
é emitida. Por exemplo, digamos que uma execução redriven seja abortada. Essa execução emitirá pontos de dados diferentes de zero para RedrivenExecutionsAborted
e ExecutionsAborted
.
Métrica | Descrição |
---|---|
ExecutionsRedriven |
Número de execuções de redriven. |
RedrivenExecutionsAborted |
Número de execuções de redriven canceladas ou encerradas. |
RedrivenExecutionsTimedOut |
Número de execuções de redriven que atingiram o tempo limite por qualquer motivo. |
RedrivenExecutionsSucceeded |
Número de execuções de redriven concluídas com êxito. |
RedrivenExecutionsFailed |
Número de execuções de redriven que falharam. |
Dimensão das métricas de execução do Step Functions
Dimensão | Descrição |
---|---|
StateMachineArn
|
O Nome do Recurso da Amazon (ARN) da máquina de estado para a execução em questão. |
Dimensões para execuções com versão
Dimensão | Descrição |
---|---|
StateMachineArn
|
O Nome do Recurso da Amazon (ARN) da máquina de estado cuja execução foi iniciada por uma versão. |
Version |
Versão da máquina de estado utilizada para iniciar a execução. |
Dimensões para execuções com alias
Dimensão | Descrição |
---|---|
StateMachineArn
|
O Nome do Recurso da Amazon (ARN) da máquina de estado cuja execução foi iniciada por um alias. |
Alias |
Alias da máquina de estado utilizado para iniciar a execução. |
Métricas de contagem de recursos para versões e aliases
O namespace AWS/States
inclui as seguintes métricas para a contagem de versões e aliases de uma máquina de estado.
Dimensão das métricas de contagem de recursos para versões e aliases
Dimensão | Descrição |
---|---|
ResourceArn
|
O Nome do Recurso da Amazon (ARN) da máquina de estado com uma versão ou alias. |
Métricas de atividade
O namespace AWS/States
inclui as métricas a seguir para atividades do Step Functions.
Métrica | Descrição |
---|---|
ActivityRunTime
|
O intervalo, em milissegundos, entre o momento em que a atividade começa e a hora em que ela termina. |
ActivityScheduleTime |
O intervalo, em milissegundos, em que a atividade permanece no estado programado. |
ActivityTime |
O intervalo, em milissegundos, entre o momento em que a atividade é programada e a hora em que ela termina. |
ActivitiesFailed |
Número de atividades com falha. |
ActivitiesHeartbeatTimedOut |
Número de atividades que expiraram por causa de um tempo limite de pulsação. |
ActivitiesScheduled |
Número de atividades programadas. |
ActivitiesStarted |
Número de atividades iniciadas. |
ActivitiesSucceeded |
Número de atividades concluídas com êxito. |
ActivitiesTimedOut |
Número de atividades que atingiram o tempo limite no fechamento. |
Dimensão das métricas de atividade do Step Functions
Dimensão | Descrição |
---|---|
|
O ARN da atividade. |
Métricas de função do Lambda
O namespace AWS/States
inclui as métricas a seguir para funções do Lambda no Step Functions.
Métrica | Descrição |
---|---|
LambdaFunctionRunTime |
O intervalo, em milissegundos, entre o momento em que a função do Lambda começa e a hora em que ela termina. |
LambdaFunctionScheduleTime |
O intervalo, em milissegundos, em que a função do Lambda permanece no estado programado. |
LambdaFunctionTime |
O intervalo, em milissegundos, entre o momento em que a função do Lambda está programada e a hora em que ela termina. |
LambdaFunctionsFailed |
Número de funções do Lambda com falha. |
LambdaFunctionsScheduled |
Número de funções do Lambda programadas. |
LambdaFunctionsStarted |
Número de funções do Lambda iniciadas. |
LambdaFunctionsSucceeded |
Número de funções do Lambda concluídas com êxito. |
LambdaFunctionsTimedOut |
Número de funções do Lambda que atingiram o tempo limite no fechamento. |
Dimensão para Métricas de Função do Lambda para o Step Functions
Dimensão | Descrição |
---|---|
|
O ARN da função Lambda. |
nota
As métricas da função do Lambda são emitidas para estados de tarefas que especificam o ARN da função Lambda no campo
Resource
. Em vez disso, estados de tarefas que usam "Resource": "arn:aws:states:::lambda:invoke"
emitem métricas de integração de serviços. Para ter mais informações, consulte Invocar uma função do AWS Lambda com o Step Functions.
Métricas de integração de serviço
O namespace AWS/States
inclui as seguintes métricas para integrações de serviços do Step Functions. Para ter mais informações, consulte Integrar serviços ao Step Functions.
Métrica | Descrição |
---|---|
ServiceIntegrationRunTime |
O intervalo, em milissegundos, entre o momento em que a tarefa de serviço começa e a hora em que ela termina. |
ServiceIntegrationScheduleTime |
O intervalo, em milissegundos, em que a tarefa de serviço permanece no estado programado. |
ServiceIntegrationTime |
O intervalo, em milissegundos, entre o momento em que a tarefa de serviço é programada e a hora em que ela termina. |
ServiceIntegrationsFailed |
Número de tarefas de serviço com falha. |
ServiceIntegrationsScheduled |
Número de tarefas de serviço programadas. |
ServiceIntegrationsStarted |
Número de tarefas de serviço iniciadas. |
ServiceIntegrationsSucceeded |
Número de tarefas de serviço concluídas com êxito. |
ServiceIntegrationsTimedOut |
Número de tarefas de serviço que atingiram o tempo limite no fechamento. |
Dimensão para métricas de integração de serviço do Step Functions
Dimensão | Descrição |
---|---|
|
O ARN do recurso do serviço integrado. |
Métricas de serviço
O namespace AWS/States
inclui as métricas a seguir para o serviço do Step Functions.
Métrica | Descrição |
---|---|
ThrottledEvents
|
Contagem de solicitações com controle de utilização. |
ProvisionedBucketSize |
Contagem de solicitações disponíveis por segundo. |
ProvisionedRefillRate |
Contagem de solicitações por segundo permitidas no bucket. |
ConsumedCapacity |
Contagem de solicitações por segundo. |
Dimensão das métricas de serviço do Step Functions
Dimensão | Descrição |
---|---|
|
Filtra os dados para mostrar as métricas de transições de estado. |
Métricas da API
O namespace AWS/States
inclui as métricas a seguir para funções de API do Step Functions.
Métrica | Descrição |
---|---|
ThrottledEvents
|
Contagem de solicitações com controle de utilização. |
ProvisionedBucketSize |
Contagem de solicitações disponíveis por segundo. |
ProvisionedRefillRate |
Contagem de solicitações por segundo permitidas no bucket. |
ConsumedCapacity |
Contagem de solicitações por segundo. |
Dimensão das métricas de API do Step Functions
Dimensão | Descrição |
---|---|
|
Filtra dados para uma API do nome de API especificado. |
Visualizar métricas do Step Functions no CloudWatch
É possível usar o console do CloudWatch para visualizar métricas do Step Functions para execuções, atividades, funções e integrações de serviços.
-
Faça login no AWS Management Console e abra o console do CloudWatch.
-
Escolha Metrics (Métricas) e, na guia All Metrics (Todas as métricas), escolha States (Estados).
Se você tiver qualquer execução recente, verá até quatro tipos de métrica:
-
Execution Metrics (Métricas de execução)
-
Métricas de função de atividade
-
Métricas de função do Lambda
-
Métricas de integração de serviço
-
-
Escolha um tipo de métrica para ver uma lista de métricas.
-
Para classificar suas métricas pelo nome da métrica ou por StateMachineArn, use os cabeçalhos de coluna.
-
Para visualizar os gráficos correspondentes a uma métrica, marque a caixa de seleção ao lado da métrica na lista. Você pode alterar os parâmetros do gráfico usando os controles de período acima da visualização do gráfico.
Você pode escolher períodos personalizados usando valores relativos ou absolutos (especifique dias e horas). Você também pode usar a lista suspensa para exibir valores como linhas, áreas empilhadas ou números (valores).
-
Para visualizar detalhes sobre um grafo, passe o mouse sobre o código de cor da métrica que é exibido abaixo do grafo para exibir os detalhes da métrica.
-
Para obter mais informações sobre métricas do CloudWatch, consulte Usar métricas do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.
Definir alarmes para métricas de Step Functions no CloudWatch
É possível usar alarmes do Amazon CloudWatch para executar ações. Por exemplo, se quiser saber quando um limite de alarme foi atingido, você pode definir um alarme para enviar uma notificação para um tópico do Amazon SNS ou para enviar um e-mail quando a métrica do StateMachinesFailed
ultrapassar determinado limite.
Para definir um alarme em uma métrica
-
Faça login no AWS Management Console e abra o console do CloudWatch.
-
Escolha Metrics (Métricas) e, na guia All Metrics (Todas as métricas), escolha States (Estados).
Se você tiver qualquer execução recente, verá até quatro tipos de métrica:
-
Execution Metrics (Métricas de execução)
-
Métricas de função de atividade
-
Métricas de função do Lambda
-
Métricas de integração de serviço
-
-
Escolha um tipo de métrica para ver uma lista de métricas.
-
Escolha uma métrica e, depois, Graphed metrics (Métricas em gráfico).
-
Escolha o ícone em forma de sino ao lado de uma métrica na lista para exibir a página Criar alarme.
-
Insira os valores para Alarm threshold (Limite de alarme) e Actions (Ações) e escolha Create Alarm (Criar alarme).
Para obter mais informações sobre configuração e uso de alarmes do CloudWatch, consulte Criação de alarmes do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.