Skip to content

Avoid off-spec openmetrics exposition when exemplars have empty labels#569

Merged
SuperQ merged 1 commit intoprometheus:mainfrom
orls:fix/openmetrics-empty-exemplar-labels
Feb 28, 2024
Merged

Avoid off-spec openmetrics exposition when exemplars have empty labels#569
SuperQ merged 1 commit intoprometheus:mainfrom
orls:fix/openmetrics-empty-exemplar-labels

Conversation

@orls
Copy link
Contributor

@orls orls commented Jan 13, 2024

Will fix prometheus/client_golang#1333

client_golang currently allows creating exemplars with an empty label set, and they get rendered like:

...
foos_total 42.0 #  1.0 12345.6
...

(Note the double space after the exemplar's opening #)

Based on the current text of the specification, the openmetrics text format effectively requires one label – so it seems best to just ignore the exemplars.

Copy link
Member

@ArthurSens ArthurSens left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the fix :)

cc @bwplotka or @kakkoyun, who have write access in this repo

@SuperQ SuperQ merged commit 9c61db0 into prometheus:main Feb 28, 2024
codeboten referenced this pull request in open-telemetry/opentelemetry-collector Apr 11, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/prometheus/common](https://togithub.com/prometheus/common)
| `v0.48.0` -> `v0.52.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fcommon/v0.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fcommon/v0.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fcommon/v0.48.0/v0.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fcommon/v0.48.0/v0.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/common (github.com/prometheus/common)</summary>

###
[`v0.52.3`](https://togithub.com/prometheus/common/compare/v0.52.2...v0.52.3)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.52.2...v0.52.3)

###
[`v0.52.2`](https://togithub.com/prometheus/common/releases/tag/v0.52.2)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.51.1...v0.52.2)

#### What's Changed

- Drop support for Go older than 1.18 by
[@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/common/pull/612](https://togithub.com/prometheus/common/pull/612)
- fix(protobuf): Correctly decode multi-messages streams by
[@&#8203;srebhan](https://togithub.com/srebhan) in
[https://github.com/prometheus/common/pull/616](https://togithub.com/prometheus/common/pull/616)
- Bump github.com/aws/aws-sdk-go from 1.50.31 to 1.51.11 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/615](https://togithub.com/prometheus/common/pull/615)

#### New Contributors

- [@&#8203;srebhan](https://togithub.com/srebhan) made their first
contribution in
[https://github.com/prometheus/common/pull/616](https://togithub.com/prometheus/common/pull/616)

**Full Changelog**:
prometheus/common@v0.51.1...v0.52.2

###
[`v0.51.1`](https://togithub.com/prometheus/common/releases/tag/v0.51.1)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.51.0...v0.51.1)

#### What's Changed

- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/606](https://togithub.com/prometheus/common/pull/606)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/609](https://togithub.com/prometheus/common/pull/609)
- Retract v0.50.0 by [@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/common/pull/610](https://togithub.com/prometheus/common/pull/610)

**Full Changelog**:
prometheus/common@v0.51.0...v0.51.1

###
[`v0.51.0`](https://togithub.com/prometheus/common/releases/tag/v0.51.0)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.50.0...v0.51.0)

#### What's Changed

- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/604](https://togithub.com/prometheus/common/pull/604)
- expfmt: Add a way to generate different OpenMetrics Formats by
[@&#8203;ywwg](https://togithub.com/ywwg) in
[https://github.com/prometheus/common/pull/596](https://togithub.com/prometheus/common/pull/596)
- Fix string slice definition for FormatFlagOptions. by
[@&#8203;gizmoguy](https://togithub.com/gizmoguy) in
[https://github.com/prometheus/common/pull/607](https://togithub.com/prometheus/common/pull/607)
- Correct logic in sample naming for counters, add new test by
[@&#8203;vesari](https://togithub.com/vesari) in
[https://github.com/prometheus/common/pull/608](https://togithub.com/prometheus/common/pull/608)

#### New Contributors

- [@&#8203;gizmoguy](https://togithub.com/gizmoguy) made their first
contribution in
[https://github.com/prometheus/common/pull/607](https://togithub.com/prometheus/common/pull/607)

**Full Changelog**:
prometheus/common@v0.50.0...v0.51.0

###
[`v0.50.0`](https://togithub.com/prometheus/common/releases/tag/v0.50.0)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.49.0...v0.50.0)

#### What's Changed

- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/594](https://togithub.com/prometheus/common/pull/594)
- Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/593](https://togithub.com/prometheus/common/pull/593)
- Bump github.com/aws/aws-sdk-go from 1.50.27 to 1.50.29 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/592](https://togithub.com/prometheus/common/pull/592)
- Bump github.com/aws/aws-sdk-go from 1.50.29 to 1.50.31 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/595](https://togithub.com/prometheus/common/pull/595)
- Remove unused 'Host' member from HTTPClientConfig by
[@&#8203;bboreham](https://togithub.com/bboreham) in
[https://github.com/prometheus/common/pull/597](https://togithub.com/prometheus/common/pull/597)
- Add OpenMetrics unit support by
[@&#8203;vesari](https://togithub.com/vesari) in
[https://github.com/prometheus/common/pull/544](https://togithub.com/prometheus/common/pull/544)
- Remove deprecated version function by
[@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/common/pull/591](https://togithub.com/prometheus/common/pull/591)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/599](https://togithub.com/prometheus/common/pull/599)
- Bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/600](https://togithub.com/prometheus/common/pull/600)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/601](https://togithub.com/prometheus/common/pull/601)

**Full Changelog**:
prometheus/common@v0.49.0...v0.50.0

###
[`v0.49.0`](https://togithub.com/prometheus/common/releases/tag/v0.49.0)

[Compare
Source](https://togithub.com/prometheus/common/compare/v0.48.0...v0.49.0)

#### What's Changed

- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/574](https://togithub.com/prometheus/common/pull/574)
- Bump github.com/aws/aws-sdk-go from 1.49.13 to 1.50.8 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/571](https://togithub.com/prometheus/common/pull/571)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/common/pull/581](https://togithub.com/prometheus/common/pull/581)
- Update Go by [@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/common/pull/588](https://togithub.com/prometheus/common/pull/588)
- Deprecate version.NewCollector by
[@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/common/pull/579](https://togithub.com/prometheus/common/pull/579)
- Bump github.com/aws/aws-sdk-go from 1.50.8 to 1.50.27 in /sigv4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/587](https://togithub.com/prometheus/common/pull/587)
- Avoid off-spec openmetrics exposition when exemplars have empty labels
by [@&#8203;orls](https://togithub.com/orls) in
[https://github.com/prometheus/common/pull/569](https://togithub.com/prometheus/common/pull/569)
- Bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/common/pull/585](https://togithub.com/prometheus/common/pull/585)
- Write created lines when negotiating OpenMetrics by
[@&#8203;ArthurSens](https://togithub.com/ArthurSens) in
[https://github.com/prometheus/common/pull/504](https://togithub.com/prometheus/common/pull/504)
- Upgrade client_model to v.0.6.0 by
[@&#8203;vesari](https://togithub.com/vesari) in
[https://github.com/prometheus/common/pull/589](https://togithub.com/prometheus/common/pull/589)
- http_config: Add host by
[@&#8203;jkroepke](https://togithub.com/jkroepke) in
[https://github.com/prometheus/common/pull/549](https://togithub.com/prometheus/common/pull/549)
- LabelSet: Fix alphabetical sorting for prometheus LabelSet by
[@&#8203;wasim-nihal](https://togithub.com/wasim-nihal) in
[https://github.com/prometheus/common/pull/575](https://togithub.com/prometheus/common/pull/575)
- labelset: optimise String() function by
[@&#8203;bboreham](https://togithub.com/bboreham) in
[https://github.com/prometheus/common/pull/590](https://togithub.com/prometheus/common/pull/590)

#### New Contributors

- [@&#8203;orls](https://togithub.com/orls) made their first
contribution in
[https://github.com/prometheus/common/pull/569](https://togithub.com/prometheus/common/pull/569)
- [@&#8203;vesari](https://togithub.com/vesari) made their first
contribution in
[https://github.com/prometheus/common/pull/589](https://togithub.com/prometheus/common/pull/589)

**Full Changelog**:
prometheus/common@v0.48.0...v0.49.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
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.

Bug: empty exemplar labels results in invalid metrics format

3 participants