- Notifications
You must be signed in to change notification settings - Fork1.2k
change api http.client to interface#1387
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
ArthurSens commentedNov 22, 2023
Sounds like a valid use case :) Could you sign your commit to make CI happy? |
…e.g. github.com/hashicorp/go-retryablehttp)Signed-off-by: Roy Reshef <rreshef@densify.com>
tsipo commentedNov 22, 2023
@ArthurSens Apologies, I just saw the CI complaint and did that :-) |
Uh oh!
There was an error while loading.Please reload this page.
tsipo commentedDec 5, 2023
Hello all, can anyone please update on the status of this one? Thanks. |
ArthurSens left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
tsipo commentedDec 13, 2023
Thank you@ArthurSens. FWIW I have tested it recently quite a bit using the commit to In case you need to add new functions to the HttpClient interface you are most welcome to ask for my assistance with it, shouldn't be too difficult 😄 . |
| TLSHandshakeTimeout:10*time.Second, | ||
| } | ||
| typeHttpClientinterface { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Why not using simplyhttp.RoundTripper?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Also if anything this is not following style guide (should beHTTPClient) and does not have commentary as public interface
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
It's bit different method name, but still..RoundTrip(*Request) (*Response, error)
In theory the api/http packages are experimental so we can change them with breaking changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
But even with all of this the use case mentioned was possible without this change I believe:
There is even documentation how to do it here:github.com/hashicorp/go-retryablehttp/Client
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Hi@bwplotka , thanks for your comments.
Your suggested solution (sorry, somehow I missed that in hashicorp's docs) to use theirStandardClient()converter to the library'shttp.Client works - I have just tried that out and saw retries. So the use-case is possible without this change.
In view of that, you can decide. I still don't think that adding the interface is a bad idea as this is what the Prometheus client requires (only theDo() function). It's true that hashicorp's client gives you a converter to the standard client, but you are now relying on that. I'll leave it up to you.
bwplotka left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Hm, I think we could revert this. Additional interface is not needed, http.Client has RoundTripper which is replaceable. Plus the mentioned hashicorp project has a converter to http.Client:https://github.com/hashicorp/go-retryablehttp?tab=readme-ov-file#getting-a-stdlib-httpclient-with-retries
| TLSHandshakeTimeout:10*time.Second, | ||
| } | ||
| typeHttpClientinterface { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
But even with all of this the use case mentioned was possible without this change I believe:
There is even documentation how to do it here:github.com/hashicorp/go-retryablehttp/Client
bwplotka commentedDec 22, 2023
It's easy to miss but it's very common to create a new http (std Go) Client with Roundtripper which has the same signature as Do (just different name): |
ArthurSens commentedDec 23, 2023
Thanks Bartek for taking a deeper look at this, and apologies for also missing that the use case was already possible 😅 I agree that having multiple ways for doing the same thing confusing, let's revert it 👍 |
tsipo commentedDec 23, 2023
Thank you@bwplotka and@ArthurSens for your comments. It's true - as@bwplotka pointed out - that you can easily wrap a fully-fledged The question is - and that is maybe a bit philosophical - is that the right thing to do? The documentation ofRoundTripper.RoundTrip() says (l. 118-119): In practice we see many cases, including in this repo, where a Merry Christmas! |
bwplotka commentedDec 25, 2023
Oh yea, I agree there might be something to improve in Go, even if it's just documentation. I read thedocumentation you referred differently (maybe you are right)--I read it as:
Those are the things to supply via request with configurable headers and some specific implementation of
This is what you can configure with However... we don't talk about any std mechanisms here -- we are extending the client and transport and here. I think this part of docs does not mention extensibility topic at all, only what's in std types. The extensibility is done viaRoundTripper. Historically it was used for much more than in the docs, perhaps overused, but it allowed huge innovation e.g.client side load balancing and other crazy things (e.g. hashicorp retries). Plus if you look on http.Client implementation it only checks http.Request request, sets std headers, sets deadlines12, calls RoundTripper and handles response, redirects. Thus, generally it makes no point to extend client by interfacing Merry Christmas! |
….0 (#1110)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---> [!WARNING]> Some dependencies could not be looked up. Check the DependencyDashboard for more information.---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0):v0.18.0[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - At any time (no schedule defined),Automerge - At any time (no schedule defined).🚦 **Automerge**: Enabled.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/open-feature/flagd).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence | Type |Update ||---|---|---|---|---|---|---|---|| [github.com/aws/aws-sdk-go](https://togithub.com/aws/aws-sdk-go) |`v1.49.10` -> `v1.49.13` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | patch || [github.com/cerbos/cloud-api](https://togithub.com/cerbos/cloud-api) |`v0.1.12` -> `v0.1.13` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | patch ||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | minor || [github.com/pterm/pterm](https://togithub.com/pterm/pterm) |`v0.12.72` -> `v0.12.73` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | patch || [github.com/rivo/tview](https://togithub.com/rivo/tview) | `5f07813`-> `b3bd1aa` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | digest || [gocloud.dev](https://togithub.com/google/go-cloud) | `v0.35.0` ->`v0.36.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)| require | minor |---> [!WARNING]> Some dependencies could not be looked up. Check the DependencyDashboard for more information.---### Release Notes<details><summary>aws/aws-sdk-go (github.com/aws/aws-sdk-go)</summary>###[`v1.49.13`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14913-2023-12-29)[CompareSource](https://togithub.com/aws/aws-sdk-go/compare/v1.49.12...v1.49.13)\===##### Service Client Updates- `service/apprunner`: Updates service API and documentation- `service/location`: Updates service API and documentation- `service/quicksight`: Updates service API and documentation- Add LinkEntityArn support for different partitions; AddUnsupportedUserEditionException in UpdateDashboardLinks API; Add supportfor New Reader Experience Topics###[`v1.49.12`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14912-2023-12-28)[CompareSource](https://togithub.com/aws/aws-sdk-go/compare/v1.49.11...v1.49.12)\===##### Service Client Updates- `service/codestar-connections`: Updates service API- `service/kinesis-video-archived-media`: Updates service API anddocumentation- `service/sagemaker`: Updates service API and documentation- Amazon SageMaker Studio now supports Docker access from within appcontainer###[`v1.49.11`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14911-2023-12-27)[CompareSource](https://togithub.com/aws/aws-sdk-go/compare/v1.49.10...v1.49.11)\===##### Service Client Updates- `service/elasticmapreduce`: Updates service API and documentation- Add support for customers to modify cluster attribute auto-terminatepost cluster launch</details><details><summary>cerbos/cloud-api (github.com/cerbos/cloud-api)</summary>###[`v0.1.13`](https://togithub.com/cerbos/cloud-api/compare/v0.1.12...v0.1.13)[CompareSource](https://togithub.com/cerbos/cloud-api/compare/v0.1.12...v0.1.13)</details><details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details><details><summary>pterm/pterm (github.com/pterm/pterm)</summary>### [`v0.12.73`](https://togithub.com/pterm/pterm/releases/tag/v0.12.73)[CompareSource](https://togithub.com/pterm/pterm/compare/v0.12.72...v0.12.73)<!-- Release notes generated using configuration in .github/release.ymlat master -->#### What's Changed##### Fixes 🔧- fix(logger): `LogLevelDisabled` does no longer print anything by[@​MarvinJWendt](https://togithub.com/MarvinJWendt) in[https://github.com/pterm/pterm/pull/601](https://togithub.com/pterm/pterm/pull/601)##### Other Changes- examples: fix typo in demo by[@​jrschumacher](https://togithub.com/jrschumacher) in[https://github.com/pterm/pterm/pull/598](https://togithub.com/pterm/pterm/pull/598)#### New Contributors- [@​jrschumacher](https://togithub.com/jrschumacher) made theirfirst contribution in[https://github.com/pterm/pterm/pull/598](https://togithub.com/pterm/pterm/pull/598)**Full Changelog**:pterm/pterm@v0.12.72...v0.12.73</details><details><summary>google/go-cloud (gocloud.dev)</summary>###[`v0.36.0`](https://togithub.com/google/go-cloud/releases/tag/v0.36.0)[CompareSource](https://togithub.com/google/go-cloud/compare/v0.35.0...v0.36.0)**blob**- **all**: Allow disabling of `ContentType` auto-detection duringwrites.**pubsub**- **azuresb**: Added a new auth method to support Serviceprincipal/kubelet identity/Workload identity auth methods.**docstore**- **all**: Add in/not-in operators for Query.- **gcpfirestore**: Added a missing resource header when running query.**mysql**- Pass TLS config directly to MySQL's config</details>---### Configuration📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.👻 **Immortal**: This PR will be recreated if closed unmerged. Get[config help](https://togithub.com/renovatebot/renovate/discussions) ifthat's undesired.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/cerbos/cerbos).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
….0 (#4277)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - "before 6am on Monday" in timezoneEurope/Paris, Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/cozy/cozy-stack).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0):v0.18.0[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - At any time (no schedule defined),Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/hetznercloud/hcloud-go).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0):v0.18.0[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - At any time (no schedule defined),Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/hetznercloud/hcloud-cloud-controller-manager).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0):v0.18.0[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - At any time (no schedule defined),Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/hetznercloud/csi-driver).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At anytime (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->---------Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At anytime (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->---------Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
…18.0 (#2401)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---> [!WARNING]> Some dependencies could not be looked up. Check the DependencyDashboard for more information.---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#​1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#​1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#​1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#​1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#​1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@​srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@​jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@​manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@​bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@​tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.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 therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/parca-dev/parca-agent).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
…lemetry#30250)[](https://renovatebot.com)This PR contains the following updates:| Package | Change | Age | Adoption | Passing | Confidence ||---|---|---|---|---|---||[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)| `v1.17.0` -> `v1.18.0` |[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|[](https://docs.renovatebot.com/merge-confidence/)|---### Release Notes<details><summary>prometheus/client_golang(github.com/prometheus/client_golang)</summary>###[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0)[CompareSource](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)#### What's Changed- \[FEATURE] promlint: Allow creation of custom metric validations.[#&open-telemetry#8203;1311](https://togithub.com/prometheus/client_golang/issues/1311)- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.[#&open-telemetry#8203;1350](https://togithub.com/prometheus/client_golang/issues/1350)- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limitinghas happened.[#&open-telemetry#8203;1367](https://togithub.com/prometheus/client_golang/issues/1367)- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.[#&open-telemetry#8203;1378](https://togithub.com/prometheus/client_golang/issues/1378)- \[ENHANCEMENT] Improved performance of`MetricVec.WithLabelValues(...)`.[#&open-telemetry#8203;1360](https://togithub.com/prometheus/client_golang/issues/1360)#### New Contributors- [@&open-telemetry#8203;srenatus](https://togithub.com/srenatus) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)- [@&open-telemetry#8203;jadolg](https://togithub.com/jadolg) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)- [@&open-telemetry#8203;manas-rust](https://togithub.com/manas-rust) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)- [@&open-telemetry#8203;bluekeyes](https://togithub.com/bluekeyes) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)- [@&open-telemetry#8203;tsipo](https://togithub.com/tsipo) made their firstcontribution in[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)**Full Changelog**:prometheus/client_golang@v1.17.0...v1.18.0</details>---### Configuration📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At anytime (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once youare satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this updateagain.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR has been generated by [MendRenovate](https://www.mend.io/free-developer-tools/renovate/). Viewrepository job log[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->---------Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Hi there,
The current implementation uses http.Client
The only function which is called for it is
Do(req *http.Request) (*http.Response, error)It is desirable to allow other Client implementations, e.g.
github.com/hashicorp/go-retryablehttp/Clientwhich allows retries on various HTTP status codes like 429 (it has its ownRequeststruct but it's easy to wrap it in another struct that will implement the above-mentioned interface). Many commercial solutions implementing Prometheus API (e.g. Grafana Cloud) have rate limiting. Thank you.