Dear Prometheans,
posting this here because the Github issue template suggested discussing
changes on the
mailing list first.
I just discovered the `promauto.With(Reigsterer)` API[1] today, which
looked like a nice way
to ensure that metrics are registered with a Registerer when they are
created.
In my use-case, the code receives the Registerer as a dependency.
Since it may be called multiple times, I'd like to be able to register
metrics multiple times,
As an example, imagine writing a middleware to instrument an HTTP handler,
similar to
package promhttp:
func InstrumentedHandler(r Registerer, next http.Handler) http.Handler {
// register a bunch of metrics on `r` and return a Handler that
// bumps them appropriately
}
Currently, my code uses prometheus.Register(), and checks whether the
returned error is
a prometheus.AlreadyRegisteredError to get access to the
previously-registered metric and
uses that instead.
It'd be easy enough to write a "lenient" version of promauto.Filter that
uses this logic.
Would it make sense to add this to client_golang? If so, what do you think
the API should
look like?
Thanks for your time!
Chris
[1]:
https://pkg.go.dev/github.com/prometheus/[email protected]/prometheus/promauto?tab=doc#With
--
You received this message because you are subscribed to the Google Groups
"Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/prometheus-developers/97aa0973-1a26-4a16-af27-b1d926971c21%40googlegroups.com.