-
Notifications
You must be signed in to change notification settings - Fork 466
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
Add support for Cloudwatch metrics streams #956
Comments
Pinging @elastic/integrations (Team:Integrations) |
I just set up CloudWatch metric streams to send cloudwatch monitoring metrics to Amazon Firehose delivery stream with an HTTP endpoint as the destination. The output format I chose for cloudwatch metric stream is JSON. It can also be set to OpenTelemetry 0.7 format. The metrics look like this:
I tested with the endpoint we are adding for Firehose logs in apm-server and it can ingest these metrics as messages similar to logs just fine.
But I think it would be good to parse these metrics and store them under different fields. I think we can leverage the APM @axw Do you think it's OK to add a |
Yes I think we should add a method to process metrics. I don't think we should use the metric name in the metricset name, as that would force all metrics into their own metricset which I don't think would be desirable. I would expect the following mapping:
In this case, In theory we should be able to use the OpenTelemetry format, decoding it and exporting/calling code in https://github.com/elastic/apm-server/blob/master/processor/otel/metrics.go. I don't think OpenTelemetry 0.7 will work though, as there have been breaking changes to OTLP metrics recently. |
@axw Actually all cloudwatch metrics are in summary type. They all have different statistic methods as subfields. Should I spend some time to add summary into Use the same sample CloudWatch metric, I think |
I would prefer that we add general support for summaries, but it's not straightforward currently. We really need elastic/elasticsearch#74145 to be able to dynamically map summaries where the statistic sub-fields vary. Also, we'll need elastic/elasticsearch#72536 for recording units. Do we need support for custom metrics at the moment, or is it enough to support only well-defined AWS service metrics?
Generally we map metric dimensions to labels. Eventually these should be indicated as TSDB dimensions when we start using the upcoming time series indexing mode (elastic/elasticsearch#74450). If we were to do that, then we would end up with:
But "AWS/Logs" as a
Then you can define a mapping for the known metrics. |
We will only support metrics reported by AWS services for now. No custom metrics at this point :) Sorry I'm still having problems with what we should use for |
Initial PR elastic/apm-server#6380 for adding CloudWatch metric streams support through firehose endpoint is merged. But I will keep this issue open till testing on Cloud is done. |
It looks like support for this was removed from the APM Service. Is it planned to land elsewhere? |
Amazon recently announced their new feature to allow cloudwatch metrics to be streamed live to several destinations, including Kinesis Firehose:
https://aws.amazon.com/blogs/aws/cloudwatch-metric-streams-send-aws-metrics-to-partners-and-to-your-apps-in-real-time/
We want to check the feasibility of this approach and potentially add support for it.
The text was updated successfully, but these errors were encountered: