Description
Is there an existing issue for this?
- I have searched the existing issues
Feature description
YACE exports info for resource metadata like tags. This normalizes the data off of the CloudWatch metrics and produces a simplified metric model that can be built up via prometheus joins.
As a part of making Prometheus more otel compatible they have developed a more standardized info function to dramatically reduce the complexity of these joins, https://prometheus.io/docs/prometheus/latest/querying/functions/#info-experimental. The current experimental version considers metrics named target_info
and expects to be able to join on an instance
and job
. The syntax allows you to override the metric to use as the info allowing the current aws_<service>_info
metrics to function ex. info(aws_ec2_metric, {__name__=~"aws_ec2_info"})
. But, ATM yace uses a name
label where we need instance
. We have a few steps to take,
Step 1: Ensure we provide compatibility with the info
function.
The simplest solution here is to duplicate the name
label as instance
on metrics and info metrics.
We can then look to deprecate the name
label and remove it at a later date
Step 2: Consider exporting target_info
over aws_<service>_info
This isn't a true requirement for compatibility but it would ensure the query syntax is a simple as possible to use.
Using a config flag we could optionally export target_info
or aws_<service>_info
. We would slowly look to deprecate aws_<service>_info
for the more standardized target_info
.
What might the configuration look like?
useTargetInfo
Anything else?
If we wait long enough this is more than likely to be considered a bug
rather than a feature.