-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Add possibility to dynamically get label values for http instrumentation #1066
Conversation
Gently repinging @bwplotka and @kakkoyun for a review of this PR ? Let me know if it doesn't have any chance to be merged, so that I don't wait for it 👍 Also, I saw it's quite similar to #1104, probably share the same concern (that user can now add as many label values as it wants) but I also have the same thought than @chradcliffe on the fact that a user is knowingly added a high cardinality label by using the option, and therefore it's not promhttp responsibility. Note that I could work with #1104 even though using context would force me to add another middleware to push request/response value into the context. |
004d7e3
to
50f10d3
Compare
I added a way to constraint the values any dynamic label can take, such that the cardinality has to be known in advance. Would that address your concerns @bwplotka ? |
50f10d3
to
5e32168
Compare
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.
Thanks for this!
I think with more and more requests to add dynamic labels to promhttp
- we should do it.
I like your idea for enforcing label values, but it might be better to have something built-in metric so the same enforcing or categorization logic can be reused across anyone who uses prometheus.Observer
or prometheus.Adder
With this direction, I would be happy with solutions like yours or #1104 to add dynamic labels without verification.
As per ctx vs pointers structs, the ctx will be safer for this library in some sense but tedious for users... I think I would favour your idea (but perhaps separate for client and server?) Read only thing is nice, but there is more risk for users to add new middleware, makes they you don't forget to add it and put the correct context value that does not conflict and test etc, than risk of someone modifying the request or response in their e.g. dynLabelValues(req, resp) []string
9ec2653
to
3600717
Compare
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.
Looks good, just some ideas for more explicit naming, WDYT?
Also tests fail 🤗
Signed-off-by: Quentin Devos <4972091+Okhoshi@users.noreply.github.com>
3600717
to
5c61f9f
Compare
That naming is way better than mine 💯 Changed.
Yes, something weird about not being able to find some git references 🤷 |
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.
LGTM, solid work. Thanks for patience 💪🏽 (:
Hey gang, I was wondering if there was any estimate on when there could be a release cut with this PR included? My team are keen to use this great feature. TIA 😌 |
Hey @jcass8695, I think it's been a while since the last time we released it. Considering there's also a new Golang version, I think we can update our language support and then take a release. So it will be soon. I think it's better to wait for the Go 1.20.1 release, though. |
….0 (#424) [](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang) | require | minor | `v1.14.0` -> `v1.15.0` | --- ### Release Notes <details> <summary>prometheus/client_golang</summary> ### [`v1.15.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.15.0) [Compare Source](https://togithub.com/prometheus/client_golang/compare/v1.14.0...v1.15.0) #### Changed \[BUGFIX] Fix issue with atomic variables on ppc64le [#​1171](https://togithub.com/prometheus/client_golang/issues/1171) \[BUGFIX] Support for multiple samples within same metric [#​1181](https://togithub.com/prometheus/client_golang/issues/1181) \[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 [#​1187](https://togithub.com/prometheus/client_golang/issues/1187) \[ENHANCEMENT] Add exemplars and middleware examples [#​1173](https://togithub.com/prometheus/client_golang/issues/1173) \[ENHANCEMENT] Add more context to "duplicate label names" error to enable debugging [#​1177](https://togithub.com/prometheus/client_golang/issues/1177) \[ENHANCEMENT] Add constrained labels and constrained variant for all MetricVecs [#​1151](https://togithub.com/prometheus/client_golang/issues/1151) \[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf package [#​1183](https://togithub.com/prometheus/client_golang/issues/1183) \[ENHANCEMENT] Add possibility to dynamically get label values for http instrumentation [#​1066](https://togithub.com/prometheus/client_golang/issues/1066) \[ENHANCEMENT] Add ability to Pusher to add custom headers [#​1218](https://togithub.com/prometheus/client_golang/issues/1218) \[ENHANCEMENT] api: Extend and improve efficiency of json-iterator usage [#​1225](https://togithub.com/prometheus/client_golang/issues/1225) \[ENHANCEMENT] Added (official) support for go 1.20 [#​1234](https://togithub.com/prometheus/client_golang/issues/1234) \[ENHANCEMENT] timer: Added support for exemplars [#​1233](https://togithub.com/prometheus/client_golang/issues/1233) \[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare [#​1143](https://togithub.com/prometheus/client_golang/issues/1143) \[ENHANCEMENT]⚠️ Only set start/end if time is not Zero. This breaks compatibility in experimental api package. If you strictly depend on empty time.Time as actual value, the behavior is now changed [#​1238](https://togithub.com/prometheus/client_golang/issues/1238) <details> <summary>All commits</summary> - Merge release 1.14 to main by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1164](https://togithub.com/prometheus/client_golang/pull/1164) - Fix typo in doc comment by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1166](https://togithub.com/prometheus/client_golang/pull/1166) - Fix issue with atomic variables on ppc64le by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1171](https://togithub.com/prometheus/client_golang/pull/1171) - examples: Add exemplars and middleware examples by [@​jessicalins](https://togithub.com/jessicalins) in [https://github.com/prometheus/client_golang/pull/1173](https://togithub.com/prometheus/client_golang/pull/1173) - Add context to "duplicate label names" to enable debugging by [@​SpencerMalone](https://togithub.com/SpencerMalone) in [https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177) - Add constrained labels and Constrained variant for all MetricVecs by [@​Okhoshi](https://togithub.com/Okhoshi) in [https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151) - Support for multiple samples within same metric by [@​machadovilaca](https://togithub.com/machadovilaca) in [https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181) - Replace deprecated github.com/golang/protobuf package by [@​zhsj](https://togithub.com/zhsj) in [https://github.com/prometheus/client_golang/pull/1183](https://togithub.com/prometheus/client_golang/pull/1183) - Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 by [@​b4bay](https://togithub.com/b4bay) in [https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187) - typo fix by [@​ibreakthecloud](https://togithub.com/ibreakthecloud) in [https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178) - Add possibility to dynamically get label values for http instrumentation by [@​Okhoshi](https://togithub.com/Okhoshi) in [https://github.com/prometheus/client_golang/pull/1066](https://togithub.com/prometheus/client_golang/pull/1066) - Bump github.com/cespare/xxhash/v2 from 2.1.2 to 2.2.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1199](https://togithub.com/prometheus/client_golang/pull/1199) - Bump github.com/prometheus/procfs from 0.8.0 to 0.9.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1198](https://togithub.com/prometheus/client_golang/pull/1198) - Bump golang.org/x/sys from 0.3.0 to 0.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1217](https://togithub.com/prometheus/client_golang/pull/1217) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1213](https://togithub.com/prometheus/client_golang/pull/1213) - Bump github.com/prometheus/common from 0.37.0 to 0.39.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1197](https://togithub.com/prometheus/client_golang/pull/1197) - Add `Header` method to Pusher for custom header by [@​songjiayang](https://togithub.com/songjiayang) in [https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1224](https://togithub.com/prometheus/client_golang/pull/1224) - api: Extend and improve json-iterator usage by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1225](https://togithub.com/prometheus/client_golang/pull/1225) - Indent example in godoc consistently by [@​lamida](https://togithub.com/lamida) in [https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226) - Remove unnecessary check if label is nil in observeWithExemplar by [@​dimonl](https://togithub.com/dimonl) in [https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235) - README: Remove not working gocoverage images. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1236](https://togithub.com/prometheus/client_golang/pull/1236) - Added support for go 1.20. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1234](https://togithub.com/prometheus/client_golang/pull/1234) - timer: Added support for exemplars. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1233](https://togithub.com/prometheus/client_golang/pull/1233) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1237](https://togithub.com/prometheus/client_golang/pull/1237) - Filter expected metrics as well in CollectAndCompare by [@​DariaKunoichi](https://togithub.com/DariaKunoichi) in [https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143) - Only set start/end if time is not Zero by [@​jacksontj](https://togithub.com/jacksontj) in [https://github.com/prometheus/client_golang/pull/1238](https://togithub.com/prometheus/client_golang/pull/1238) - Bump google.golang.org/protobuf from 1.28.1 to 1.30.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1243](https://togithub.com/prometheus/client_golang/pull/1243) - Bump golang.org/x/sys from 0.5.0 to 0.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1246](https://togithub.com/prometheus/client_golang/pull/1246) - Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1245](https://togithub.com/prometheus/client_golang/pull/1245) - Bump github.com/prometheus/common from 0.41.0 to 0.42.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1244](https://togithub.com/prometheus/client_golang/pull/1244) - Cut v1.15.0 by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1249](https://togithub.com/prometheus/client_golang/pull/1249) </details> #### New Contributors * @​SpencerMalone made their first contributi[https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177)l/1177 * @​Okhoshi made their first contributi[https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151)l/1151 * @​machadovilaca made their first contributi[https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181)l/1181 * @​b4bay made their first contributi[https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187)l/1187 * @​ibreakthecloud made their first contributi[https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178)l/1178 * @​songjiayang made their first contributi[https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218)l/1218 * @​lamida made their first contributi[https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226)l/1226 * @​dimonl made their first contributi[https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235)l/1235 * @​DariaKunoichi made their first contributi[https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143)l/1143 **Full Changelog**: prometheus/client_golang@v1.14.0...v1.15.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 you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/hetznercloud/hcloud-cloud-controller-manager). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
….0 (#608) [](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang) | require | minor | `v1.14.0` -> `v1.15.0` | --- ### Release Notes <details> <summary>prometheus/client_golang</summary> ### [`v1.15.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.15.0) [Compare Source](https://togithub.com/prometheus/client_golang/compare/v1.14.0...v1.15.0) #### Changed \[BUGFIX] Fix issue with atomic variables on ppc64le [#​1171](https://togithub.com/prometheus/client_golang/issues/1171) \[BUGFIX] Support for multiple samples within same metric [#​1181](https://togithub.com/prometheus/client_golang/issues/1181) \[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 [#​1187](https://togithub.com/prometheus/client_golang/issues/1187) \[ENHANCEMENT] Add exemplars and middleware examples [#​1173](https://togithub.com/prometheus/client_golang/issues/1173) \[ENHANCEMENT] Add more context to "duplicate label names" error to enable debugging [#​1177](https://togithub.com/prometheus/client_golang/issues/1177) \[ENHANCEMENT] Add constrained labels and constrained variant for all MetricVecs [#​1151](https://togithub.com/prometheus/client_golang/issues/1151) \[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf package [#​1183](https://togithub.com/prometheus/client_golang/issues/1183) \[ENHANCEMENT] Add possibility to dynamically get label values for http instrumentation [#​1066](https://togithub.com/prometheus/client_golang/issues/1066) \[ENHANCEMENT] Add ability to Pusher to add custom headers [#​1218](https://togithub.com/prometheus/client_golang/issues/1218) \[ENHANCEMENT] api: Extend and improve efficiency of json-iterator usage [#​1225](https://togithub.com/prometheus/client_golang/issues/1225) \[ENHANCEMENT] Added (official) support for go 1.20 [#​1234](https://togithub.com/prometheus/client_golang/issues/1234) \[ENHANCEMENT] timer: Added support for exemplars [#​1233](https://togithub.com/prometheus/client_golang/issues/1233) \[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare [#​1143](https://togithub.com/prometheus/client_golang/issues/1143) \[ENHANCEMENT]⚠️ Only set start/end if time is not Zero. This breaks compatibility in experimental api package. If you strictly depend on empty time.Time as actual value, the behavior is now changed [#​1238](https://togithub.com/prometheus/client_golang/issues/1238) <details> <summary>All commits</summary> - Merge release 1.14 to main by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1164](https://togithub.com/prometheus/client_golang/pull/1164) - Fix typo in doc comment by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1166](https://togithub.com/prometheus/client_golang/pull/1166) - Fix issue with atomic variables on ppc64le by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1171](https://togithub.com/prometheus/client_golang/pull/1171) - examples: Add exemplars and middleware examples by [@​jessicalins](https://togithub.com/jessicalins) in [https://github.com/prometheus/client_golang/pull/1173](https://togithub.com/prometheus/client_golang/pull/1173) - Add context to "duplicate label names" to enable debugging by [@​SpencerMalone](https://togithub.com/SpencerMalone) in [https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177) - Add constrained labels and Constrained variant for all MetricVecs by [@​Okhoshi](https://togithub.com/Okhoshi) in [https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151) - Support for multiple samples within same metric by [@​machadovilaca](https://togithub.com/machadovilaca) in [https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181) - Replace deprecated github.com/golang/protobuf package by [@​zhsj](https://togithub.com/zhsj) in [https://github.com/prometheus/client_golang/pull/1183](https://togithub.com/prometheus/client_golang/pull/1183) - Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 by [@​b4bay](https://togithub.com/b4bay) in [https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187) - typo fix by [@​ibreakthecloud](https://togithub.com/ibreakthecloud) in [https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178) - Add possibility to dynamically get label values for http instrumentation by [@​Okhoshi](https://togithub.com/Okhoshi) in [https://github.com/prometheus/client_golang/pull/1066](https://togithub.com/prometheus/client_golang/pull/1066) - Bump github.com/cespare/xxhash/v2 from 2.1.2 to 2.2.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1199](https://togithub.com/prometheus/client_golang/pull/1199) - Bump github.com/prometheus/procfs from 0.8.0 to 0.9.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1198](https://togithub.com/prometheus/client_golang/pull/1198) - Bump golang.org/x/sys from 0.3.0 to 0.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1217](https://togithub.com/prometheus/client_golang/pull/1217) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1213](https://togithub.com/prometheus/client_golang/pull/1213) - Bump github.com/prometheus/common from 0.37.0 to 0.39.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1197](https://togithub.com/prometheus/client_golang/pull/1197) - Add `Header` method to Pusher for custom header by [@​songjiayang](https://togithub.com/songjiayang) in [https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1224](https://togithub.com/prometheus/client_golang/pull/1224) - api: Extend and improve json-iterator usage by [@​beorn7](https://togithub.com/beorn7) in [https://github.com/prometheus/client_golang/pull/1225](https://togithub.com/prometheus/client_golang/pull/1225) - Indent example in godoc consistently by [@​lamida](https://togithub.com/lamida) in [https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226) - Remove unnecessary check if label is nil in observeWithExemplar by [@​dimonl](https://togithub.com/dimonl) in [https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235) - README: Remove not working gocoverage images. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1236](https://togithub.com/prometheus/client_golang/pull/1236) - Added support for go 1.20. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1234](https://togithub.com/prometheus/client_golang/pull/1234) - timer: Added support for exemplars. by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1233](https://togithub.com/prometheus/client_golang/pull/1233) - Synchronize common files from prometheus/prometheus by [@​prombot](https://togithub.com/prombot) in [https://github.com/prometheus/client_golang/pull/1237](https://togithub.com/prometheus/client_golang/pull/1237) - Filter expected metrics as well in CollectAndCompare by [@​DariaKunoichi](https://togithub.com/DariaKunoichi) in [https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143) - Only set start/end if time is not Zero by [@​jacksontj](https://togithub.com/jacksontj) in [https://github.com/prometheus/client_golang/pull/1238](https://togithub.com/prometheus/client_golang/pull/1238) - Bump google.golang.org/protobuf from 1.28.1 to 1.30.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1243](https://togithub.com/prometheus/client_golang/pull/1243) - Bump golang.org/x/sys from 0.5.0 to 0.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1246](https://togithub.com/prometheus/client_golang/pull/1246) - Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1245](https://togithub.com/prometheus/client_golang/pull/1245) - Bump github.com/prometheus/common from 0.41.0 to 0.42.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1244](https://togithub.com/prometheus/client_golang/pull/1244) - Cut v1.15.0 by [@​bwplotka](https://togithub.com/bwplotka) in [https://github.com/prometheus/client_golang/pull/1249](https://togithub.com/prometheus/client_golang/pull/1249) </details> #### New Contributors * @​SpencerMalone made their first contributi[https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177)l/1177 * @​Okhoshi made their first contributi[https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151)l/1151 * @​machadovilaca made their first contributi[https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181)l/1181 * @​b4bay made their first contributi[https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187)l/1187 * @​ibreakthecloud made their first contributi[https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178)l/1178 * @​songjiayang made their first contributi[https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218)l/1218 * @​lamida made their first contributi[https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226)l/1226 * @​dimonl made their first contributi[https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235)l/1235 * @​DariaKunoichi made their first contributi[https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143)l/1143 **Full Changelog**: prometheus/client_golang@v1.14.0...v1.15.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 the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Quentin Devos 4972091+Okhoshi@users.noreply.github.com
I need to partition the metrics generated by promhttp by the value coming in a specific header, and while I appreciate the design of promhttp is made to be simple and cover only the base use cases, it would be great if we could have a bit more of flexibility.
It would also give a way to solve #491 elegantly while letting the user control the cardinality of the label they add.
@bwplotka @kakkoyun