From 9466fd8fc3c6affa2bdee198feb1a07f0abce2bc Mon Sep 17 00:00:00 2001 From: bwplotka Date: Tue, 10 Feb 2026 09:20:36 +0000 Subject: [PATCH 1/2] OM2: Remove exemplar hard limit; mention use intention Signed-off-by: bwplotka --- docs/specs/om/open_metrics_spec_2_0.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/specs/om/open_metrics_spec_2_0.md b/docs/specs/om/open_metrics_spec_2_0.md index 562d23cc5..090251507 100644 --- a/docs/specs/om/open_metrics_spec_2_0.md +++ b/docs/specs/om/open_metrics_spec_2_0.md @@ -128,7 +128,7 @@ Exemplars are references to data outside of the MetricSet. A common use case are Exemplars MUST consist of a LabelSet and a value, and SHOULD have a timestamp. They MAY each be different from the MetricPoints' LabelSet and timestamp. -The combined length of the label names and values of an Exemplar's LabelSet MUST NOT exceed 128 UTF-8 character code points. Other characters in the text rendering of an exemplar such as `",=` are not included in this limit for implementation simplicity and for consistency between the text and proto formats. +While there's no [hard limit](#size-limits) specified, Exemplars LabelSet SHOULD NOT be used to transport large data like tracing span details or other event logging. Ingestors MAY discard exemplars. @@ -1438,8 +1438,6 @@ The number of unique time series is roughly equivalent to the number of non-comm If all targets of a particular type are exposing the same set of time series, then each additional targets' strings poses no incremental cost to most reasonably modern monitoring systems. If however each target has unique strings, there is such a cost. As an extreme example, a single 10k character metric name used by many targets is on its own very unlikely to be a problem in practice. To the contrary, a thousand targets each exposing a unique 36 character UUID is over three times as expensive as that single 10k character metric name in terms of strings to be stored assuming modern approaches. In addition, if these strings change over time older strings will still need to be stored for at least some time, incurring extra cost. Assuming the 10 million times series from the last paragraph, 100MB of unique strings per hour might indicate a use case for then the use case may be more like event logging, not metric time series. -There is a hard 128 UTF-8 character limit on exemplar length, to prevent misuse of the feature for tracing span data and other event logging. - ## Security Implementors MAY choose to offer authentication, authorization, and accounting; if they so choose, this SHOULD be handled outside of OpenMetrics. From 58605d7d848cd9d52571a04ca216733eb3ce9b19 Mon Sep 17 00:00:00 2001 From: Bartlomiej Plotka Date: Tue, 10 Feb 2026 22:13:45 +0000 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: David Ashpole Signed-off-by: Bartlomiej Plotka --- docs/specs/om/open_metrics_spec_2_0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/specs/om/open_metrics_spec_2_0.md b/docs/specs/om/open_metrics_spec_2_0.md index 090251507..c89a4b43e 100644 --- a/docs/specs/om/open_metrics_spec_2_0.md +++ b/docs/specs/om/open_metrics_spec_2_0.md @@ -128,9 +128,9 @@ Exemplars are references to data outside of the MetricSet. A common use case are Exemplars MUST consist of a LabelSet and a value, and SHOULD have a timestamp. They MAY each be different from the MetricPoints' LabelSet and timestamp. -While there's no [hard limit](#size-limits) specified, Exemplars LabelSet SHOULD NOT be used to transport large data like tracing span details or other event logging. +While there's no [hard limit](#size-limits) specified, Exemplar's LabelSet SHOULD NOT be used to transport large data like tracing span details or other event logging. -Ingestors MAY discard exemplars. +Ingestors MAY truncate the Exemplar's LabelSet or discard Exemplars. #### Metric