Skip to content

Commit 908e3a6

Browse files
committed
feat(om1.1): Add UTF-8 metric names and labels
Part of prometheus/prometheus#16093 Signed-off-by: Owen Williams <[email protected]>
1 parent 2adaf96 commit 908e3a6

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

docs/specs/om/open_metrics_spec_1_1.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ author:
2323
name: Rob Skillington
2424
organization: Chronosphere
2525
26+
- ins: O. Williams
27+
name: Owen Williams
28+
organization: Grafana Labs
29+
2630
---
2731

2832
- Version: 1.1
@@ -312,22 +316,24 @@ metricset = *metricfamily
312316
313317
metricfamily = *metric-descriptor *metric
314318
315-
metric-descriptor = HASH SP type SP metricname SP metric-type LF
316-
metric-descriptor =/ HASH SP help SP metricname SP escaped-string LF
317-
metric-descriptor =/ HASH SP unit SP metricname SP *metricname-char LF
319+
metric-descriptor = HASH SP type SP (metricname / metricname-utf8) SP metric-type LF
320+
metric-descriptor =/ HASH SP help SP (metricname / metricname-utf8) SP escaped-string LF
321+
metric-descriptor =/ HASH SP unit SP (metricname / metricname-utf8) SP *metricname-char LF
318322
319323
metric = *sample
320324
321325
metric-type = counter / gauge / histogram / gaugehistogram / stateset
322326
metric-type =/ info / summary / unknown
323327
324-
sample = metricname [labels] SP number [SP timestamp] [exemplar] LF
328+
sample = metricname-and-labels SP number [SP timestamp] [exemplar] LF
325329
326-
exemplar = SP HASH SP labels SP number [SP timestamp]
330+
metricname-and-labels = metricname [labels-in-braces] / name-in-braces
331+
labels-in-braces = "{" [label *(COMMA label)] "}"
332+
name-in-braces = "{" metricname-utf8 *(COMMA label) "}"
327333
328-
labels = "{" [label *(COMMA label)] "}"
334+
label = label-key EQ DQUOTE escaped-string DQUOTE
329335
330-
label = label-name EQ DQUOTE escaped-string DQUOTE
336+
exemplar = SP HASH SP labels-in-braces SP number [SP timestamp]
331337
332338
number = realnumber
333339
; Case insensitive
@@ -366,16 +372,16 @@ HASH = "#"
366372
SIGN = "-" / "+"
367373
368374
metricname = metricname-initial-char 0*metricname-char
369-
370375
metricname-char = metricname-initial-char / DIGIT
371376
metricname-initial-char = ALPHA / "_" / ":"
377+
metricname-utf8 = DQUOTE escaped-string DQUOTE
372378
379+
label-key = label-name / DQUOTE escaped-string DQUOTE
373380
label-name = label-name-initial-char *label-name-char
374-
375381
label-name-char = label-name-initial-char / DIGIT
376382
label-name-initial-char = ALPHA / "_"
377383
378-
escaped-string = *escaped-char
384+
escaped-string = 1*escaped-char
379385
380386
escaped-char = normal-char
381387
escaped-char =/ BS ("n" / DQUOTE / BS)
@@ -430,6 +436,8 @@ A double backslash SHOULD be used to represent a backslash character.
430436
A single backslash SHOULD NOT be used for undefined escape sequences.
431437
As an example, `\\\\a` is equivalent and preferable to `\\a`.
432438

439+
Escaping MUST also be applied to quoted UTF-8 strings.
440+
433441
##### Numbers
434442

435443
Integer numbers MUST NOT have a decimal point. Examples are `23`, `0042`, and `1341298465647914`.

0 commit comments

Comments
 (0)