Amazon EventBridge

Amazon EventBridge is a serverless event bus service, previously called CloudWatch Events. Many AWS services send status events to Amazon EventBridge, which can be consumed by custom applications or streamed directly to a third-party application. 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 installing the Observe AWS app, follow the steps below.

Collection methods

Observe supports several methods of collecting Amazon 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 already ingest data using an Amazon Kinesis Firehose delivery stream, you may send additional traffic over the same stream to improve batch delivery latency. This also uses the same re-transmission policies configured for the existing delivery stream.

  1. Navigate to 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.

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

  7. From the Stream list, select your delivery stream 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,
  ]
}

Note

Some Observe instances may optionally use a name instead of Customer ID; if this is the case for your instance, contact your Observe Data Engineer to discuss implementation. A stem name will work as is, but a DNS redirect name may require client configuration.

Configuring the API destination

Amazon EventBridge supports sending events directly to an HTTP endpoint. This avoids the cost of triggering a lambda for every event. You may prefer to configure an API destination if you do not currently use the Observe Lambda for another source.

  1. Navigate to 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: a. Select Event Pattern. b. Select Pre-defined pattern by service. c. Select All Events from Service provider .

  5. Under Select targets, configure the desired target: a. Search for target API Destination in the Target field. b. Select Create New API Destination and provide a name. c. In API destination endpoint, enter https://{OBSERVE_CUSTOMER}.collect.observeinc.com/v1/http/aws/eventbridge. d. For HTTP method, select POST. e. Set the Invocation rate limit per second to 300. f. Select Create a new connection and provide a Connection name. g. For Authorization type, select Basic. h. Provide your customer ID for Username and your ingest token for Password.

  6. Click Create.

Video instructions

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