forked from TrueCloudLab/frostfs-node
8d17dab86e
Rename `util/profiler` package to `httputil` and refactor it: * simplify utility HTTP server; * make more generic server's parameters in order to remove `viper.Viper` dependency; * use single constructor for creating the pprof and prometheus servers; * replace `enabled` config value with empty-check of the network address. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
26 lines
445 B
Go
26 lines
445 B
Go
package httputil
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Option sets an optional parameter of Server.
|
|
type Option func(*cfg)
|
|
|
|
type cfg struct {
|
|
shutdownTimeout time.Duration
|
|
}
|
|
|
|
func defaultCfg() *cfg {
|
|
return &cfg{
|
|
shutdownTimeout: 15 * time.Second,
|
|
}
|
|
}
|
|
|
|
// WithShutdownTimeout returns option to set shutdown timeout
|
|
// of the internal HTTP server.
|
|
func WithShutdownTimeout(dur time.Duration) Option {
|
|
return func(c *cfg) {
|
|
c.shutdownTimeout = dur
|
|
}
|
|
}
|