Why Not Just Dots? UTF-8 Support in Prometheus 3.0
summary
Prometheus 3.0 adds full UTF-8 metric and label names with a new quoting syntax that preserves dot as a potential operator and avoids simply allowing periods in identifiers. The implementation changes a global UTF-8 validation flag in the common model, already updated in ~8–9 language bindings, and uses content-negotiation escaping (underscore, dot-aware, or roundtrip value-encoding) for incompatible consumers. The TSDB already stores UTF-8 strings; query time merges escaped and UTF-8 names so migrations work without data loss.
AI-written summary · about
chapters (13)
- 0:00Introduction and background
- 2:07Legacy character set limitations
- 3:09Why dots alone weren't enough
- 5:35Full UTF-8 support decision
- 7:20Quoting syntax for parsing
- 10:05New metric name syntax
- 12:01Quick demo of UTF-8 metrics
- 13:04Enabling UTF-8 in Prometheus
- 16:34Content negotiation with escaping
- 17:15Demo of content negotiation
- 19:04Prometheus 3 default behavior
- 20:07Current implementation status
- 22:15Q&A session
related talks
55mAdding ++ to Prometheus
30mTSDB: The Past, Present and the Future - Goutham Veeramachaneni, IIT Hyderabad
04mLightning Talk: TSDB: The Engine behind Prometheus - Goutham Veeramachaneni, IIT Hyderabad
06mLightning Talk
17mHow Prometheus indexes Data and Why You Should Care
41mProxySQL 2021 Dev Submit
26mIntegrating Prometheus and InfluxDB
46mPrometheus as a Time Series Database
