mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-10-31 22:40:01 +00:00
[bugfix] Let prometheus client do its own compression handling (#3232)
This commit is contained in:
parent
bef0dfc66c
commit
d3887bf6cc
3 changed files with 14 additions and 5 deletions
|
@ -439,13 +439,18 @@ func(context.Context, time.Time) {
|
|||
fsThrottle := middleware.Throttle(cpuMultiplier, retryAfter) // fileserver / web templates / emojis
|
||||
pkThrottle := middleware.Throttle(cpuMultiplier, retryAfter) // throttle public key endpoint separately
|
||||
|
||||
gzip := middleware.Gzip() // applied to all except fileserver
|
||||
// Gzip middleware is applied to all endpoints except
|
||||
// fileserver (compression too expensive for those),
|
||||
// health (which really doesn't need compression), and
|
||||
// metrics (which does its own compression handling that
|
||||
// is rather annoying to neatly override).
|
||||
gzip := middleware.Gzip()
|
||||
|
||||
// these should be routed in order;
|
||||
// apply throttling *after* rate limiting
|
||||
authModule.Route(route, clLimit, clThrottle, gzip)
|
||||
clientModule.Route(route, clLimit, clThrottle, gzip)
|
||||
metricsModule.Route(route, clLimit, clThrottle, gzip)
|
||||
metricsModule.Route(route, clLimit, clThrottle)
|
||||
healthModule.Route(route, clLimit, clThrottle)
|
||||
fileserverModule.Route(route, fsMainLimit, fsThrottle)
|
||||
fileserverModule.RouteEmojis(route, instanceAccount.ID, fsEmojiLimit, fsThrottle)
|
||||
|
|
|
@ -30,9 +30,13 @@ type Module struct {
|
|||
}
|
||||
|
||||
func New() *Module {
|
||||
// Use our own gzip handler.
|
||||
// Let prometheus use "identity", ie., no compression,
|
||||
// or "gzip", to match our own gzip compression middleware.
|
||||
opts := promhttp.HandlerOpts{
|
||||
DisableCompression: true,
|
||||
OfferedCompressions: []promhttp.Compression{
|
||||
promhttp.Identity,
|
||||
promhttp.Gzip,
|
||||
},
|
||||
}
|
||||
|
||||
// Instrument handler itself.
|
||||
|
|
|
@ -154,7 +154,7 @@ func testDefaults() config.Configuration {
|
|||
TracingTransport: "grpc",
|
||||
TracingInsecureTransport: true,
|
||||
|
||||
MetricsEnabled: false,
|
||||
MetricsEnabled: true,
|
||||
MetricsAuthEnabled: false,
|
||||
|
||||
SyslogEnabled: false,
|
||||
|
|
Loading…
Reference in a new issue