Are you fed up with the costs, faf and effort of maintaining cloudwatch exporters to get metrics into your prometheus setup? Maybe you are using one of the following:
These are expensive and costly in terms of number of API calls no matter how you look at it.
Thankfully AWS released Cloudwatch Metric Steams to connect to metrics partners like Datadog or New Relic.
This is a terraform module that does the same thing but connects to one of your prometheus remote write endpoints directly.
- Blazingly fast, efficient metrics that you want directly in prometheus.
- Standardized prometheus
__naming__
insnake_case
- Currently supporting
lambda
andsqs
(More coming soon)
Name | Version |
---|---|
aws | >= 3.75.1 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
aws_cloudwatch_metric_stream_name | The desired cloudwatch metric stream name that will be created | string |
n/a | yes |
aws_firehose_lambda_name | The lambda name that will attached to put events in the s3 bucket output of the firehose stream | string |
n/a | yes |
aws_firehose_s3_bucket_name | The s3 bucket name that will be the output of the firehose stream | string |
n/a | yes |
aws_firehose_stream_name | The desired firehose stream name that will be created and linked to the output of the cloudwatch metric stream | string |
n/a | yes |
included_aws_namespaces | The list of AWS Namespaces to include in the stream | list(string) |
n/a | yes |
prometheus_endpoints | A list of prometheus remote write endpoints to write metrics | list(string) |
n/a | yes |
subnet_ids | The subnet ids the create the lambda in (these should have network access to the prometheus remote write endpoints) | list(string) |
n/a | yes |
tags | The standard tags to apply to every AWS resource. | map(string) |
{} |
no |
vpc_id | The VPC to create the lambda in (this should have network access to the prometheusremote write endpoints) | string |
n/a | yes |
AWS Recipe - This draws heavily on this (using a modified version of the go code in their lambda)