Skip to content

Epic: Implement UTF-8 character support for label and metric names #13095

@ywwg

Description

@ywwg

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:

Minimum Viable Product ✅

MVP is defined as round-trip support for UTF-8 names and labels in the Go language with scraping and remote-write. This serves as an initial testing bed and implementation example for other language bindings.

Follow-ons

Write-side tasks

OTLP

Read-side tasks

Mixed-block reading is deprioritized due to the difficult and lack of proven need

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)

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions