Skip to main content

Module firehose

Module firehose 

Source
Expand description

Kinesis Data Firehose HTTP Endpoint Delivery route for OTLP metrics (CloudWatch Metric Streams) Kinesis Data Firehose HTTP Endpoint Delivery route for telemetry-ingestion-srv.

Exposes POST /ingestion/otlp/v1/metrics/firehose so a CloudWatch Metric Stream can push metrics into micromegas as Metric Stream → Firehose → micromegas, with no Lambda, no Kinesis Data Stream, and no collector process in between. Firehose is a dumb managed pipe: it wraps each delivered record (in OpenTelemetry 1.0.0 output mode, one-or-more length-delimited OTLP ExportMetricsServiceRequest protobuf messages) in a small JSON envelope and expects a fixed ack shape back.

Shared Firehose transport plumbing (auth, ack shape, request-id parsing) lives in firehose_common — this module only knows about the metrics-specific decode/ingest calls.

Once a record’s bytes are extracted from the envelope, handler::ingest_firehose_metrics decodes each length-delimited message in turn, runs it through micromegas_otel_ingestion::cloudwatch_metrics::rewrite_cloudwatch_metric_streams (a CloudWatch-specific resource rewrite that partitions a matching degenerate resource into one process per CloudWatch namespace — see that module’s docs), and reuses the existing split/write logic per message.

Functions§

firehose_router
Builds the Firehose sub-router: route + service extension + optional Firehose-auth layer + shared ingestion body limits (gzip + 20 MiB wire / 300 MiB decompressed).