We are trying to get only a few specific metrics from cloudwatch about our RDS instances (CPU, Memory, Etc). I have followed the documentation to try and come up with a configuration for metricbeats that works, and nothing does. We either get metricbeats vaccuming down a million metrics that we have no interest in, increasing the costs to us from both AWS and elastic for nothing, or we get a single metric from a single DB instance and the rest of the instances are not monitored. Also setting the "period" option to try and throttle the frequency of the metrics has absolutely no affect on anything, the system just pulls when it wants.
I have tried using seperate aws modules per DB instance:
- module: aws
period: 30s
metricsets:
- cloudwatch
access_key_id: 'xxxxx'
secret_access_key: 'xxxxxxxx'
metrics:
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db1
statistic: ["Average", "Maximum"]
- module: aws
period: 30s
metricsets:
- cloudwatch
access_key_id: 'xxxxxx'
secret_access_key: 'xxxxxx'
metrics:
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db2
statistic: ["Average", "Maximum"]
- module: aws
period: 30s
metricsets:
- cloudwatch
access_key_id: 'xxxxxxx'
secret_access_key: 'xxxxxxxx'
metrics:
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db3
statistic: ["Average", "Maximum"]
I have tried using them all as seperate metrics to a single module definition:
- module: aws
period: 30s
metricsets:
- cloudwatch
access_key_id: 'xxxxx'
secret_access_key: 'xxxxxxxx'
metrics:
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db1
statistic: ["Average", "Maximum"]
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db2
statistic: ["Average", "Maximum"]
- namespace: AWS/RDS
name: ["CPUUtilization"]
dimensions:
- name: DBInstanceIdentifier
value: db3
statistic: ["Average", "Maximum"]
Both of these configurations will only return the single metric from the first database (db1) , nothing about the other dbs at all. The only other option is to just let it vaccum up everything from the RDS namespace, and pay to pull and store a bunch of useless data to the the one peice of data that we want for each database.
How can we configure metricbeats to get the specific cloudwatch metrics we want (All of them)?
Why do you include the "period" setting when the system apparently completely ignores that and checks at the frequency that it feels like at the time?
When can you update the documentation to save future users the time and expense of trying to figure all of this out?