Prometheus exporter for AWS resources
This was made as a complement to CloudWatch Exporter to get resource information that are useful to keep around as metrics in Prometheus but are out of scope for CloudWatch Exporter.
Service | Metric | Description |
---|---|---|
RDS | allocatedstorage | The amount of allocated storage in GB |
RDS | dbinstanceclass | The DB instance class (type) |
RDS | dbinstancestatus | The instance status |
RDS | engineversion | The DB engine type and version |
RDS | pendingmaintenanceactions | The pending maintenance actions for a RDS instance |
RDS | logs_amount | The amount of log files present in the RDS Instance |
RDS | logsstorage_size_bytes | The amount of storage used by the log files nstance |
VPC | vpcsperregion | Quota and usage of the VPCs per region |
VPC | subnetspervpc | Quota and usage of subnets per VPC |
VPC | interfacevpcendpointspervpc | Quota and usage of interface endpoints per VPC |
VPC | routetablespervpc | Quota and usage of routetables per VPC |
VPC | routesperroutetable | Quota and usage of the routes per routetable |
VPC | ipv4blockspervpc | Quota and usage of ipv4 blocks per VPC |
EC2 | transitgatewaysperregion | Quota and usage of transitgateways per region |
Route53 | recordsperhostedzone | Quota and usage of resource records per Hosted Zone |
Download the most suitable binary from the releases tab
Then:
./aws-resource-exporter <flags>
podman run --rm -d -p 9115:9115 \
--name aws-resource-exporter \
--env AWS_ACCESS_KEY_ID=AAA \
--env AWS_SECRET_ACCESS_KEY=AAA \
--env AWS_REGION=AAA \
quay.io/app-sre/aws-resource-exporter:latest
make build
make image image-push
AWS credentials can be passed as environment variables AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
.
Additional configuration can be supplied in a configuration file and might differ between collectors.
An example file can look like this:
rds:
enabled: true
regions:
- "us-east-1"
vpc:
enabled: true
regions:
- "us-east-1"
- "eu-central-1"
timeout: 30s
interval: 300s
cache_ttl: 500s
ec2:
enabled: true
regions:
- "us-east-1"
- "eu-central-1"
- "us-west-1"
timeout: 30s
route53:
enabled: true
region: "us-east-1"
timeout: 60s
interval: 90s
Some exporters might expose different configuration values, see the example files for possible keys.
The config file location can be specified using the environment variable AWS_RESOURCE_EXPORTER_CONFIG_FILE
.
RDS Logs metrics are requested in parallel to improve the scrappping time. Also, metrics are cached to prevent AWS api rate limits. Parameters to tweak this behavior.
LOGS_METRICS_WORKERS
: Number of workers to request log metrics in parallel (default=10)LOGS_METRICS_TTL
: Cache TTL for rds logs related metrics (default=300)
Defaults:
- interval: 15 seconds
- cache_ttl: 35 seconds
- timeout: 10 seconds
To view all available command-line flags, run ./aws-resource-exporter -h
.
Apache License 2.0, see LICENSE.