Skip to content

[FEATURE] Ensure info metrics will have compatibility with prometheus OTEL implementation #1436

Open
@kgeckhart

Description

@kgeckhart

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions