Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor default runtime metrics tests for Go collector so that default runtime metric set autogenerates #1631

Merged

Conversation

vesari
Copy link
Contributor

@vesari vesari commented Sep 19, 2024

In this PR I modify the gen_go_collector_set.go file so that the default runtime metrics list gets autogenerated (like a few test helpers functions already did) so that it can vary automatically according to the Go versions.
This is tied to the #1575 issue.

@vesari
Copy link
Contributor Author

vesari commented Sep 19, 2024

Once I'll have fixed the linters' complaints, I might still do some refactoring in gen_go_collector_set.go where probably the function computeMetricsList() can be changed to reduce repetitions happening in that file after I modified it.

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.

Does it make sense to add a Github Action workflow that runs make generate-go-collector-test-files and asserts that there's no git diff?

var defaultRuntimeMetricsList []string

for _, d := range defaultRuntimeDesc {
if trans := rm2prom(d); trans != "" {
Copy link
Member

Choose a reason for hiding this comment

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

What does trans means? Not sure I understand the variable name 🥲

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi, I was still simplifying a bit as announced ;), so I condensed the piece of code you are referring to. Nonetheless, to answer your question. I maintained the naming of that trans variable to be consistent with similar pre-existing usages in this file and in gen_go_collector_metrics_set.go. Under the hood, the function rm2prom calls internal.RuntimeMetricsToProm and there I could assume that trans stands for "translation".

@vesari
Copy link
Contributor Author

vesari commented Sep 20, 2024

Does it make sense to add a Github Action workflow that runs make generate-go-collector-test-files and asserts that there's no git diff?

I haven't looked into what GitHub Actions does right now, but if as things stand there's no such check, then I guess it wouldn't hurt. I wonder if that would be for another PR though. On a side note, one thing I noticed is that before I merged the main branch into mine, the autogeneration included the test file for go1.20, but afterwards it wouldn't anymore, as it appears to be excluded from that process. So I wonder, are we foreseeing to discontinue support for go1.20 anytime soon? If not, was there any reason for that exclusion? @bwplotka and @kakkoyun asking you as well :D

Copy link
Member

@bwplotka bwplotka left a comment

Choose a reason for hiding this comment

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

LGTM, I am happy to solve 2 other problems (2 generative scripts instead of one and CI job for no manual changes) in other PRs.

However I want double check if we can get rid of this complex withDefaultRuntimeMetrics function... 🤔 Proposed something

@@ -62,6 +62,28 @@ var memstatMetrics = []string{
"go_memstats_sys_bytes",
}

func withDefaultRuntimeMetrics(metricNames []string, withoutGC, withoutSched bool) []string {
Copy link
Member

Choose a reason for hiding this comment

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

Hm, can you remind me why we need this?

It looks we use it here:

{
			name:     "allow GC",
			rules:    []GoRuntimeMetricsRule{MetricsGC},
			expected: withDefaultRuntimeMetrics(withGCMetrics(), true, false),
		},
		{
			name:     "allow Memory",
			rules:    []GoRuntimeMetricsRule{MetricsMemory},
			expected: withDefaultRuntimeMetrics(withMemoryMetrics(), false, false),
		},
		{
			name:     "allow Scheduler",
			rules:    []GoRuntimeMetricsRule{MetricsScheduler},
			expected: withDefaultRuntimeMetrics(withSchedulerMetrics(), false, true),
		},
		{
			name:     "allow debug",
			rules:    []GoRuntimeMetricsRule{MetricsDebug},
			expected: withDefaultRuntimeMetrics(withDebugMetrics(), false, false),
		},

But it all those cases we expect default metrics, so why not adding defaultRuntimeMetrics always? Is it about duplications? Then let's have dedupSort function for name? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I see your point. I also would like for it to be simpler, and maybe there are ways to simplify it that I'm not seeing right now... but in any case it's not only about deduplicating and sorting; it's also about not including metrics (especially when they don't exist in go1.20) according to the different allow/deny list scenarios. In fact it's also used once in TestGoCollectorDenyList. Shall I change the name to dedupSort all the same? Or make any other change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

And thanks for taking care of the other 2 problems! <3

Copy link
Member

Choose a reason for hiding this comment

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

. but in any case it's not only about deduplicating and sorting; it's also about not including metrics (especially when they don't exist in go1.20)

but that is solved with defaultRuntimeMetrics generation, no?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The defaultRuntimeMetrics generation solves the problem of defining what the set of default runtime metrics looks like for a given Go version; in practice this allows adding the right set of default runtime metrics as is, when there are no deny lists at all OR when no deny list matches either all gc or all sched metrics.

But in this function (which lives in a file that has to work with all the supported Go versions indifferently) I chose the approach where in practice I append the non-denied default metrics to the rest of the other requested metrics in a hard-coded way. That is to say, I append a subset of those metrics; a subset that is not dynamically generated, unlike the whole set.

So when it comes to cases when only some of the default runtime metrics have to be filtered out because of deny lists matching gc OR sched (not both: both is a non-problem), the subset to be appended may be different according to the version but I cannot dynamically/automatically reflect those differences in that function: hence all the many conditionals. Shall I think of a different, more dynamic solution?

Copy link
Contributor Author

@vesari vesari Sep 20, 2024

Choose a reason for hiding this comment

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

Incidentally: Arthur just wrote in Slack that we shouldn’t be worrying about supporting go1.20. If that means that the tests for go1.20 can be deleted, then at least half of this problem is solved, as the default runtime metrics list looks exactly the same starting from go 1.21. But maybe there are reasons we should still be keeping them around for a while.

Copy link
Member

Choose a reason for hiding this comment

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

I'm fine with deleting 1.20 test files, we don't even run them in CI anymore

@bwplotka
Copy link
Member

And thanks for helping 💪🏽

@vesari
Copy link
Contributor Author

vesari commented Sep 21, 2024

I could simplify the function a bit, but it's still the same not completely dynamic approach. Maybe I can think of something more future proof.

@vesari
Copy link
Contributor Author

vesari commented Sep 21, 2024

Ok, I implemented another approach. Now the default runtime metrics subsets (needed to be included in or excluded from the final selection of metrics) are also generated. This makes withDefaultRuntimeMetrics func cleaner and more resilient. I'm still leaving it in the go_collector_latest_test.go for better visibility, rather than moving it into gen_go_collector_set.go

Copy link
Member

@bwplotka bwplotka left a comment

Choose a reason for hiding this comment

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

Thanks! Let me propose what I meant (or realize there is no better approach) in a different PR, this is already a lot better thank You!

@bwplotka bwplotka merged commit ff60566 into prometheus:main Sep 23, 2024
10 checks passed
@vesari
Copy link
Contributor Author

vesari commented Sep 23, 2024

Thanks! Let me propose what I meant (or realize there is no better approach) in a different PR, this is already a lot better thank You!

Thank you! I wouldn't be surprised if there were better approaches and I'd be very happy if you could come up with one 👯 . I know it's not ideal to have so many similar-looking variables (outside of functions, on top of that); I mainly tried to keep what's in the Go templates to a minimum, as not everybody finds them super readable 😝

amberpixels pushed a commit to amberpixels/prometheus_client_golang that referenced this pull request Nov 29, 2024
…lt runtime metric set autogenerates (prometheus#1631)

* Enable autogeneration for default runtime metrics list in collectors tests according to Go version

Signed-off-by: Arianna Vespri <[email protected]>

* Adapt withDefaultRuntimeMetrics function to work regardless of the Go version

Signed-off-by: Arianna Vespri <[email protected]>

* Autogenerate go collector test for go1.23

Signed-off-by: Arianna Vespri <[email protected]>

* Modify gen_go_collector_set.go to please linter and regenerate files

Signed-off-by: Arianna Vespri <[email protected]>

* Simplify gen_go_collector_set.go logic by modifying func computeMetricsList

Signed-off-by: Arianna Vespri <[email protected]>

* Slight simplification of withDefaultRuntimeMetrics func

Signed-off-by: Arianna Vespri <[email protected]>

* Refactor withDefaultRuntimeMetrics with generated default runtime metrics subsets

Signed-off-by: Arianna Vespri <[email protected]>

---------

Signed-off-by: Arianna Vespri <[email protected]>
Signed-off-by: Eugene <[email protected]>
renovate bot added a commit to anza-labs/kvm-device-plugin that referenced this pull request Mar 5, 2025
….1 (#5)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.19.1` -> `v1.21.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v1.21.1`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.1):
/ 2025-03-04

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.21.0...v1.21.1)

This release addresses a major performance regression introduced in
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
-- thanks to all who [reported this
quickly](https://redirect.github.com/prometheus/client_golang/issues/1748):
[@&#8203;chlunde](https://redirect.github.com/chlunde),
[@&#8203;dethi](https://redirect.github.com/dethi),
[@&#8203;aaronbee](https://redirect.github.com/aaronbee)
[@&#8203;tsuna](https://redirect.github.com/tsuna) 💪🏽. This patch
release also fixes the iOS build.

We will be hardening the release process even further
([#&#8203;1759](https://redirect.github.com/prometheus/client_golang/issues/1759),
[#&#8203;1761](https://redirect.github.com/prometheus/client_golang/issues/1761))
to prevent this in future, sorry for the inconvenience!

The high concurrency optimization is planned to be eventually
reintroduced, however in a much safer manner, potentially in a separate
API.

- \[BUGFIX] prometheus: Revert of `Inc`, `Add` and `Observe` cumulative
metric CAS optimizations
([#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)),
causing regressions on low concurrency cases
[#&#8203;1757](https://redirect.github.com/prometheus/client_golang/issues/1757)
- \[BUGFIX] prometheus: Fix GOOS=ios build, broken due to
process_collector_\* wrong build tags.
[#&#8203;1758](https://redirect.github.com/prometheus/client_golang/issues/1758)

<details>
<summary>All commits</summary>

- Revert "exponential backoff for CAS operations on floats" and cut
1.21.1 by [@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1757](https://redirect.github.com/prometheus/client_golang/pull/1757)
- Fix ios build for 1.21.1 by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1758](https://redirect.github.com/prometheus/client_golang/pull/1758)

</details>

**Full Changelog**:
prometheus/client_golang@v1.21.0...v1.21.1

###
[`v1.21.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.0):
/ 2025-02-19

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.5...v1.21.0)

:warning: This release contains potential breaking change if you upgrade
`github.com/prometheus/common` to 0.62+ together with client_golang (and
depend on the strict, legacy validation for the label names). New common
version [changes `model.NameValidationScheme` global
variable](https://redirect.github.com/prometheus/common/pull/724), which
relaxes the validation of label names and metric name, allowing all
UTF-8 characters. Typically, this should not break any user, unless your
test or usage expects strict certain names to panic/fail on
client_golang metric registration, gathering or scrape. In case of
problems change `model.NameValidationScheme` to old
`model.LegacyValidation` value in your project `init` function.
:warning:

- \[BUGFIX] gocollector: Fix help message for runtime/metric metrics.
[#&#8203;1583](https://redirect.github.com/prometheus/client_golang/issues/1583)
- \[BUGFIX] prometheus: Fix `Desc.String()` method for no labels case.
[#&#8203;1687](https://redirect.github.com/prometheus/client_golang/issues/1687)
- \[PERF] prometheus: Optimize popular `prometheus.BuildFQName`
function; now up to 30% faster.
[#&#8203;1665](https://redirect.github.com/prometheus/client_golang/issues/1665)
- \[PERF] prometheus: Optimize `Inc`, `Add` and `Observe` cumulative
metrics; now up to 50% faster under high concurrent contention.
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
- \[CHANGE] Upgrade prometheus/common to 0.62.0 which changes
`model.NameValidationScheme` global variable.
[#&#8203;1712](https://redirect.github.com/prometheus/client_golang/issues/1712)
- \[CHANGE] Add support for Go 1.23.
[#&#8203;1602](https://redirect.github.com/prometheus/client_golang/issues/1602)
- \[FEATURE] process_collector: Add support for Darwin systems.
[#&#8203;1600](https://redirect.github.com/prometheus/client_golang/issues/1600)
[#&#8203;1616](https://redirect.github.com/prometheus/client_golang/issues/1616)
[#&#8203;1625](https://redirect.github.com/prometheus/client_golang/issues/1625)
[#&#8203;1675](https://redirect.github.com/prometheus/client_golang/issues/1675)
[#&#8203;1715](https://redirect.github.com/prometheus/client_golang/issues/1715)
- \[FEATURE] api: Add ability to invoke `CloseIdleConnections` on
api.Client using `api.Client.(CloseIdler).CloseIdleConnections()`
casting.
[#&#8203;1513](https://redirect.github.com/prometheus/client_golang/issues/1513)
- \[FEATURE] promhttp: Add
`promhttp.HandlerOpts.EnableOpenMetricsTextCreatedSamples` option to
create OpenMetrics \_created lines. Not recommended unless you want to
use opt-in Created Timestamp feature. Community works on OpenMetrics 2.0
format that should make those lines obsolete (they increase cardinality
significantly).
[#&#8203;1408](https://redirect.github.com/prometheus/client_golang/issues/1408)
- \[FEATURE] prometheus: Add `NewConstNativeHistogram` function.
[#&#8203;1654](https://redirect.github.com/prometheus/client_golang/issues/1654)

<details>
<summary> All commits </summary>
* Merge release-1.20 to main by @&#8203;bwplotka in
prometheus/client_golang#1582
* gocollector: Tiny fix for help message with runtime/metrics source. by
@&#8203;bwplotka in
prometheus/client_golang#1583
* ci: bump dagger to the latest version by @&#8203;marcosnils in
prometheus/client_golang#1588
* Merge release-1.20 back to main by @&#8203;ArthurSens in
prometheus/client_golang#1593
* Update linting by @&#8203;SuperQ in
prometheus/client_golang#1603
* Update supported Go versions by @&#8203;SuperQ in
prometheus/client_golang#1602
* build(deps): bump golang.org/x/sys from 0.22.0 to 0.24.0 by
@&#8203;dependabot in
prometheus/client_golang#1611
* build(deps): bump github.com/prometheus/common from 0.55.0 to 0.57.0
by @&#8203;dependabot in
prometheus/client_golang#1612
* changed the name of all variables with min/max name by
@&#8203;parthlaw in
prometheus/client_golang#1606
* Update Dagger and build. by @&#8203;SuperQ in
prometheus/client_golang#1610
* build(deps): bump github/codeql-action from 3.25.15 to 3.26.6 in the
github-actions group across 1 directory by @&#8203;dependabot in
prometheus/client_golang#1614
* examples: Improved GoCollector example. by @&#8203;bwplotka in
prometheus/client_golang#1589
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1615
* process_collector: fill in most statistics on macOS by
@&#8203;mharbison72 in
prometheus/client_golang#1600
* ⚡ http client defer CloseIdleConnections by @&#8203;cuisongliu in
prometheus/client_golang#1513
* Set allow-utf-8 in Format during tests to avoid escaping. by
@&#8203;ywwg in prometheus/client_golang#1618
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1622
* Merge Release 1.20 back to main by @&#8203;ArthurSens in
prometheus/client_golang#1627
* examples: Add custom labels example by @&#8203;ying-jeanne in
prometheus/client_golang#1626
* Refactor default runtime metrics tests for Go collector so that
default runtime metric set autogenerates by @&#8203;vesari in
prometheus/client_golang#1631
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1628
* process_xxx_memory statistics for macOS (cgo) by @&#8203;mharbison72
in prometheus/client_golang#1616
* build(deps): bump github.com/klauspost/compress from 1.17.9 to 1.17.10
by @&#8203;dependabot in
prometheus/client_golang#1633
* build(deps): bump golang.org/x/sys from 0.24.0 to 0.25.0 by
@&#8203;dependabot in
prometheus/client_golang#1632
* process_collector: Add Platform-Specific Describe for processCollector
by @&#8203;ying-jeanne in
prometheus/client_golang#1625
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1635
* build(deps): bump the github-actions group with 4 updates by
@&#8203;dependabot in
prometheus/client_golang#1634
* Optionally print OM created lines by @&#8203;ArthurSens in
prometheus/client_golang#1408
* process_collector: merge wasip1 and js into a single implementation by
@&#8203;ying-jeanne in
prometheus/client_golang#1644
* Merge release 1.20 to main by @&#8203;bwplotka in
prometheus/client_golang#1647
* Add Arianna as maintainer 💪 by @&#8203;ArthurSens in
prometheus/client_golang#1651
* test add headers round tripper by @&#8203;Manask322 in
prometheus/client_golang#1657
* build(deps): bump github.com/klauspost/compress from 1.17.10 to
1.17.11 by @&#8203;dependabot in
prometheus/client_golang#1668
* build(deps): bump golang.org/x/sys from 0.25.0 to 0.26.0 by
@&#8203;dependabot in
prometheus/client_golang#1669
* build(deps): bump github.com/prometheus/common from 0.59.1 to 0.60.1
by @&#8203;dependabot in
prometheus/client_golang#1667
* build(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 by
@&#8203;dependabot in
prometheus/client_golang#1670
* Optimize BuildFQName function by @&#8203;jkroepke in
prometheus/client_golang#1665
* fix: use injected now() instead of time.Now() in summary methods by
@&#8203;imorph in prometheus/client_golang#1672
* process_collector: avoid a compiler warning on macOS (fixes
#&#8203;1660) by @&#8203;mharbison72 in
prometheus/client_golang#1675
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1674
* build(deps): bump the github-actions group across 1 directory with 3
updates by @&#8203;dependabot in
prometheus/client_golang#1678
* [chore]: enable perfsprint linter by @&#8203;mmorel-35 in
prometheus/client_golang#1676
* Duplicate of #&#8203;1662 by @&#8203;imorph in
prometheus/client_golang#1673
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1679
* chore: enable usestdlibvars linter by @&#8203;mmorel-35 in
prometheus/client_golang#1680
* Add: exponential backoff for CAS operations on floats by
@&#8203;imorph in prometheus/client_golang#1661
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1683
* [1617] Add ConstnativeHistogram by @&#8203;shivanthzen in
prometheus/client_golang#1654
* fix: replace fmt.Errorf with errors.New by @&#8203;kakkoyun in
prometheus/client_golang#1689
* Add codeowners by @&#8203;kakkoyun in
prometheus/client_golang#1688
* fix: add very small delay between observations in
`TestHistogramAtomicObserve` by @&#8203;imorph in
prometheus/client_golang#1691
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1692
* Fix: handle nil variableLabels in Desc.String() method and add tests
for nil label values by @&#8203;kakkoyun in
prometheus/client_golang#1687
* examples: Follow best practices and established naming conventions by
@&#8203;lilic in prometheus/client_golang#1650
* setup OSSF Scorecard workflow by @&#8203;mmorel-35 in
prometheus/client_golang#1432
* build(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 by
@&#8203;dependabot in
prometheus/client_golang#1697
* build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 by
@&#8203;dependabot in
prometheus/client_golang#1696
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
prometheus/client_golang#1695
* update links to openmetrics to reference the v1.0.0 release by
@&#8203;dashpole in
prometheus/client_golang#1699
* build(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.1 by
@&#8203;dependabot in
prometheus/client_golang#1706
* build(deps): bump golang.org/x/sys from 0.27.0 to 0.28.0 by
@&#8203;dependabot in
prometheus/client_golang#1705
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
prometheus/client_golang#1707
* build(deps): bump github.com/prometheus/common from 0.60.1 to 0.61.0
by @&#8203;dependabot in
prometheus/client_golang#1704
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1703
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1708
* Upgrade to prometheus/common 0.62.0 with breaking change by
@&#8203;bwplotka in
prometheus/client_golang#1712
* build(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 in
/tutorials/whatsup by @&#8203;dependabot in
prometheus/client_golang#1713
* docs: Add RELEASE.md for the release process by @&#8203;kakkoyun in
prometheus/client_golang#1690
* tutorials/whatsup: Updated deps by @&#8203;bwplotka in
prometheus/client_golang#1716
* process collector: Fixed pedantic registry failures on darwin with
cgo. by @&#8203;bwplotka in
prometheus/client_golang#1715
* Revert "ci: daggerize test and lint pipelines (#&#8203;1534)" by
@&#8203;bwplotka in
prometheus/client_golang#1717
* Cut 1.21.0-rc.0 by @&#8203;bwplotka in
prometheus/client_golang#1718
* Cut 1.21 by @&#8203;bwplotka in
prometheus/client_golang#1737
</details>

#### New Contributors
* @&#8203;parthlaw made their first
contributi[https://github.com/prometheus/client_golang/pull/1606](https://redirect.github.com/prometheus/client_golang/pull/1606)l/1606
* @&#8203;mharbison72 made their first
contributi[https://github.com/prometheus/client_golang/pull/1600](https://redirect.github.com/prometheus/client_golang/pull/1600)l/1600
* @&#8203;cuisongliu made their first
contributi[https://github.com/prometheus/client_golang/pull/1513](https://redirect.github.com/prometheus/client_golang/pull/1513)l/1513
* @&#8203;ying-jeanne made their first
contributi[https://github.com/prometheus/client_golang/pull/1626](https://redirect.github.com/prometheus/client_golang/pull/1626)l/1626
* @&#8203;Manask322 made their first
contributi[https://github.com/prometheus/client_golang/pull/1657](https://redirect.github.com/prometheus/client_golang/pull/1657)l/1657
* @&#8203;jkroepke made their first
contributi[https://github.com/prometheus/client_golang/pull/1665](https://redirect.github.com/prometheus/client_golang/pull/1665)l/1665
* @&#8203;imorph made their first
contributi[https://github.com/prometheus/client_golang/pull/1672](https://redirect.github.com/prometheus/client_golang/pull/1672)l/1672
* @&#8203;mmorel-35 made their first
contributi[https://github.com/prometheus/client_golang/pull/1676](https://redirect.github.com/prometheus/client_golang/pull/1676)l/1676
* @&#8203;shivanthzen made their first
contributi[https://github.com/prometheus/client_golang/pull/1654](https://redirect.github.com/prometheus/client_golang/pull/1654)l/1654
* @&#8203;dashpole made their first
contributi[https://github.com/prometheus/client_golang/pull/1699](https://redirect.github.com/prometheus/client_golang/pull/1699)l/1699

**Full Changelog**:
prometheus/client_golang@v1.20.5...v1.21.0

###
[`v1.20.5`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.5):
/ 2024-10-15

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.4...v1.20.5)

We decided to revert [the `testutil`
change](https://redirect.github.com/prometheus/client_golang/pull/1424)
that made our util functions less error-prone, but created a lot of work
for our downstream users. Apologies for the pain! This revert should not
cause any major breaking change, even if you already did the
work--unless you depend on the [exact error
message](https://redirect.github.com/grafana/mimir/pull/9624#issuecomment-2413401565).

Going forward, we plan to reinforce our release testing strategy
[\[1\]](https://redirect.github.com/prometheus/client_golang/issues/1646),[\[2\]](https://redirect.github.com/prometheus/client_golang/issues/1648)
and deliver an enhanced [`testutil`
package/module](https://redirect.github.com/prometheus/client_golang/issues/1639)
with more flexible and safer APIs.

Thanks to [@&#8203;dashpole](https://redirect.github.com/dashpole)
[@&#8203;dgrisonnet](https://redirect.github.com/dgrisonnet)
[@&#8203;kakkoyun](https://redirect.github.com/kakkoyun)
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens)
[@&#8203;vesari](https://redirect.github.com/vesari)
[@&#8203;logicalhan](https://redirect.github.com/logicalhan)
[@&#8203;krajorama](https://redirect.github.com/krajorama)
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) who helped in
this patch release! 🤗

##### Changelog

\[BUGFIX] testutil: Reverted
[#&#8203;1424](https://redirect.github.com/prometheus/client_golang/issues/1424);
functions using compareMetricFamilies are (again) only failing if
filtered metricNames are in the expected input.
[#&#8203;1645](https://redirect.github.com/prometheus/client_golang/issues/1645)

###
[`v1.20.4`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.4)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.3...v1.20.4)

- \[BUGFIX] histograms: Fix a possible data race when appending
exemplars vs metrics gather.
[#&#8203;1623](https://redirect.github.com/prometheus/client_golang/issues/1623)

###
[`v1.20.3`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.3)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.2...v1.20.3)

- \[BUGFIX] histograms: Fix possible data race when appending exemplars.
[#&#8203;1608](https://redirect.github.com/prometheus/client_golang/issues/1608)

###
[`v1.20.2`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.2)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.1...v1.20.2)

- \[BUGFIX] promhttp: Unset Content-Encoding header when data is
uncompressed.
[#&#8203;1596](https://redirect.github.com/prometheus/client_golang/issues/1596)

###
[`v1.20.1`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.1)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.0...v1.20.1)

This release contains the critical fix for the
[issue](https://redirect.github.com/prometheus/client_golang/issues/1584).
Thanks to [@&#8203;geberl](https://redirect.github.com/geberl),
[@&#8203;CubicrootXYZ](https://redirect.github.com/CubicrootXYZ),
[@&#8203;zetaab](https://redirect.github.com/zetaab) and
[@&#8203;timofurrer](https://redirect.github.com/timofurrer) for helping
us with the investigation!

- \[BUGFIX] process-collector: Fixed unregistered descriptor error when
using process collector with PedanticRegistry on Linux machines.
[#&#8203;1587](https://redirect.github.com/prometheus/client_golang/issues/1587)

###
[`v1.20.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.0)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.19.1...v1.20.0)

Thanks everyone for contributions!

:warning: In this release we remove one (broken anyway, given Go runtime
changes) metric and add three new (representing GOGC, GOMEMLIMIT and
GOMAXPROCS flags) to the default `collectors.NewGoCollector()`
collector. Given its popular usage, expect your binary to expose two
additional metric.

#### Changes

- \[CHANGE] :warning: go-collector: Remove `go_memstat_lookups_total`
metric which was always 0; Go runtime stopped sharing pointer lookup
statistics.
[#&#8203;1577](https://redirect.github.com/prometheus/client_golang/issues/1577)
- \[FEATURE] ⚠️ go-collector: Add 3 default metrics:
`go_gc_gogc_percent`, `go_gc_gomemlimit_bytes` and
`go_sched_gomaxprocs_threads` as those are recommended by the Go team.
[#&#8203;1559](https://redirect.github.com/prometheus/client_golang/issues/1559)
- \[FEATURE] go-collector: Add more information to all metrics' HELP
e.g. the exact `runtime/metrics` sourcing each metric (if relevant).
[#&#8203;1568](https://redirect.github.com/prometheus/client_golang/issues/1568)
[#&#8203;1578](https://redirect.github.com/prometheus/client_golang/issues/1578)
- \[FEATURE] testutil: Add CollectAndFormat method.
[#&#8203;1503](https://redirect.github.com/prometheus/client_golang/issues/1503)
- \[FEATURE] histograms: Add support for exemplars in native histograms.
[#&#8203;1471](https://redirect.github.com/prometheus/client_golang/issues/1471)
- \[FEATURE] promhttp: Add experimental support for `zstd` on scrape,
controlled by the request `Accept-Encoding` header.
[#&#8203;1496](https://redirect.github.com/prometheus/client_golang/issues/1496)
- \[FEATURE] api/v1: Add `WithLimit` parameter to all API methods that
supports it.
[#&#8203;1544](https://redirect.github.com/prometheus/client_golang/issues/1544)
- \[FEATURE] prometheus: Add support for created timestamps in constant
histograms and constant summaries.
[#&#8203;1537](https://redirect.github.com/prometheus/client_golang/issues/1537)
- \[FEATURE] process-collectors: Add network usage metrics:
`process_network_receive_bytes_total` and
`process_network_transmit_bytes_total`.
[#&#8203;1555](https://redirect.github.com/prometheus/client_golang/issues/1555)
- \[FEATURE] promlint: Add duplicated metric lint rule.
[#&#8203;1472](https://redirect.github.com/prometheus/client_golang/issues/1472)
- \[BUGFIX] promlint: Relax metric type in name linter rule.
[#&#8203;1455](https://redirect.github.com/prometheus/client_golang/issues/1455)
-   \[BUGFIX] promhttp: Make sure server
instrumentation wrapping supports new and future extra responseWriter
methods.
[#&#8203;1480](https://redirect.github.com/prometheus/client_golang/issues/1480)
- \[BUGFIX] testutil: Functions using compareMetricFamilies are now
failing if filtered metricNames are not in the input.
[#&#8203;1424](https://redirect.github.com/prometheus/client_golang/issues/1424)

<details>
  <summary>All commits</summary>

- feat(prometheus/testutil/promlint/validations): refine lintMetricType…
by [@&#8203;foehammer127](https://redirect.github.com/foehammer127) in
[https://github.com/prometheus/client_golang/pull/1455](https://redirect.github.com/prometheus/client_golang/pull/1455)
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in
/examples/middleware by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1457](https://redirect.github.com/prometheus/client_golang/pull/1457)
- Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1458](https://redirect.github.com/prometheus/client_golang/pull/1458)
- Bump golang.org/x/sys from 0.16.0 to 0.17.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1459](https://redirect.github.com/prometheus/client_golang/pull/1459)
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1461](https://redirect.github.com/prometheus/client_golang/pull/1461)
- Merge Release 1.19 back to main by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1462](https://redirect.github.com/prometheus/client_golang/pull/1462)
- Bump the github-actions group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1456](https://redirect.github.com/prometheus/client_golang/pull/1456)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1466](https://redirect.github.com/prometheus/client_golang/pull/1466)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in
/examples/middleware by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1467](https://redirect.github.com/prometheus/client_golang/pull/1467)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1469](https://redirect.github.com/prometheus/client_golang/pull/1469)
- Add LintDuplicateMetric to promlint by
[@&#8203;bboreham](https://redirect.github.com/bboreham) in
[https://github.com/prometheus/client_golang/pull/1472](https://redirect.github.com/prometheus/client_golang/pull/1472)
- Auto-update Go Collector Metrics for new Go versions by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1476](https://redirect.github.com/prometheus/client_golang/pull/1476)
- Implement Unwrap() for responseWriterDelegator by
[@&#8203;igor-drozdov](https://redirect.github.com/igor-drozdov) in
[https://github.com/prometheus/client_golang/pull/1480](https://redirect.github.com/prometheus/client_golang/pull/1480)
- Bump golang.org/x/sys from 0.17.0 to 0.18.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1485](https://redirect.github.com/prometheus/client_golang/pull/1485)
- Bump github.com/prometheus/procfs from 0.12.0 to 0.13.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1486](https://redirect.github.com/prometheus/client_golang/pull/1486)
- ci: Remove hardcoded supported Go versions from go.yml by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1489](https://redirect.github.com/prometheus/client_golang/pull/1489)
- feat: metrics generation workflow by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1481](https://redirect.github.com/prometheus/client_golang/pull/1481)
- fix: remove redundant go module in middleware example by
[@&#8203;majolo](https://redirect.github.com/majolo) in
[https://github.com/prometheus/client_golang/pull/1492](https://redirect.github.com/prometheus/client_golang/pull/1492)
- chore: Refactor how base metrics are added to Sched metrics by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1483](https://redirect.github.com/prometheus/client_golang/pull/1483)
- gocollector: Add regex option to allow collection of debug runtime
metrics by [@&#8203;ArthurSens](https://redirect.github.com/ArthurSens)
in
[https://github.com/prometheus/client_golang/pull/1389](https://redirect.github.com/prometheus/client_golang/pull/1389)
- Bump github.com/prometheus/common from 0.48.0 to 0.52.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1498](https://redirect.github.com/prometheus/client_golang/pull/1498)
- chore: fix function name in comment by
[@&#8203;oftenoccur](https://redirect.github.com/oftenoccur) in
[https://github.com/prometheus/client_golang/pull/1497](https://redirect.github.com/prometheus/client_golang/pull/1497)
- build(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1501](https://redirect.github.com/prometheus/client_golang/pull/1501)
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1502](https://redirect.github.com/prometheus/client_golang/pull/1502)
- feat(dependency): replace go-spew package by
[@&#8203;dongjiang1989](https://redirect.github.com/dongjiang1989) in
[https://github.com/prometheus/client_golang/pull/1499](https://redirect.github.com/prometheus/client_golang/pull/1499)
- build(deps): bump github.com/prometheus/common from 0.52.3 to 0.53.0
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1504](https://redirect.github.com/prometheus/client_golang/pull/1504)
- build(deps): bump github.com/cespare/xxhash/v2 from 2.2.0 to 2.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1505](https://redirect.github.com/prometheus/client_golang/pull/1505)
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1506](https://redirect.github.com/prometheus/client_golang/pull/1506)
- build(deps): bump golang.org/x/sys from 0.18.0 to 0.19.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1507](https://redirect.github.com/prometheus/client_golang/pull/1507)
- build(deps): bump github.com/prometheus/client_model from 0.6.0 to
0.6.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1508](https://redirect.github.com/prometheus/client_golang/pull/1508)
- build(deps): bump github.com/prometheus/common from 0.48.0 to 0.53.0
in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1509](https://redirect.github.com/prometheus/client_golang/pull/1509)
- improved code more clean by
[@&#8203;lilijreey](https://redirect.github.com/lilijreey) in
[https://github.com/prometheus/client_golang/pull/1511](https://redirect.github.com/prometheus/client_golang/pull/1511)
- build(deps): bump the github-actions group with 3 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1510](https://redirect.github.com/prometheus/client_golang/pull/1510)
- \[CI]: Add Concurrency Grouping to GitHub Workflows by
[@&#8203;Ishani217](https://redirect.github.com/Ishani217) in
[https://github.com/prometheus/client_golang/pull/1444](https://redirect.github.com/prometheus/client_golang/pull/1444)
- Add CollectAndFormat to testutil, allowing caller to assert as they
want to on the exported metric by
[@&#8203;jcass8695](https://redirect.github.com/jcass8695) in
[https://github.com/prometheus/client_golang/pull/1503](https://redirect.github.com/prometheus/client_golang/pull/1503)
- testutil compareMetricFamilies: make less error-prone by
[@&#8203;leonnicolas](https://redirect.github.com/leonnicolas) in
[https://github.com/prometheus/client_golang/pull/1424](https://redirect.github.com/prometheus/client_golang/pull/1424)
- improved code more clean use time.IsZero() replace t = time.Time{} by
[@&#8203;lilijreey](https://redirect.github.com/lilijreey) in
[https://github.com/prometheus/client_golang/pull/1515](https://redirect.github.com/prometheus/client_golang/pull/1515)
- add native histogram exemplar support by
[@&#8203;fatsheep9146](https://redirect.github.com/fatsheep9146) in
[https://github.com/prometheus/client_golang/pull/1471](https://redirect.github.com/prometheus/client_golang/pull/1471)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1514](https://redirect.github.com/prometheus/client_golang/pull/1514)
- build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1523](https://redirect.github.com/prometheus/client_golang/pull/1523)
- build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1522](https://redirect.github.com/prometheus/client_golang/pull/1522)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1524](https://redirect.github.com/prometheus/client_golang/pull/1524)
- Add PR template for changelog automation by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1517](https://redirect.github.com/prometheus/client_golang/pull/1517)
- Auto label PRs by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1518](https://redirect.github.com/prometheus/client_golang/pull/1518)
- Fix: Auto label PRs
[#&#8203;1518](https://redirect.github.com/prometheus/client_golang/issues/1518)
by [@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1525](https://redirect.github.com/prometheus/client_golang/pull/1525)
- build(deps): bump github.com/prometheus/procfs from 0.13.0 to 0.15.1
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1527](https://redirect.github.com/prometheus/client_golang/pull/1527)
- ci: Group all changelog-related CI jobs into single one by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1526](https://redirect.github.com/prometheus/client_golang/pull/1526)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1530](https://redirect.github.com/prometheus/client_golang/pull/1530)
- Remove synchronize trigger from changelog workflow by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1532](https://redirect.github.com/prometheus/client_golang/pull/1532)
- feat: Support zstd compression by
[@&#8203;mrueg](https://redirect.github.com/mrueg) in
[https://github.com/prometheus/client_golang/pull/1496](https://redirect.github.com/prometheus/client_golang/pull/1496)
- Fix golangci-lint config by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1536](https://redirect.github.com/prometheus/client_golang/pull/1536)
- build(deps): bump github.com/prometheus/client_golang from 1.19.0 to
1.19.1 in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1529](https://redirect.github.com/prometheus/client_golang/pull/1529)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1531](https://redirect.github.com/prometheus/client_golang/pull/1531)
- Cleanup NOTICE file by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1541](https://redirect.github.com/prometheus/client_golang/pull/1541)
- Remove inlined upstream code by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1539](https://redirect.github.com/prometheus/client_golang/pull/1539)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1545](https://redirect.github.com/prometheus/client_golang/pull/1545)
- client: Add Option to provide limit query param for APIs that support
it by [@&#8203;abbyssoul](https://redirect.github.com/abbyssoul) in
[https://github.com/prometheus/client_golang/pull/1544](https://redirect.github.com/prometheus/client_golang/pull/1544)
- Allow creating constant histogram and summary metrics with a created
timestamp by [@&#8203;swar8080](https://redirect.github.com/swar8080) in
[https://github.com/prometheus/client_golang/pull/1537](https://redirect.github.com/prometheus/client_golang/pull/1537)
- Update README.md by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1556](https://redirect.github.com/prometheus/client_golang/pull/1556)
- Temporarily remove required CI job for changelog. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1560](https://redirect.github.com/prometheus/client_golang/pull/1560)
- build(deps): bump github.com/prometheus/common from 0.53.0 to 0.55.0
in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1549](https://redirect.github.com/prometheus/client_golang/pull/1549)
- build(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1552](https://redirect.github.com/prometheus/client_golang/pull/1552)
- build(deps): bump github.com/klauspost/compress from 1.17.8 to 1.17.9
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1553](https://redirect.github.com/prometheus/client_golang/pull/1553)
- fix: Update Go tests by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1562](https://redirect.github.com/prometheus/client_golang/pull/1562)
- process_collector: collect received/transmitted bytes by
[@&#8203;huwcbjones](https://redirect.github.com/huwcbjones) in
[https://github.com/prometheus/client_golang/pull/1555](https://redirect.github.com/prometheus/client_golang/pull/1555)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1561](https://redirect.github.com/prometheus/client_golang/pull/1561)
- chore: Remove half-implemented changelog automation by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1564](https://redirect.github.com/prometheus/client_golang/pull/1564)
- build(deps): bump the github-actions group across 1 directory with 3
updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)
in
[https://github.com/prometheus/client_golang/pull/1565](https://redirect.github.com/prometheus/client_golang/pull/1565)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1563](https://redirect.github.com/prometheus/client_golang/pull/1563)
- build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1551](https://redirect.github.com/prometheus/client_golang/pull/1551)
- deps: Updated to prometheus/common to 0.55 by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1566](https://redirect.github.com/prometheus/client_golang/pull/1566)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1567](https://redirect.github.com/prometheus/client_golang/pull/1567)
- tutorials: Renamed tutorial -> tutorials for consistency + fixed
tutorial code. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1569](https://redirect.github.com/prometheus/client_golang/pull/1569)
- go collector: add default metrics acceptance tests; adding more
context to HELP by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1568](https://redirect.github.com/prometheus/client_golang/pull/1568)
- build(deps): bump golang.org/x/sys from 0.21.0 to 0.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1570](https://redirect.github.com/prometheus/client_golang/pull/1570)
- build(deps): bump the github-actions group with 3 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1571](https://redirect.github.com/prometheus/client_golang/pull/1571)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1572](https://redirect.github.com/prometheus/client_golang/pull/1572)
- ci: daggerize test and lint pipelines by
[@&#8203;marcosnils](https://redirect.github.com/marcosnils) in
[https://github.com/prometheus/client_golang/pull/1534](https://redirect.github.com/prometheus/client_golang/pull/1534)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1573](https://redirect.github.com/prometheus/client_golang/pull/1573)
- Add default Go runtime metrics for /gc/gogc:percent,
/gc/gomemlimit:bytes, /sched/gomaxprocs:threads by
[@&#8203;vesari](https://redirect.github.com/vesari) in
[https://github.com/prometheus/client_golang/pull/1559](https://redirect.github.com/prometheus/client_golang/pull/1559)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1576](https://redirect.github.com/prometheus/client_golang/pull/1576)
- Remove go_memstat_lookups_total; added runtime/metrics calculation to
memstat metric's help. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1577](https://redirect.github.com/prometheus/client_golang/pull/1577)
- gocollector: Attach original runtime/metrics metric name to help. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1578](https://redirect.github.com/prometheus/client_golang/pull/1578)

</details>

#### New Contributors
* @&#8203;foehammer127 made their first
contributi[https://github.com/prometheus/client_golang/pull/1455](https://redirect.github.com/prometheus/client_golang/pull/1455)l/1455
* @&#8203;SachinSahu431 made their first
contributi[https://github.com/prometheus/client_golang/pull/1476](https://redirect.github.com/prometheus/client_golang/pull/1476)l/1476
* @&#8203;igor-drozdov made their first
contributi[https://github.com/prometheus/client_golang/pull/1480](https://redirect.github.com/prometheus/client_golang/pull/1480)l/1480
* @&#8203;majolo made their first
contributi[https://github.com/prometheus/client_golang/pull/1492](https://redirect.github.com/prometheus/client_golang/pull/1492)l/1492
* @&#8203;oftenoccur made their first
contributi[https://github.com/prometheus/client_golang/pull/1497](https://redirect.github.com/prometheus/client_golang/pull/1497)l/1497
* @&#8203;dongjiang1989 made their first
contributi[https://github.com/prometheus/client_golang/pull/1499](https://redirect.github.com/prometheus/client_golang/pull/1499)l/1499
* @&#8203;lilijreey made their first
contributi[https://github.com/prometheus/client_golang/pull/1511](https://redirect.github.com/prometheus/client_golang/pull/1511)l/1511
* @&#8203;Ishani217 made their first
contributi[https://github.com/prometheus/client_golang/pull/1444](https://redirect.github.com/prometheus/client_golang/pull/1444)l/1444
* @&#8203;jcass8695 made their first
contributi[https://github.com/prometheus/client_golang/pull/1503](https://redirect.github.com/prometheus/client_golang/pull/1503)l/1503
* @&#8203;leonnicolas made their first
contributi[https://github.com/prometheus/client_golang/pull/1424](https://redirect.github.com/prometheus/client_golang/pull/1424)l/1424
* @&#8203;fatsheep9146 made their first
contributi[https://github.com/prometheus/client_golang/pull/1471](https://redirect.github.com/prometheus/client_golang/pull/1471)l/1471
* @&#8203;abbyssoul made their first
contributi[https://github.com/prometheus/client_golang/pull/1544](https://redirect.github.com/prometheus/client_golang/pull/1544)l/1544
* @&#8203;swar8080 made their first
contributi[https://github.com/prometheus/client_golang/pull/1537](https://redirect.github.com/prometheus/client_golang/pull/1537)l/1537
* @&#8203;huwcbjones made their first
contributi[https://github.com/prometheus/client_golang/pull/1555](https://redirect.github.com/prometheus/client_golang/pull/1555)l/1555
* @&#8203;marcosnils made their first
contributi[https://github.com/prometheus/client_golang/pull/1534](https://redirect.github.com/prometheus/client_golang/pull/1534)l/1534
* @&#8203;vesari made their first
contributi[https://github.com/prometheus/client_golang/pull/1559](https://redirect.github.com/prometheus/client_golang/pull/1559)l/1559

**Full Changelog**:
prometheus/client_golang@v1.19.1...v1.20.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/anza-labs/kvm-device-plugin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhcmVhL2RlcGVuZGVuY3kiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
atoulme pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Mar 6, 2025
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.20.5` -> `v1.21.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.20.5/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.20.5/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

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

###
[`v1.21.1`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.1):
/ 2025-03-04

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.21.0...v1.21.1)

This release addresses a major performance regression introduced in
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
-- thanks to all who [reported this
quickly](https://redirect.github.com/prometheus/client_golang/issues/1748):
[@&#8203;chlunde](https://redirect.github.com/chlunde),
[@&#8203;dethi](https://redirect.github.com/dethi),
[@&#8203;aaronbee](https://redirect.github.com/aaronbee)
[@&#8203;tsuna](https://redirect.github.com/tsuna) 💪🏽. This patch
release also fixes the iOS build.

We will be hardening the release process even further
([#&#8203;1759](https://redirect.github.com/prometheus/client_golang/issues/1759),
[#&#8203;1761](https://redirect.github.com/prometheus/client_golang/issues/1761))
to prevent this in future, sorry for the inconvenience!

The high concurrency optimization is planned to be eventually
reintroduced, however in a much safer manner, potentially in a separate
API.

- \[BUGFIX] prometheus: Revert of `Inc`, `Add` and `Observe` cumulative
metric CAS optimizations
([#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)),
causing regressions on low concurrency cases
[#&#8203;1757](https://redirect.github.com/prometheus/client_golang/issues/1757)
- \[BUGFIX] prometheus: Fix GOOS=ios build, broken due to
process_collector_\* wrong build tags.
[#&#8203;1758](https://redirect.github.com/prometheus/client_golang/issues/1758)

<details>
<summary>All commits</summary>

- Revert "exponential backoff for CAS operations on floats" and cut
1.21.1 by [@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1757](https://redirect.github.com/prometheus/client_golang/pull/1757)
- Fix ios build for 1.21.1 by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1758](https://redirect.github.com/prometheus/client_golang/pull/1758)

</details>

**Full Changelog**:
prometheus/client_golang@v1.21.0...v1.21.1

###
[`v1.21.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.0):
/ 2025-02-19

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.5...v1.21.0)

:warning: This release contains potential breaking change if you upgrade
`github.com/prometheus/common` to 0.62+ together with client_golang (and
depend on the strict, legacy validation for the label names). New common
version [changes `model.NameValidationScheme` global
variable](https://redirect.github.com/prometheus/common/pull/724), which
relaxes the validation of label names and metric name, allowing all
UTF-8 characters. Typically, this should not break any user, unless your
test or usage expects strict certain names to panic/fail on
client_golang metric registration, gathering or scrape. In case of
problems change `model.NameValidationScheme` to old
`model.LegacyValidation` value in your project `init` function.
:warning:

- \[BUGFIX] gocollector: Fix help message for runtime/metric metrics.
[#&#8203;1583](https://redirect.github.com/prometheus/client_golang/issues/1583)
- \[BUGFIX] prometheus: Fix `Desc.String()` method for no labels case.
[#&#8203;1687](https://redirect.github.com/prometheus/client_golang/issues/1687)
- \[PERF] prometheus: Optimize popular `prometheus.BuildFQName`
function; now up to 30% faster.
[#&#8203;1665](https://redirect.github.com/prometheus/client_golang/issues/1665)
- \[PERF] prometheus: Optimize `Inc`, `Add` and `Observe` cumulative
metrics; now up to 50% faster under high concurrent contention.
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
- \[CHANGE] Upgrade prometheus/common to 0.62.0 which changes
`model.NameValidationScheme` global variable.
[#&#8203;1712](https://redirect.github.com/prometheus/client_golang/issues/1712)
- \[CHANGE] Add support for Go 1.23.
[#&#8203;1602](https://redirect.github.com/prometheus/client_golang/issues/1602)
- \[FEATURE] process_collector: Add support for Darwin systems.
[#&#8203;1600](https://redirect.github.com/prometheus/client_golang/issues/1600)
[#&#8203;1616](https://redirect.github.com/prometheus/client_golang/issues/1616)
[#&#8203;1625](https://redirect.github.com/prometheus/client_golang/issues/1625)
[#&#8203;1675](https://redirect.github.com/prometheus/client_golang/issues/1675)
[#&#8203;1715](https://redirect.github.com/prometheus/client_golang/issues/1715)
- \[FEATURE] api: Add ability to invoke `CloseIdleConnections` on
api.Client using `api.Client.(CloseIdler).CloseIdleConnections()`
casting.
[#&#8203;1513](https://redirect.github.com/prometheus/client_golang/issues/1513)
- \[FEATURE] promhttp: Add
`promhttp.HandlerOpts.EnableOpenMetricsTextCreatedSamples` option to
create OpenMetrics \_created lines. Not recommended unless you want to
use opt-in Created Timestamp feature. Community works on OpenMetrics 2.0
format that should make those lines obsolete (they increase cardinality
significantly).
[#&#8203;1408](https://redirect.github.com/prometheus/client_golang/issues/1408)
- \[FEATURE] prometheus: Add `NewConstNativeHistogram` function.
[#&#8203;1654](https://redirect.github.com/prometheus/client_golang/issues/1654)

<details>
<summary> All commits </summary>
* Merge release-1.20 to main by @&#8203;bwplotka in
prometheus/client_golang#1582
* gocollector: Tiny fix for help message with runtime/metrics source. by
@&#8203;bwplotka in
prometheus/client_golang#1583
* ci: bump dagger to the latest version by @&#8203;marcosnils in
prometheus/client_golang#1588
* Merge release-1.20 back to main by @&#8203;ArthurSens in
prometheus/client_golang#1593
* Update linting by @&#8203;SuperQ in
prometheus/client_golang#1603
* Update supported Go versions by @&#8203;SuperQ in
prometheus/client_golang#1602
* build(deps): bump golang.org/x/sys from 0.22.0 to 0.24.0 by
@&#8203;dependabot in
prometheus/client_golang#1611
* build(deps): bump github.com/prometheus/common from 0.55.0 to 0.57.0
by @&#8203;dependabot in
prometheus/client_golang#1612
* changed the name of all variables with min/max name by
@&#8203;parthlaw in
prometheus/client_golang#1606
* Update Dagger and build. by @&#8203;SuperQ in
prometheus/client_golang#1610
* build(deps): bump github/codeql-action from 3.25.15 to 3.26.6 in the
github-actions group across 1 directory by @&#8203;dependabot in
prometheus/client_golang#1614
* examples: Improved GoCollector example. by @&#8203;bwplotka in
prometheus/client_golang#1589
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1615
* process_collector: fill in most statistics on macOS by
@&#8203;mharbison72 in
prometheus/client_golang#1600
* ⚡ http client defer CloseIdleConnections by @&#8203;cuisongliu in
prometheus/client_golang#1513
* Set allow-utf-8 in Format during tests to avoid escaping. by
@&#8203;ywwg in prometheus/client_golang#1618
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1622
* Merge Release 1.20 back to main by @&#8203;ArthurSens in
prometheus/client_golang#1627
* examples: Add custom labels example by @&#8203;ying-jeanne in
prometheus/client_golang#1626
* Refactor default runtime metrics tests for Go collector so that
default runtime metric set autogenerates by @&#8203;vesari in
prometheus/client_golang#1631
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1628
* process_xxx_memory statistics for macOS (cgo) by @&#8203;mharbison72
in prometheus/client_golang#1616
* build(deps): bump github.com/klauspost/compress from 1.17.9 to 1.17.10
by @&#8203;dependabot in
prometheus/client_golang#1633
* build(deps): bump golang.org/x/sys from 0.24.0 to 0.25.0 by
@&#8203;dependabot in
prometheus/client_golang#1632
* process_collector: Add Platform-Specific Describe for processCollector
by @&#8203;ying-jeanne in
prometheus/client_golang#1625
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1635
* build(deps): bump the github-actions group with 4 updates by
@&#8203;dependabot in
prometheus/client_golang#1634
* Optionally print OM created lines by @&#8203;ArthurSens in
prometheus/client_golang#1408
* process_collector: merge wasip1 and js into a single implementation by
@&#8203;ying-jeanne in
prometheus/client_golang#1644
* Merge release 1.20 to main by @&#8203;bwplotka in
prometheus/client_golang#1647
* Add Arianna as maintainer 💪 by @&#8203;ArthurSens in
prometheus/client_golang#1651
* test add headers round tripper by @&#8203;Manask322 in
prometheus/client_golang#1657
* build(deps): bump github.com/klauspost/compress from 1.17.10 to
1.17.11 by @&#8203;dependabot in
prometheus/client_golang#1668
* build(deps): bump golang.org/x/sys from 0.25.0 to 0.26.0 by
@&#8203;dependabot in
prometheus/client_golang#1669
* build(deps): bump github.com/prometheus/common from 0.59.1 to 0.60.1
by @&#8203;dependabot in
prometheus/client_golang#1667
* build(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 by
@&#8203;dependabot in
prometheus/client_golang#1670
* Optimize BuildFQName function by @&#8203;jkroepke in
prometheus/client_golang#1665
* fix: use injected now() instead of time.Now() in summary methods by
@&#8203;imorph in prometheus/client_golang#1672
* process_collector: avoid a compiler warning on macOS (fixes
#&#8203;1660) by @&#8203;mharbison72 in
prometheus/client_golang#1675
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1674
* build(deps): bump the github-actions group across 1 directory with 3
updates by @&#8203;dependabot in
prometheus/client_golang#1678
* [chore]: enable perfsprint linter by @&#8203;mmorel-35 in
prometheus/client_golang#1676
* Duplicate of #&#8203;1662 by @&#8203;imorph in
prometheus/client_golang#1673
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1679
* chore: enable usestdlibvars linter by @&#8203;mmorel-35 in
prometheus/client_golang#1680
* Add: exponential backoff for CAS operations on floats by
@&#8203;imorph in prometheus/client_golang#1661
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1683
* [1617] Add ConstnativeHistogram by @&#8203;shivanthzen in
prometheus/client_golang#1654
* fix: replace fmt.Errorf with errors.New by @&#8203;kakkoyun in
prometheus/client_golang#1689
* Add codeowners by @&#8203;kakkoyun in
prometheus/client_golang#1688
* fix: add very small delay between observations in
`TestHistogramAtomicObserve` by @&#8203;imorph in
prometheus/client_golang#1691
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1692
* Fix: handle nil variableLabels in Desc.String() method and add tests
for nil label values by @&#8203;kakkoyun in
prometheus/client_golang#1687
* examples: Follow best practices and established naming conventions by
@&#8203;lilic in prometheus/client_golang#1650
* setup OSSF Scorecard workflow by @&#8203;mmorel-35 in
prometheus/client_golang#1432
* build(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 by
@&#8203;dependabot in
prometheus/client_golang#1697
* build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 by
@&#8203;dependabot in
prometheus/client_golang#1696
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
prometheus/client_golang#1695
* update links to openmetrics to reference the v1.0.0 release by
@&#8203;dashpole in
prometheus/client_golang#1699
* build(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.1 by
@&#8203;dependabot in
prometheus/client_golang#1706
* build(deps): bump golang.org/x/sys from 0.27.0 to 0.28.0 by
@&#8203;dependabot in
prometheus/client_golang#1705
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
prometheus/client_golang#1707
* build(deps): bump github.com/prometheus/common from 0.60.1 to 0.61.0
by @&#8203;dependabot in
prometheus/client_golang#1704
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1703
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in prometheus/client_golang#1708
* Upgrade to prometheus/common 0.62.0 with breaking change by
@&#8203;bwplotka in
prometheus/client_golang#1712
* build(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 in
/tutorials/whatsup by @&#8203;dependabot in
prometheus/client_golang#1713
* docs: Add RELEASE.md for the release process by @&#8203;kakkoyun in
prometheus/client_golang#1690
* tutorials/whatsup: Updated deps by @&#8203;bwplotka in
prometheus/client_golang#1716
* process collector: Fixed pedantic registry failures on darwin with
cgo. by @&#8203;bwplotka in
prometheus/client_golang#1715
* Revert "ci: daggerize test and lint pipelines (#&#8203;1534)" by
@&#8203;bwplotka in
prometheus/client_golang#1717
* Cut 1.21.0-rc.0 by @&#8203;bwplotka in
prometheus/client_golang#1718
* Cut 1.21 by @&#8203;bwplotka in
prometheus/client_golang#1737
</details>

#### New Contributors
* @&#8203;parthlaw made their first
contributi[https://github.com/prometheus/client_golang/pull/1606](https://redirect.github.com/prometheus/client_golang/pull/1606)l/1606
* @&#8203;mharbison72 made their first
contributi[https://github.com/prometheus/client_golang/pull/1600](https://redirect.github.com/prometheus/client_golang/pull/1600)l/1600
* @&#8203;cuisongliu made their first
contributi[https://github.com/prometheus/client_golang/pull/1513](https://redirect.github.com/prometheus/client_golang/pull/1513)l/1513
* @&#8203;ying-jeanne made their first
contributi[https://github.com/prometheus/client_golang/pull/1626](https://redirect.github.com/prometheus/client_golang/pull/1626)l/1626
* @&#8203;Manask322 made their first
contributi[https://github.com/prometheus/client_golang/pull/1657](https://redirect.github.com/prometheus/client_golang/pull/1657)l/1657
* @&#8203;jkroepke made their first
contributi[https://github.com/prometheus/client_golang/pull/1665](https://redirect.github.com/prometheus/client_golang/pull/1665)l/1665
* @&#8203;imorph made their first
contributi[https://github.com/prometheus/client_golang/pull/1672](https://redirect.github.com/prometheus/client_golang/pull/1672)l/1672
* @&#8203;mmorel-35 made their first
contributi[https://github.com/prometheus/client_golang/pull/1676](https://redirect.github.com/prometheus/client_golang/pull/1676)l/1676
* @&#8203;shivanthzen made their first
contributi[https://github.com/prometheus/client_golang/pull/1654](https://redirect.github.com/prometheus/client_golang/pull/1654)l/1654
* @&#8203;dashpole made their first
contributi[https://github.com/prometheus/client_golang/pull/1699](https://redirect.github.com/prometheus/client_golang/pull/1699)l/1699

**Full Changelog**:
prometheus/client_golang@v1.20.5...v1.21.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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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

3 participants