Conversation
8f1bf07 to
9ada8a5
Compare
9ada8a5 to
277398e
Compare
acd01d9 to
74bd60e
Compare
aded6ca to
0badf83
Compare
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>
0badf83 to
6317f09
Compare
|
Rebased again upfront our WG sync |
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. |
| // 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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
| 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. |
There was a problem hiding this comment.
| 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) |
| <!--- | ||
| // TODO(??) give example of unknown metadata? No meta exposed, two differently name metric families. | ||
| --> |
There was a problem hiding this comment.
| <!--- | |
| // 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) |
There was a problem hiding this comment.
| // 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. |
There was a problem hiding this comment.
| 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? |
There was a problem hiding this comment.
| // MAYBE: Exposer? Also fallback to text format? |
WIP