Amazon EventBridge

Amazon EventBridge is a serverless event bus service, previously called CloudWatch Events. Many AWS services send status events to EventBridge, which may then be consumed by custom applications or streamed directly to a third-party. EventBridge data is useful for reconstructing the state of AWS resources over time.

Note

EventBridge ingest is a component of the Observe AWS integration. If you have installed this integration, you do not need to configure EventBridge ingest separately.

To configure EventBridge ingest without the Observe AWS integration, follow the steps below.

Collection methods

Observe supports several methods of collecting AWS EventBridge events:

  1. Send to an Amazon Kinesis Firehose delivery stream. This is the recommended method for most use cases.

  2. Configure Observe as an API destination. This is useful for low event volumes.

  3. Use the Observe Lambda forwarder. Helpful if you already use the Lambda forwarder for other sources.

Kinesis Firehose

If you are already ingesting via a Kinesis Firehose delivery stream, you may send additional traffic over the same stream to improve batch delivery latency. This also uses the same retransmission policies configured for the existing delivery stream.

  1. Navigate to the the EventBridge Console and view existing Event Rules.

  2. Click Create Rule

  3. Under Name and description, provide a Name

  4. Under Define pattern, select Event Pattern and then Pre-defined pattern by service

  5. For Service provider, select All Events from the dropdown.

  6. Under Select targets, search for target Firehose delivery stream.

  7. In the Stream dropdown, select your delivery stream that is configured to send to Observe.

  8. Click Create

Video instructions

The Observe Kinesis Firehose Terraform module provides a helper submodule for configuring a delivery stream as a target for multiple rules.

Instantiate a firehose by setting the appropriate values for observe_customer and observe_token and providing a list of rules to forward data for:

module "observe_kinesis_firehose" {
  source = "github.com/observeinc/terraform-aws-kinesis-firehose?ref=main"

  name             = "observe-kinesis-firehose"
  observe_customer = var.observe_customer
  observe_token    = var.observe_token
}

module "observe_firehose_eventbridge" {
  source           = "github.com/observeinc/terraform-aws-kinesis-firehose//eventbridge"
  kinesis_firehose = module.observe_kinesis_firehose
  iam_name_prefix  = var.name
  rules = [
    aws_cloudwatch_event_rule.example,
  ]
}

API destination

EventBridge supports sending events directly to an HTTP endpoint. This avoids the cost of triggering a lambda for every event. If you are not already using the Observe Lambda for another source, you may prefer to configure an API destination.

  1. Navigate to the the EventBridge Console and view existing Event Rules.

  2. Click Create Rule.

  3. Under Name and description, provide a Name.

  4. Under Define pattern, configure the desired pattern:

    1. Select Event Pattern.

    2. Select Pre-defined pattern by service.

    3. Select All Events from the Service provider dropdown.

  5. Under Select targets, configure the desired target:

    1. Search for target API Destination in the Target dropdown.

    2. Select Create New API Destination and provide a name.

    3. In API destination endpoint, enter https://collect.observeinc.com/v1/http/aws/eventbridge

    4. For HTTP method, select POST.

    5. Set the Invocation rate limit per second to 300.

    6. Select Create a new connection and provide a Connection name.

    7. For Authorization type, select Basic

    8. Provide your customer ID for Username and your ingest token for Password

  6. Click Create

Video instructions

We do not provide a Terraform module for configuring an API destination. If you are using Terraform, we recommend using Kinesis Firehose instead.