---
title: Aws Kinesis Firehose
slug: telemetry-pipeline/aws-kinesis-firehose
docTags: 
createdAt: 2025-04-21T00:46:46.618Z
---

## AWS Kinesis Firehose Source

Collect logs, metrics, and traces delivered by **AWS Kinesis Firehose** using its HTTP destination integration.

This source allows worekr to act as an **HTTP endpoint** for Firehose delivery streams, enabling direct ingestion of AWS-managed streaming data into observability pipelines.

## Collection Model

- AWS Kinesis Firehose delivers records via **HTTP POST** requests&#x20;
- worker exposes an HTTP endpoint to receive these requests&#x20;
- Incoming payloads are decoded into events&#x20;
- Events are processed in batches and forwarded downstream&#x20;
- Acknowledgements ensure delivery guarantees back to Firehose&#x20;

This model supports **high-throughput managed ingestion** directly from AWS services.

## Requirements and Network Considerations

### HTTP-Only Delivery

AWS Kinesis Firehose **only supports HTTP delivery**.

As a result:

- TLS termination must be handled explicitly&#x20;
- worker must either:&#x20;
  - Be fronted by a **load balancer** (ALB / NLB)&#x20;
  - Or be configured with **native TLS support**&#x20;

Without TLS, Firehose delivery will fail.

## Typical Architecture Patterns

- AWS-native log delivery pipelines&#x20;
- CloudWatch Logs → Firehose → Worker&#x20;
- Managed streaming ingestion without agents&#x20;
- Centralized observability aggregation&#x20;
- Cross-account AWS telemetry ingestion&#x20;

## Authentication and Access Control

### Access Key Validation

Firehose can attach a **user-defined access key** to each HTTP request.

Worker supports:

- A single access key (deprecated)&#x20;
- Multiple access keys for rotation and multi-stream support&#x20;

If access keys are configured:

- Only requests with matching keys are accepted&#x20;
- Requests without valid keys are rejected&#x20;

If no access keys are configured:

- All incoming requests are accepted&#x20;

### Access Key Storage

When enabled:

- Incoming access keys are stored securely in **event secrets**&#x20;
- The key is exposed under a reserved secret name&#x20;
- Enables downstream enrichment, auditing, or routing logic&#x20;

## Acknowledgement Handling

### acknowledgements (deprecated)

Source-level acknowledgement configuration is deprecated.

Important notes:

- Acknowledgements are controlled globally or at the sink level&#x20;
- Source-level configuration has no effect&#x20;
- Ensures consistent end-to-end delivery semantics&#x20;

## Event Decoding

Firehose delivers raw byte records that must be decoded before processing.

### Supported Codecs

- JSON&#x20;
- Syslog (RFC 3164 / RFC 5424)&#x20;
- GELF&#x20;
- Avro&#x20;
- Protobuf&#x20;
- OTLP (logs, metrics, traces)&#x20;
- InfluxDB Line Protocol&#x20;
- Worker native formats&#x20;
- Raw bytes&#x20;
- VRL-based custom decoding&#x20;

Some codecs can automatically determine the output signal type.

### Signal Type Detection

For multi-signal formats:

- Logs, metrics, and traces can be auto-detected&#x20;
- Parsing order can be restricted to optimize performance&#x20;
- Duplicate signal attempts are automatically removed&#x20;

## Record-Level Compression

### record\_compression

Controls decompression of individual Firehose records.

This is especially important when ingesting:

- CloudWatch Logs&#x20;
- AWS services that gzip records before delivery&#x20;

Supported modes:

- Automatic detection via magic bytes&#x20;
- Explicit gzip&#x20;
- No decompression&#x20;

Incorrect compression handling may result in corrupted events.

## Framing Model

Framing determines how individual events are extracted from raw byte streams.

Supported framing strategies include:

- Byte-based framing&#x20;
- Newline-delimited&#x20;
- Character-delimited&#x20;
- Length-delimited&#x20;
- Octet counting&#x20;
- Varint length-delimited&#x20;
- Chunked GELF&#x20;

Frame size limits can be enforced to prevent unbounded memory usage.

## Multiline and Structured Event Handling

Framing and decoding can be combined to:

- Reassemble multiline logs&#x20;
- Decode structured payloads&#x20;
- Safely handle malformed or partial records&#x20;

Timeouts and buffer limits ensure memory safety under load.

## Keepalive and Connection Management

HTTP keepalive parameters allow fine-grained control over:

- Maximum connection lifetime&#x20;
- Connection reuse&#x20;
- Jittered connection termination to avoid thundering herds&#x20;

This is critical for **high-volume Firehose streams**.

## TLS Support

The source supports full TLS configuration, including:

- Server certificates and private keys&#x20;
- Custom CA bundles&#x20;
- ALPN protocol negotiation&#x20;
- Certificate and hostname verification&#x20;

TLS is mandatory when exposing the endpoint directly to AWS Firehose.

## Reliability Characteristics

- At-least-once delivery semantics&#x20;
- Batch-based ingestion&#x20;
- Backpressure-aware acknowledgement handling&#x20;
- Stateless processing model&#x20;

These properties make the Firehose source suitable for **large-scale, production-grade AWS ingestion pipelines**.

## Common Use Cases

- CloudWatch Logs ingestion&#x20;
- AWS service telemetry pipelines&#x20;
- Centralized observability aggregation&#x20;
- Managed streaming ingestion without agents&#x20;
- Secure, TLS-enforced AWS log delivery
