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

⚡ http client defer CloseIdleConnections #1513

Merged
merged 1 commit into from
Sep 4, 2024

Conversation

cuisongliu
Copy link
Contributor

when high concurrency occurs, the connection is full and the connection is rejected.

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.

Hm, my understanding is that this change would only makes things slower, will not help with too many concurrent connections (if you mean that).

Perhaps a reproduction test would help? Perhaps there is some http transport settings you can adjust, or you hit some other limits?

api/client.go Outdated
@@ -122,6 +122,7 @@ func (c *httpClient) Do(ctx context.Context, req *http.Request) (*http.Response,
if ctx != nil {
req = req.WithContext(ctx)
}
defer c.client.CloseIdleConnections()
Copy link
Member

Choose a reason for hiding this comment

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

Are you sure this is a correct solution?

My understanding is that this closes connections which might be REUSED on the subsequent Do request. So you have to establish them again (overhead)?

Source: https://forum.golangbridge.org/t/when-should-i-use-client-closeidleconnections/19254, https://stackoverflow.com/questions/18697290/apache-httpclient-how-to-auto-close-connections-by-servers-keep-alive-time

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Currently, doing an HTTP probe requiring allocating a new http.Client and http.Transport, and the underlying connections managed by http.Transport might be ESTABLISHED indefinitely if no parties (client or server) directly close them. As a result, if the probes continuously happen, we can see TCP connections opened by one process
drastically increase.

I understand that there may be such a problem in high concurrency. Even if it is reused, the connection is limited and cannot meet the requirements. In this case, the connection may be occupied and new connections cannot be applied for. As a result, the connection request cannot be continued.

PS. I appeared in a high-concurrency scenario, with about 10000 of concurrencies.

Copy link
Member

@bwplotka bwplotka May 10, 2024

Choose a reason for hiding this comment

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

Nice! What "HTTP probe" do you mean? Is it some OSS code or your own app?

Generally it sounds you might use this client incorrectly if you create new client for single Do, assuming you can share the client.

For cases you cannot share e.g. it's serverless or it's on-off request to adhoc destination, I think you can access Config.Client (which is used to create API client) and invoke this method after Do on your own, which would be a correct thing to do 👍🏽

I am also open to create CloseIdleConnections() method on our client with a clear commentary when it's useful to make it easier (:

Would that help?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

in this conde add Close func ?

// Client is the interface for an API client.
type Client interface {
	URL(ep string, args map[string]string) *url.URL
	Do(context.Context, *http.Request) (*http.Response, []byte, error)
}

I think it would be more reasonable if the interface or open functions could be adjusted and allowed to be called by users themselves. Very useful to me too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@bwplotka i am add code to interface using CloseIdleConnections() func . plz review this code ?

Copy link
Member

Choose a reason for hiding this comment

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

Why do we need interface change? Can we remove this defer? Otherwise new method is good 👍🏽

Copy link
Member

Choose a reason for hiding this comment

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

Ok interface change is needed. Let's kill the defer statement here and LGTM!

@cuisongliu cuisongliu force-pushed the close_client branch 3 times, most recently from 274e000 to 05e818a Compare May 13, 2024 02:20
api/client.go Outdated
@@ -75,6 +75,7 @@ func (cfg *Config) validate() error {

// Client is the interface for an API client.
type Client interface {
CloseIdleConnections()
Copy link
Member

Choose a reason for hiding this comment

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

Let's move it down (as 3rd in order)

api/client.go Outdated
@@ -122,6 +122,7 @@ func (c *httpClient) Do(ctx context.Context, req *http.Request) (*http.Response,
if ctx != nil {
req = req.WithContext(ctx)
}
defer c.client.CloseIdleConnections()
Copy link
Member

Choose a reason for hiding this comment

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

Ok interface change is needed. Let's kill the defer statement here and LGTM!

@@ -1342,6 +1342,7 @@ type Warnings []string
// apiClient wraps a regular client and processes successful API responses.
// Successful also includes responses that errored at the API level.
type apiClient interface {
Copy link
Member

Choose a reason for hiding this comment

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

Do we need this change on both interfaces really? Ideally those are very small.

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.

So sorry for blocking this PR again, but I think we should remove interface changes. It is possible to avoid them. WDYT?

Thanks for patience!

@cuisongliu cuisongliu force-pushed the close_client branch 2 times, most recently from ac1acdf to 4029570 Compare May 17, 2024 15:13
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! Almost there 💪🏽

api/client.go Outdated
@@ -79,6 +79,10 @@ type Client interface {
Do(context.Context, *http.Request) (*http.Response, []byte, error)
}

type closeIdler interface {
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
type closeIdler interface {
type CloseIdler interface {

Copy link
Member

Choose a reason for hiding this comment

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

This allows us to avoid shallow ClientCloseIdler function.

api/client.go Outdated
Comment on lines 106 to 109
func ClientCloseIdler(cl Client) {
cl.(closeIdler).CloseIdleConnections()
}

Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
func ClientCloseIdler(cl Client) {
cl.(closeIdler).CloseIdleConnections()
}
func ClientCloseIdler(cl Client) {
cl.(closeIdler).CloseIdleConnections()
}

No need for that, anyone can do cl.(CloseIdler).CloseIdleConnection()

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@@ -79,6 +79,10 @@ type Client interface {
Do(context.Context, *http.Request) (*http.Response, []byte, error)
}

type CloseIdler interface {
Copy link
Member

Choose a reason for hiding this comment

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

Ideally we can comment what this is for, but we can do in a separare PR, thanks!

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!

@bwplotka bwplotka merged commit 89f21b2 into prometheus:main Sep 4, 2024
9 checks passed
amberpixels pushed a commit to amberpixels/prometheus_client_golang that referenced this pull request Nov 29, 2024
charithe added a commit to cerbos/cerbos that referenced this pull request Feb 24, 2025
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go |
`v1.36.5-20250130201111-63bb56e20495.1` ->
`v1.36.5-20250219170025-d39267d9df8f.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.36.5-20250219170025-d39267d9df8f.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.36.5-20250219170025-d39267d9df8f.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.36.5-20250130201111-63bb56e20495.1/v1.36.5-20250219170025-d39267d9df8f.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fbufbuild%2fprotovalidate%2fprotocolbuffers%2fgo/v1.36.5-20250130201111-63bb56e20495.1/v1.36.5-20250219170025-d39267d9df8f.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/aws/aws-sdk-go-v2/config](https://redirect.github.com/aws/aws-sdk-go-v2)
| `v1.29.6` -> `v1.29.7` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.29.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.29.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.29.6/v1.29.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.29.6/v1.29.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/aws/aws-sdk-go-v2/service/marketplacemetering](https://redirect.github.com/aws/aws-sdk-go-v2)
| `v1.25.15` -> `v1.25.16` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.25.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.25.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.25.15/v1.25.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.25.15/v1.25.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/aws/smithy-go](https://redirect.github.com/aws/smithy-go)
| `v1.22.2` -> `v1.22.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2fsmithy-go/v1.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2fsmithy-go/v1.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2fsmithy-go/v1.22.2/v1.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2fsmithy-go/v1.22.2/v1.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/bufbuild/protovalidate-go](https://redirect.github.com/bufbuild/protovalidate-go)
| `v0.9.1` -> `v0.9.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fprotovalidate-go/v0.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fprotovalidate-go/v0.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fprotovalidate-go/v0.9.1/v0.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fprotovalidate-go/v0.9.1/v0.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/cerbos/cerbos-sdk-go](https://redirect.github.com/cerbos/cerbos-sdk-go)
| `v0.2.13` -> `v0.2.14` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcerbos%2fcerbos-sdk-go/v0.2.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fcerbos%2fcerbos-sdk-go/v0.2.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fcerbos%2fcerbos-sdk-go/v0.2.13/v0.2.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcerbos%2fcerbos-sdk-go/v0.2.13/v0.2.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/cerbos/cloud-api](https://redirect.github.com/cerbos/cloud-api)
| `v0.1.33` -> `v0.1.35` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcerbos%2fcloud-api/v0.1.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fcerbos%2fcloud-api/v0.1.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fcerbos%2fcloud-api/v0.1.33/v0.1.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcerbos%2fcloud-api/v0.1.33/v0.1.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/go-sql-driver/mysql](https://redirect.github.com/go-sql-driver/mysql)
| `v1.8.1` -> `v1.9.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-sql-driver%2fmysql/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-sql-driver%2fmysql/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-sql-driver%2fmysql/v1.8.1/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-sql-driver%2fmysql/v1.8.1/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/google/go-cmp](https://redirect.github.com/google/go-cmp)
| `v0.6.0` -> `v0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoogle%2fgo-cmp/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoogle%2fgo-cmp/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoogle%2fgo-cmp/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoogle%2fgo-cmp/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/grpc-ecosystem/go-grpc-middleware/v2](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware)
| `v2.2.1-0.20250211181920-c6f35459f594` -> `v2.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware%2fv2/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware%2fv2/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware%2fv2/v2.2.1-0.20250211181920-c6f35459f594/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware%2fv2/v2.2.1-0.20250211181920-c6f35459f594/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/minio/minio-go/v7](https://redirect.github.com/minio/minio-go)
| `v7.0.86` -> `v7.0.87` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fminio%2fminio-go%2fv7/v7.0.87?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fminio%2fminio-go%2fv7/v7.0.87?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fminio%2fminio-go%2fv7/v7.0.86/v7.0.87?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fminio%2fminio-go%2fv7/v7.0.86/v7.0.87?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.20.5` -> `v1.21.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.21.0?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.0?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.0?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.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/vektra/mockery/v2](https://redirect.github.com/vektra/mockery)
| `v2.52.2` -> `v2.52.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fvektra%2fmockery%2fv2/v2.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fvektra%2fmockery%2fv2/v2.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fvektra%2fmockery%2fv2/v2.52.2/v2.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fvektra%2fmockery%2fv2/v2.52.2/v2.52.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| golang.org/x/crypto | `v0.33.0` -> `v0.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.33.0/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.33.0/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| golang.org/x/exp | `eff6e97` -> `aa4b98e` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fexp/v0.0.0-20250218142911-aa4b98e5adaa?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fexp/v0.0.0-20250218142911-aa4b98e5adaa?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fexp/v0.0.0-20250215185904-eff6e970281f/v0.0.0-20250218142911-aa4b98e5adaa?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fexp/v0.0.0-20250215185904-eff6e970281f/v0.0.0-20250218142911-aa4b98e5adaa?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | digest |
|
[google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto)
| `5a70512` -> `9fdb1ca` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20250219182151-9fdb1cabc7b2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20250219182151-9fdb1cabc7b2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20250212204824-5a70512c5d8b/v0.0.0-20250219182151-9fdb1cabc7b2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20250212204824-5a70512c5d8b/v0.0.0-20250219182151-9fdb1cabc7b2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | digest |

---

### Release Notes

<details>
<summary>aws/smithy-go (github.com/aws/smithy-go)</summary>

###
[`v1.22.3`](https://redirect.github.com/aws/smithy-go/compare/v1.22.2...v1.22.3)

[Compare
Source](https://redirect.github.com/aws/smithy-go/compare/v1.22.2...v1.22.3)

</details>

<details>
<summary>bufbuild/protovalidate-go
(github.com/bufbuild/protovalidate-go)</summary>

###
[`v0.9.2`](https://redirect.github.com/bufbuild/protovalidate-go/releases/tag/v0.9.2)

[Compare
Source](https://redirect.github.com/bufbuild/protovalidate-go/compare/v0.9.1...v0.9.2)

##### What's Changed

This release fixes a bug where predefined rules may have their `rule`
values cached inappropriately across invocations. Also, URI validation
was fixed to ensure the query string does not contain invalid
characters.

- Validate URI query string encoding by
[@&#8203;smaye81](https://redirect.github.com/smaye81) in
[https://github.com/bufbuild/protovalidate-go/pull/183](https://redirect.github.com/bufbuild/protovalidate-go/pull/183)
- Bump github.com/google/cel-go from 0.23.0 to 0.23.2 in the go group by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/bufbuild/protovalidate-go/pull/184](https://redirect.github.com/bufbuild/protovalidate-go/pull/184)
- Bump the go group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/bufbuild/protovalidate-go/pull/186](https://redirect.github.com/bufbuild/protovalidate-go/pull/186)
- Fix predefined rule value caching behavior by
[@&#8203;jchadwick-buf](https://redirect.github.com/jchadwick-buf) in
[https://github.com/bufbuild/protovalidate-go/pull/188](https://redirect.github.com/bufbuild/protovalidate-go/pull/188)

##### New Contributors

- [@&#8203;smaye81](https://redirect.github.com/smaye81) made their
first contribution in
[https://github.com/bufbuild/protovalidate-go/pull/183](https://redirect.github.com/bufbuild/protovalidate-go/pull/183)

**Full Changelog**:
bufbuild/protovalidate-go@v0.9.1...v0.9.2

</details>

<details>
<summary>cerbos/cerbos-sdk-go
(github.com/cerbos/cerbos-sdk-go)</summary>

###
[`v0.2.14`](https://redirect.github.com/cerbos/cerbos-sdk-go/compare/v0.2.13...v0.2.14)

[Compare
Source](https://redirect.github.com/cerbos/cerbos-sdk-go/compare/v0.2.13...v0.2.14)

</details>

<details>
<summary>cerbos/cloud-api (github.com/cerbos/cloud-api)</summary>

###
[`v0.1.35`](https://redirect.github.com/cerbos/cloud-api/compare/v0.1.34...v0.1.35)

[Compare
Source](https://redirect.github.com/cerbos/cloud-api/compare/v0.1.34...v0.1.35)

###
[`v0.1.34`](https://redirect.github.com/cerbos/cloud-api/compare/v0.1.33...v0.1.34)

[Compare
Source](https://redirect.github.com/cerbos/cloud-api/compare/v0.1.33...v0.1.34)

</details>

<details>
<summary>go-sql-driver/mysql (github.com/go-sql-driver/mysql)</summary>

###
[`v1.9.0`](https://redirect.github.com/go-sql-driver/mysql/blob/HEAD/CHANGELOG.md#v190-2025-02-18)

[Compare
Source](https://redirect.github.com/go-sql-driver/mysql/compare/v1.8.1...v1.9.0)

##### Major Changes

- Implement zlib compression.
([#&#8203;1487](https://redirect.github.com/go-sql-driver/mysql/issues/1487))
- Supported Go version is updated to Go 1.21+.
([#&#8203;1639](https://redirect.github.com/go-sql-driver/mysql/issues/1639))
- Add support for VECTOR type introduced in MySQL 9.0.
([#&#8203;1609](https://redirect.github.com/go-sql-driver/mysql/issues/1609))
- Config object can have custom dial function.
([#&#8203;1527](https://redirect.github.com/go-sql-driver/mysql/issues/1527))

##### Bugfixes

- Fix auth errors when username/password are too long.
([#&#8203;1625](https://redirect.github.com/go-sql-driver/mysql/issues/1625))
- Check if MySQL supports CLIENT_CONNECT_ATTRS before sending client
attributes.
([#&#8203;1640](https://redirect.github.com/go-sql-driver/mysql/issues/1640))
- Fix auth switch request handling.
([#&#8203;1666](https://redirect.github.com/go-sql-driver/mysql/issues/1666))

##### Other changes

- Add "filename:line" prefix to log in go-mysql. Custom loggers now show
it.
([#&#8203;1589](https://redirect.github.com/go-sql-driver/mysql/issues/1589))
- Improve error handling. It reduces the "busy buffer" errors.
([#&#8203;1595](https://redirect.github.com/go-sql-driver/mysql/issues/1595),
[#&#8203;1601](https://redirect.github.com/go-sql-driver/mysql/issues/1601),
[#&#8203;1641](https://redirect.github.com/go-sql-driver/mysql/issues/1641))
- Use `strconv.Atoi` to parse max_allowed_packet.
([#&#8203;1661](https://redirect.github.com/go-sql-driver/mysql/issues/1661))
- `rejectReadOnly` option now handles ER_READ_ONLY_MODE (1290) error
too.
([#&#8203;1660](https://redirect.github.com/go-sql-driver/mysql/issues/1660))

</details>

<details>
<summary>google/go-cmp (github.com/google/go-cmp)</summary>

###
[`v0.7.0`](https://redirect.github.com/google/go-cmp/releases/tag/v0.7.0)

[Compare
Source](https://redirect.github.com/google/go-cmp/compare/v0.6.0...v0.7.0)

New API:

- ([#&#8203;367](https://redirect.github.com/google/go-cmp/issues/367))
Support compare functions with SortSlices and SortMaps

Panic messaging:

- ([#&#8203;370](https://redirect.github.com/google/go-cmp/issues/370))
Detect proto.Message types when failing to export a field

</details>

<details>
<summary>grpc-ecosystem/go-grpc-middleware
(github.com/grpc-ecosystem/go-grpc-middleware/v2)</summary>

###
[`v2.3.0`](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.3.0)

[Compare
Source](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.2.0...v2.3.0)

#### What's Changed

- logging: add AddFields by
[@&#8203;kindermoumoute](https://redirect.github.com/kindermoumoute) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/739](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/739)
- logging: store the propagated context in the reporter by
[@&#8203;kindermoumoute](https://redirect.github.com/kindermoumoute) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/740](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/740)
- Add skip_healthchecks logging example by
[@&#8203;bkane-msft](https://redirect.github.com/bkane-msft) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/742](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/742)
- grpc_retry backoff overflow by
[@&#8203;JacobSMoller](https://redirect.github.com/JacobSMoller) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/747](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/747)
- defer cancel() leaks memory by
[@&#8203;JacobSMoller](https://redirect.github.com/JacobSMoller) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/748](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/748)
- protovalidate: support new protovalidate-go Validator interface by
[@&#8203;zchee](https://redirect.github.com/zchee) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/746](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/746)

#### New Contributors

- [@&#8203;bkane-msft](https://redirect.github.com/bkane-msft) made
their first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/742](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/742)
- [@&#8203;JacobSMoller](https://redirect.github.com/JacobSMoller) made
their first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/747](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/747)
- [@&#8203;zchee](https://redirect.github.com/zchee) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/746](https://redirect.github.com/grpc-ecosystem/go-grpc-middleware/pull/746)

**Full Changelog**:
grpc-ecosystem/go-grpc-middleware@v2.2.0...v2.3.0

</details>

<details>
<summary>minio/minio-go (github.com/minio/minio-go/v7)</summary>

###
[`v7.0.87`](https://redirect.github.com/minio/minio-go/releases/tag/v7.0.87):
Bugfix Release

[Compare
Source](https://redirect.github.com/minio/minio-go/compare/v7.0.86...v7.0.87)

#### What's Changed

- Fix build for 386 by
[@&#8203;fwessels](https://redirect.github.com/fwessels) in
[https://github.com/minio/minio-go/pull/2068](https://redirect.github.com/minio/minio-go/pull/2068)
- fix: allow port in endpoint for aws private link validation by
[@&#8203;MadJlzz](https://redirect.github.com/MadJlzz) in
[https://github.com/minio/minio-go/pull/2066](https://redirect.github.com/minio/minio-go/pull/2066)
- tags were incorrectly used, fix them use the right package by
[@&#8203;harshavardhana](https://redirect.github.com/harshavardhana) in
[https://github.com/minio/minio-go/pull/2070](https://redirect.github.com/minio/minio-go/pull/2070)

#### New Contributors

- [@&#8203;MadJlzz](https://redirect.github.com/MadJlzz) made their
first contribution in
[https://github.com/minio/minio-go/pull/2066](https://redirect.github.com/minio/minio-go/pull/2066)

**Full Changelog**:
minio/minio-go@v7.0.86...v7.0.87

</details>

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

###
[`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>

<details>
<summary>vektra/mockery (github.com/vektra/mockery/v2)</summary>

###
[`v2.52.3`](https://redirect.github.com/vektra/mockery/releases/tag/v2.52.3)

[Compare
Source](https://redirect.github.com/vektra/mockery/compare/v2.52.2...v2.52.3)

#### Changelog

- [`b4291cf`](https://redirect.github.com/vektra/mockery/commit/b4291cf)
Build Docker from Go 1.24
([#&#8203;923](https://redirect.github.com/vektra/mockery/issues/923))
- [`44293f3`](https://redirect.github.com/vektra/mockery/commit/44293f3)
Bump debug version

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * 1" (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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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/cerbos/cerbos).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhcmVhL2RlcGVuZGVuY2llcyIsImJvdHMiLCJraW5kL2Nob3JlIl19-->

---------

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Charith Ellawala <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Charith Ellawala <[email protected]>
DennisRasey pushed a commit to DennisRasey/forgejo that referenced this pull request Feb 25, 2025
…) (#7016)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) | require | minor | `v1.20.5` -> `v1.21.0` |

---

### Release Notes

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

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

[Compare Source](prometheus/client_golang@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](prometheus/common#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. ⚠️

-   \[BUGFIX] gocollector: Fix help message for runtime/metric metrics. [#&#8203;1583](prometheus/client_golang#1583)
-   \[BUGFIX] prometheus: Fix `Desc.String()` method for no labels case. [#&#8203;1687](prometheus/client_golang#1687)
-   \[PERF] prometheus: Optimize popular `prometheus.BuildFQName` function; now up to 30% faster. [#&#8203;1665](prometheus/client_golang#1665)
-   \[PERF] prometheus: Optimize `Inc`, `Add` and `Observe` cumulative metrics; now up to 50% faster under high concurrent contention. [#&#8203;1661](prometheus/client_golang#1661)
-   \[CHANGE] Upgrade prometheus/common to 0.62.0 which changes `model.NameValidationScheme` global variable. [#&#8203;1712](prometheus/client_golang#1712)
-   \[CHANGE] Add support for Go 1.23. [#&#8203;1602](prometheus/client_golang#1602)
-   \[FEATURE] process_collector: Add support for Darwin systems. [#&#8203;1600](prometheus/client_golang#1600) [#&#8203;1616](prometheus/client_golang#1616) [#&#8203;1625](prometheus/client_golang#1625) [#&#8203;1675](prometheus/client_golang#1675) [#&#8203;1715](prometheus/client_golang#1715)
-   \[FEATURE] api: Add ability to invoke `CloseIdleConnections` on api.Client using `api.Client.(CloseIdler).CloseIdleConnections()` casting. [#&#8203;1513](prometheus/client_golang#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](prometheus/client_golang#1408)
-   \[FEATURE] prometheus: Add `NewConstNativeHistogram` function. [#&#8203;1654](prometheus/client_golang#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 contribution in prometheus/client_golang#1606
* @&#8203;mharbison72 made their first contribution in prometheus/client_golang#1600
* @&#8203;cuisongliu made their first contribution in prometheus/client_golang#1513
* @&#8203;ying-jeanne made their first contribution in prometheus/client_golang#1626
* @&#8203;Manask322 made their first contribution in prometheus/client_golang#1657
* @&#8203;jkroepke made their first contribution in prometheus/client_golang#1665
* @&#8203;imorph made their first contribution in prometheus/client_golang#1672
* @&#8203;mmorel-35 made their first contribution in prometheus/client_golang#1676
* @&#8203;shivanthzen made their first contribution in prometheus/client_golang#1654
* @&#8203;dashpole made their first contribution in prometheus/client_golang#1699

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * *" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoiZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7016
Reviewed-by: Gusted <[email protected]>
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[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.

2 participants