grafana / alloy

OpenTelemetry Collector distribution with programmable pipelines
https://grafana.com/oss/alloy
Apache License 2.0
1.38k stars 201 forks source link

Support forthcoming UTF8 metric and label names in Prometheus #353

Open ywwg opened 1 year ago

ywwg commented 1 year ago

Request

We plan to implement UTF8 support in Prometheus metric and label names, as briefly outlined here: https://github.com/prometheus/prometheus/issues/12630

Grafana Agent will need updates to support the new exposition syntax and validation parameters, with a feature flag to enable/disable the behavior. Design doc forthcoming will be linked in this issue.

Use case

Support for rich metric names makes Prometheus more future-proof, for example with Open Telemetry. More justification to be described in the Prometheus design proposal.

tpaschalis commented 1 year ago

Thanks for the heads-up, we're looking forward to using this change!

rfratto commented 1 year ago

with a feature flag to enable/disable the behavior

Is a feature flag strictly necessary @ywwg? Given how much behavior is available in the agent, we typically don't use feature flags for behavior specific to signals.

(I personally wouldn't mind just enabling it downstream without a way to disable as a way of dogfooding the new functionality, but we could also find a different mechanism to make it opt-in/opt-out)

ywwg commented 1 year ago

No, a flag is not necessary. As the design comes into focus we can figure out the best way to opt in/out. (For example, we probably want to support sending utf8 metrics to an old version of prometheus that does not support it (via an escaping mechanism), and do that without needing to discover the compatibility via content negotiation)

github-actions[bot] commented 1 year ago

This issue has not had any activity in the past 30 days, so the needs-attention label has been added to it. If the opened issue is a bug, check to see if a newer release fixed your issue. If it is no longer relevant, please feel free to close this issue. The needs-attention label signals to maintainers that something has fallen through the cracks. No action is needed by you; your issue will be kept open and you do not have to respond to this comment. The label will be removed the next time this job runs if there is new activity. Thank you for your contributions!

ywwg commented 1 year ago

Proposal has been merged: https://github.com/prometheus/proposals/blob/main/proposals/2023-08-21-utf8.md