Expose metrics registration function #89
Merged
+34
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Allows exposing metrics via a custom registerer, instead of forcing the use of prometheus.DefaultRegisterer. Also allows initializing metrics outside of init() which is generally considered an anti-pattern.
The default behavior of calling
prometheus.DefaultRegisterer.MustRegister()
is retained, ref:https://github.com/prometheus/client_golang/blob/fec6b222d9ac46f61b0194fd343d5a10bf1e1d09/prometheus/registry.go#L174-L178
I also had to add a function to avoid registering the kubernetes internal workqueue metrics, to prevent conflicts in k3s where kubernetes itself registers those in the same process:
lasso/pkg/metrics/workqueue.go
Lines 21 to 22 in 32d9687