Monitorar métricas do Step Functions usando o Amazon CloudWatch - AWS Step Functions

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 podem incluir uma ou mais solicitações de acesso que não aparecem nas métricas de execução.

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 StartExecution ou RedriveExecution para fluxos de trabalho padrão.

OpenExecutionCount é um número aproximado de fluxos de trabalho abertos. Essa métrica será menor do que a contagem observada do fluxo de trabalho em execução. Executar uma contagem de fluxo de trabalho aberto inferior a 10 mil pode mostrar zero execuções abertas. Para que um alarme notifique se você estiver se aproximando de OpenExecutionLimit, recomendamos usar a estatística máxima com um limite de 100 mil ou mais, pois o limite padrão do fluxo de trabalho aberto é de 1 milhão de execuções.

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.

Métrica Descrição
AliasCount

Número de aliases criados para a máquina de estado.

Você pode criar até cem aliases para cada máquina de estado.

VersionCount

Número de versões publicadas para a máquina de estado.

Você pode publicar até mil versões 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

ActivityArn

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

LambdaFunctionArn

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

ServiceIntegrationResourceArn

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

ServiceMetric

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

APIName

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.

  1. Faça login no AWS Management Console e abra o console do CloudWatch.

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

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

  1. Faça login no AWS Management Console e abra o console do CloudWatch.

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

  3. Escolha um tipo de métrica para ver uma lista de métricas.

  4. Escolha uma métrica e, depois, Graphed metrics (Métricas em gráfico).

  5. Escolha o ícone em forma de sino ao lado de uma métrica na lista para exibir a página Criar alarme.

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