Skip to content

OM2: WIP collab 03.2026#2851

Open
bwplotka wants to merge 5 commits intomainfrom
bwplotka-omwg-review
Open

OM2: WIP collab 03.2026#2851
bwplotka wants to merge 5 commits intomainfrom
bwplotka-omwg-review

Conversation

@bwplotka
Copy link
Copy Markdown
Member

@bwplotka bwplotka commented Feb 25, 2026

WIP

@bwplotka bwplotka force-pushed the bwplotka-omwg-review branch from 8f1bf07 to 9ada8a5 Compare March 4, 2026 08:10
@bwplotka bwplotka force-pushed the bwplotka-omwg-review branch from 9ada8a5 to 277398e Compare March 13, 2026 11:35
@bwplotka bwplotka changed the title [WIP] OM2: WG changes for 2.0-rc.0 OM2: WG agreed changes for 2.0-rc.0 Mar 13, 2026
@bwplotka bwplotka changed the base branch from main to spec-fmt March 13, 2026 11:36
@bwplotka bwplotka marked this pull request as ready for review March 13, 2026 11:36
@bwplotka bwplotka mentioned this pull request Mar 13, 2026
Closed
Base automatically changed from spec-fmt to main March 13, 2026 13:04
@bwplotka bwplotka changed the title OM2: WG agreed changes for 2.0-rc.0 OM2: WIP collab 13.03.2026 Mar 13, 2026
@bwplotka bwplotka force-pushed the bwplotka-omwg-review branch from acd01d9 to 74bd60e Compare March 17, 2026 13:01
@bwplotka bwplotka changed the base branch from main to om2postreviewpart1 March 17, 2026 13:01
@bwplotka bwplotka changed the base branch from om2postreviewpart1 to main March 17, 2026 13:07
@bwplotka bwplotka force-pushed the bwplotka-omwg-review branch from aded6ca to 0badf83 Compare March 17, 2026 20:46
@bwplotka bwplotka changed the title OM2: WIP collab 13.03.2026 OM2: WIP collab 03.2026 Mar 17, 2026
Signed-off-by: bwplotka <bwplotka@gmail.com>

tmp

Signed-off-by: bwplotka <bwplotka@gmail.com>

tmp

Signed-off-by: bwplotka <bwplotka@gmail.com>

update

Signed-off-by: bwplotka <bwplotka@gmail.com>
@bwplotka bwplotka force-pushed the bwplotka-omwg-review branch from 0badf83 to 6317f09 Compare March 20, 2026 12:22
@bwplotka
Copy link
Copy Markdown
Member Author

Rebased again upfront our WG sync

Signed-off-by: bwplotka <bwplotka@gmail.com>
krajorama added a commit that referenced this pull request Mar 25, 2026
Apply non-comment content changes from PR #2851:

- StateSet: clarify "one Metric with a boolean value per state" and
  add "for a single Timestamp" to ENUM constraint
- Info: remove sentence about encoding ENUMs (to be reconsidered)
- Histogram: fix "Histogram Sample" -> "Histogram" in Sum definition
- Histogram/GaugeHistogram: fix "the later" -> "the latter" (typo)
- Histogram: simplify "A Histogram Sample SHOULD have a Start Timestamp"
- Classic Buckets: fix "This allow" -> "This allows" and
  "performance/anti-denial-of-service" -> "performance or anti-denial-of-service"
- Classic Buckets: spell out "one second" instead of "1 second"
- Native Buckets: "8 bit" -> "8-bit"
- Native Buckets: remove reserved schema value details (-9..-5, 9..52, -53)
- Native Buckets: use backticks for n, i, i+1 inline code
- Native Buckets: remove "in the following" from MaxFloat64/MinFloat64 parenthetical
- Native Buckets: fix "an lower" -> "a lower"
- Summary: update description to mention "precomputed quantiles" instead of
  "average event size"
- Summary: move SHOULD NOT sentence before backwards compatibility sentence
- Summary: split Start Timestamp sentence and change "relate to" -> "be based on"
- Summary: add backticks around metric name example
- Protocol Negotiation: capitalize "Ingestor" mid-sentence
- ABNF: remove HTML editor note comment

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Coded with Claude Sonnet 4.6.
##### Number

// MAYBE: Clarify floating point exactly / link to where we do this instead of float64
// MAYBE: "ut it MAY be used to signal a division by zero" -> add or any result of the math operations that would result it in.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

both in #2928

// MAYBE: Require encryption? 1.2 is safe?
All ingestor implementations MUST be able to ingest data secured with TLS 1.2 or later. All exposers SHOULD be able to emit data secured with TLS 1.2 or later. Ingestor implementations SHOULD be able to ingest data from HTTP without TLS. All implementations SHOULD use TLS to transmit data.

// TODO: Fix the sentence
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what we meant here. Out-of-band means to me that the negotiation isn't part of the OM2.0 text format, which it isn't so that tracks.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.

This is not really english, still TODO


The OpenMetrics formats are Regular Chomsky Grammars, making writing quick and small parsers possible.

// MAYBE: Be clear on failure modes.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

asked claude:
Two relevant statements, and they are consistent:

Line 380 (Text Format section): "Partial or invalid expositions MUST be considered erroneous in their entirety." — the whole exposition is rejected, not just the affected metric.

Line 1405 (Size Limits section): "If any single value/metric/exposition exceeds such limits then the whole exposition must be rejected." — same conclusion for size limit violations.

The only exception is line 163: "Ingestors MAY reject such MetricFamily" — which allows per-MetricFamily rejection for discouraged name suffixes, but this is a MAY and is specific to that one case.

So the general rule is whole-exposition rejection, with a narrow carve-out for discouraged suffixes.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Signed-off-by: bwplotka <bwplotka@gmail.com>
All ingestor implementations MUST be able to ingest data secured with TLS 1.2 or later. All exposers SHOULD be able to emit data secured with TLS 1.2 or later. Ingestor implementations SHOULD be able to ingest data from HTTP without TLS. All implementations SHOULD use TLS to transmit data.

// TODO: Fix the sentence
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.
Negotiation of which version of the OpenMetrics format to use is out-of-band. For example, for HTTP pull-based exposition, standard HTTP content type negotiation is used and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.


Info metrics are used to expose textual information which SHOULD NOT change during process lifetime. Common examples are an application's version, revision control commit, and the version of a compiler.

// CONSISTENCY: Last pass of Name/name (definition)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO

Comment on lines +212 to +214
<!---
// TODO(??) give example of unknown metadata? No meta exposed, two differently name metric families.
-->
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<!---
// TODO(??) give example of unknown metadata? No meta exposed, two differently name metric families.
-->


Info metrics are used to expose textual information which SHOULD NOT change during process lifetime. Common examples are an application's version, revision control commit, and the version of a compiler.

// CONSISTENCY: Last pass of Name/name (definition)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// CONSISTENCY: Last pass of Name/name (definition)
<!---
// CONSISTENCY(post-rc.0): Last pass of Name/name (definition)
-->

All ingestor implementations MUST be able to ingest data secured with TLS 1.2 or later. All exposers SHOULD be able to emit data secured with TLS 1.2 or later. Ingestor implementations SHOULD be able to ingest data from HTTP without TLS. All implementations SHOULD use TLS to transmit data.

// TODO: Fix the sentence
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example, for pull-based exposition over HTTP standard, when HTTP content type negotiation is used, it MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.

// TODO: Fix the sentence
Negotiation of what version of the OpenMetrics format to use is out-of-band. For example for pull-based exposition over HTTP standard HTTP content type negotiation is used, and MUST default to the oldest version of the standard (i.e. 1.0.0) if no newer version is requested.

// MAYBE: Exposer? Also fallback to text format?
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// MAYBE: Exposer? Also fallback to text format?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants