In order to better support the standard library `log/slog` add a
new interface to the `promhttp` `HandlerOpts`.
Signed-off-by: SuperQ <superq@gmail.com>
* feat: Support zstd encoding
This allows endpoints to respond with zstd compressed metric data, if
the requester supports it.
I have imported a content-encoding parser from
https://github.com/golang/gddo which is an archived repository to
support different content-encoding headers.
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Update prometheus/promhttp/http.go
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Update prometheus/promhttp/http.go
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Update prometheus/promhttp/http.go
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Integrate review comments
* String typed enum
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Test with gzip compression
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Update prometheus/promhttp/http.go
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Reorder error handling
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Apply suggestions from code review
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
* Include review suggestions
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
---------
Signed-off-by: Manuel Rüger <manuel@rueg.eu>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
This allows to finally get rid of the infamous injection hook in the
interface. The old SetMetricFamilyInjectionHook still exist as a
deprecated function but is now implemented with the new plumbing under
the hood.
Now that we have multiple Gatherer implementation, I renamed
push.Registry to push.FromGatherer.
This commit also improves the consistency checks, which happened as a
byproduct of the refactoring to allow checking in both the "merge
gatherer" Gatherers as well as in the normal Registry.
To keep backwards compatibility while not creating circular import
chains, some code had to be duplicated. But all functions using it
have been declared deprecated hereby.
The new ways of instrumenting handlers will all go into the new
package, and ultimately, the prometheus package itself will be
completely igorant of HTTP.