Monitorar eventos do canário com o Amazon EventBridge - Amazon CloudWatch

Monitorar eventos do canário com o Amazon EventBridge

As regras de evento do Amazon EventBridge podem notificar você quando os canaries alterarem o status ou concluírem execuções. O Eventbridge oferece um fluxo quase em tempo real dos eventos do sistema que descrevem as alterações nos recursos da AWS. O CloudWatch Synthetics envia esses eventos ao EventBridge na base do melhor esforço. A entrega do melhor esforço significa que o CloudWatch Synthetics tenta enviar todos os eventos ao EventBridge, mas, em alguns casos raros, o evento poderá não ser entregue. O EventBridge processa, pelo menos uma vez,todos os eventos recebidos. Além disso, os listeners do evento poderão não receber os eventos na ordem em que estes ocorreram.

nota

O Amazon EventBridge é um serviço de barramento de eventos que você pode usar para facilitar a conexão de aplicações a dados de diversas origens. Para obter mais informações, consulte O que é o Amazon EventBridge? no Manual do usuário do Amazon EventBridge.

O CloudWatch Synthetics emite um evento quando um canário altera o estado ou conclui uma execução. É possível criar uma regra EventBridge que inclua um padrão de evento para corresponder a todos os tipos de eventos enviados do CloudWatch Synthetics ou que corresponda apenas a tipos de eventos específicos. Quando um canário aciona uma regra, o EventBridge invoca as ações de destino definidas na regra. Isso permite enviar notificações, capturar informações de eventos e executar ações corretivas em resposta a uma alteração de estado ou a conclusão de uma execução do canário. Por exemplo, você pode criar regras para os seguintes casos de uso:

  • Investigar quando uma execução do canário falha

  • Investigar quando um canário passou para o estado o ERROR

  • Rastrear o ciclo de vida de um canário

  • Monitorar o sucesso ou falha de execução do canário como parte de um fluxo de trabalho

Exemplos de eventos do CloudWatch Synthetics

Esta seção lista exemplos de eventos do CloudWatch Synthetics. Para obter mais informações sobre formato de eventos, consulte Eventos e padrões de eventos no EventBridge.

Alteração do estado do canário

Neste tipo de evento, os valores de current-state e previous-state podem ser:

CREATING | READY | STARTING | RUNNING | UPDATING | STOPPING | STOPPED | ERROR

{ "version": "0", "id": "8a99ca10-1e97-2302-2d64-316c5dedfd61", "detail-type": "Synthetics Canary Status Change", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:19:43Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "current-state": "STOPPED", "previous-state": "UPDATING", "source-location": "NULL", "updated-on": 1612909161.767, "changed-config": { "executionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" }, "vpcId": { "current-value": "NULL" }, "testCodeLayerVersionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" } }, "message": "Canary status has changed" } }

Execução do canário concluída com êxito

{ "version": "0", "id": "989EXAMPLE-f4a5-57a7-1a8f-d9cc768a1375", "detail-type": "Synthetics Canary TestRun Successful", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:01Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "989EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "canary-run-id": "c6c39152-8f4a-471c-9810-989EXAMPLE", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-28ddbe266797/2021/02/09/22/23-41-200", "test-run-status": "PASSED", "state-reason": "null", "canary-run-timeline": { "started": 1612909421, "completed": 1612909441 }, "message": "Test run result is generated successfully" } }

Execução do canário concluída com falha

{ "version": "0", "id": "2644b18f-3e67-5ebf-cdfd-bf9f91392f41", "detail-type": "Synthetics Canary TestRun Failure", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:27Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "af3e3a05-dc5a-4f5f-96d1-9989EXAMPLE", "canary-name": "events-bb-1", "canary-run-id": "0df3823e-7e33-4da1-8194-b04e4d4a2bf6", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-989EXAMPLE/2021/02/09/22/24-21-275", "test-run-status": "FAILED", "state-reason": "\"Error: net::ERR_NAME_NOT_RESOLVED \"" "canary-run-timeline": { "started": 1612909461, "completed": 1612909467 }, "message": "Test run result is generated successfully" } }

É possível que os eventos estejam duplicados ou fora de ordem. Para determinar a ordem dos eventos, use a propriedade time.

Pré-requisitos para criar regras do EventBridge

Antes de criar uma regra do EventBridge para o CloudWatch Synthetics, é necessário:

  • Familiarize-se com os eventos, regras e destinos no EventBridge.

  • Crie e configure os destinos invocados por suas regras do EventBridge. As regras podem invocar muitos tipos de destinos, incluindo:

    • Tópicos do Amazon SNS

    • Funções do AWS Lambda

    • Streams do Kinesis

    • Filas do Amazon SQS

Para obter mais informações, consulte O que é o Amazon EventBridge e Começar a usar o Amazon EventBridge no Manual do usuário do Amazon EventBridge.

Criar uma regra do EventBridge (CLI)

As etapas no exemplo a seguir criam uma regra EventBridge que publica um tópico do Amazon SNS quando o canário chamado my-canary-name em us-east-1 conclui uma execução ou altera o estado.

  1. Crie a regra.

    aws events put-rule \ --name TestRule \ --region us-east-1 \ --event-pattern "{\"source\": [\"aws.synthetics\"], \"detail\": {\"canary-name\": [\"my-canary-name\"]}}"

    As propriedades que você omitir do padrão serão ignoradas.

  2. Adicione o tópico como um destino de regra.

    • Substitua topic-arn pelo nome do recurso da Amazon (ARN) do tópico do Amazon SNS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    nota

    Para permitir que o Amazon EventBridge chame o tópico de destino, você deve adicionar uma política baseada em recursos ao tópico. Para obter mais informações, consulte Permissões do Amazon SNS no Manual do usuário do Amazon EventBridge.

Para obter mais informações, consulte Eventos e padrões de eventos no EventBridge no Manual do usuário do Amazon EventBridge.