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
Epic: Implement UTF-8 character support for label and metric names #13095
Comments
Design work will be needed for the tsdb changes -- determining how to query data that was written with old versions of prometheus will be tricky, for instance if an Otel metric goes from _ to . but doesn't use the U__ quoting syntax in the old metrics. |
Ran into this issue with Grafana alert labels vs. Prometheus alert labels. Grafana supports Consistency between OTel, Prometheus, etc. would be fantastic. |
prometheus/common#537 in progress (name validation, exposition parsers) |
ywwg/common#2 in draft (write-side content negotiation) |
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats. This grammar will also be valid for non-UTF-8 names. UTF-8 names will not be considered valid unless model.NameValidationScheme is changed. This does not update the go expfmt parser in text_parse.go, which will be addressed by prometheus/common#554. Part of prometheus#13095 Signed-off-by: Owen Williams <owen.williams@grafana.com>
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats. This grammar will also be valid for non-UTF-8 names. UTF-8 names will not be considered valid unless model.NameValidationScheme is changed. This does not update the go expfmt parser in text_parse.go, which will be addressed by prometheus/common#554. Part of prometheus#13095 Signed-off-by: Owen Williams <owen.williams@grafana.com>
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats. This grammar will also be valid for non-UTF-8 names. UTF-8 names will not be considered valid unless model.NameValidationScheme is changed. This does not update the go expfmt parser in text_parse.go, which will be addressed by prometheus/common#554. Part of prometheus#13095 Signed-off-by: Owen Williams <owen.williams@grafana.com>
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats. This grammar will also be valid for non-UTF-8 names. UTF-8 names will not be considered valid unless model.NameValidationScheme is changed. This does not update the go expfmt parser in text_parse.go, which will be addressed by prometheus/common#554. Part of prometheus/prometheus#13095 Signed-off-by: Owen Williams <owen.williams@grafana.com>
Thanks for this! Question concerning "User-visible changes:" section. Should we take into account CNCF projects such as Thanos and Cortex? |
Tracking Issue
Relates to:
Original discussion
Brainstorming doc Quoting Prometheus Names
OTEL Attribute compatibility section
We are creating this issue as part of the OTEL Support milestone so it will be OTEL oriented but the problem is general to prometheus and has been around for a long time.
OTel allows UTF-8 in label names while Prometheus has a much more restrictive set. This is causing friction for users when using Prometheus. In particular, . (dot) is a very common character in OTel and we convert that to _ when converting to Prometheus. For example, service.version becomes service_version.
Proposals have been accepted to do this work:
Write-side tasks:
Read-side tasks:
Client Libraries:
Grafana user-visible changes:
Not directly related to Prometheus, but this is the bug I'm using for all the related work, so...
Other task refs:
(This is a clone of #12630 that I own so I can edit the top-level comment and track work here)
The text was updated successfully, but these errors were encountered: