-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Metricbeat] Adding AWS Cloudwatch Metricset #11734
Comments
I think this metricset would be really useful! I have a few questions:
|
@exekias Yeah Good suggestion on the config 👍 |
If we use
|
It sounds to me that some people will be interested in catching all metrics from a namespace, so we could allow for full namespace retrieval when no
|
@exekias Yep, I agree. It will be a much easier setup for users (when extra api query/data transfer cost is not a problem). |
great to get this effort started @kaiyan-sheng! Some ideas:
|
Good point @roncohen! For your second idea, I ran into this problem in #11798 just now. For each namespace, the collection period should be different.
First question is: if we should support cloudwatch metricset to config/collect from more than one namespace.
Second question is: if we support multiple namespaces like the config above, then we need to have default period for each namespace hardcoded in the code. For example, for AWS/EC2 it will be 300s, for AWS/S3 will be 86400s and for AWS/SQS will be 300s. We can introduce a separate |
I think supporting multiple namespaces is useful in many cases, specially when the period is the same. As period is a default setting, I wouldn't introduce a new config key for this. Users can always configure several instances of the metricset when they require different periods per namespace. |
btw, for readability, |
Amazon CloudWatch monitors AWS resources and applications that run on AWS. A lot of services (eg: EC2, RDS, SQS...) sends monitoring metrics to Cloudwatch periodically for users to monitor/determine the health and performance of their resources. We are in the process of adding metricsets for services but since there are so many, it will be good to have a "free-form" cloudwatch metricset to get monitoring metrics from a user-defined service even if this service is not supported by a separate metricset yet.
Basic idea for cloudwatch metricset is to read from config file
aws.yml
forperiod
,start-time
,end-time
, andmetric-data-queries
parameters and then pass them intoget-metric-data
cloudwatch api, similar to use https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html.period
is how frequent this cloudwatch metricset will start a new collection cycle.start-time
is the timestamp indicating the earliest data to be returned.end-time
is the time stamp indicating the latest data to be returned.metric-data-queries
is the location of the json file that contains what are the metric queries to be returned. For example:After this query succeed, some process needs to be added to convert get-metric-data output to events that eventually pushed into ES. There might be some schema/mapping needs to be read from aws.yml for this as well.
In the current existing metricsets, we are using
list-metrics
to get a list of metrics for a specific namespace. This list of metrics can be used as input toGetMetricData
replacingmetric-data-queries
parameter.Metricbeat Module / Dataset release checklist
This checklist is intended for Devs which create or update a module to make sure modules are consistent.
Modules
For a metricset to go GA, the following criteria should be met:
Metricbeat module
data.json
exists and an automated way to generate it exists (go test -data
)The text was updated successfully, but these errors were encountered: