Configure Amazon CloudWatch Metric Streams and Amazon Data Firehose to push AWS metrics to the Sawmills Collector over an HTTP endpoint.
This guide configures Amazon CloudWatch Metric Streams to push metrics through Amazon Data Firehose into the Sawmills Collector. No agent runs in your account — CloudWatch streams metrics to Firehose, and Firehose posts them to an HTTPS endpoint fronting your collector.For general external-access setup, see Configure the Sawmills Collector for External Access and Load Balancer Setup.
The Sawmills Collector deployed with the load balancer enabled (the Firehose source binds on the load-balancer collector).
A Network Load Balancer (or equivalent) you control, with a publicly-trusted (ACM) TLS certificate on a domain you own. Firehose rejects self-signed certificates.
Permission to create CloudWatch Metric Streams and Firehose delivery streams in your AWS account.
Step 1 — Add the CloudWatch Metric Streams source in Sawmills
Create a CloudWatch Metric Streams (Firehose) source on your pipeline (see source configuration). Set an Access Key — a strong shared secret you will also put on the Firehose stream. Note the source port (default 10433). Deploy the pipeline so the collector begins listening.
Point your Network Load Balancer at the collector’s firehose port (10433 by default) and attach your ACM certificate to the NLB’s TLS listener. The NLB terminates TLS (SSL offload) and forwards plaintext to the collector. Record the public HTTPS URL (for example, https://firehose.example.com).
Firehose’s HTTP endpoint destination only accepts an https:// URL backed by a CA-signed certificate. A self-signed certificate will fail the TLS handshake.
Create an Amazon Data Firehose stream with an HTTP endpoint destination:
HTTP endpoint URL: the NLB URL from Step 2.
Access key: the same value you set on the Sawmills source in Step 1.
Content encoding: NONE. The collector’s firehose receiver reads the HTTP request body as JSON; set content encoding to NONE (disabled) so records reach the cwmetrics decoder.
Do not attach a record-transformation Lambda — the collector expects the raw CloudWatch Metric Streams records.