[#39] ir: Do not store config keys in httpComponent

Pprof will have specific options, it seems wrong to have them in a
generic struct.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
Evgenii Stratonikov 2023-05-12 11:04:52 +03:00
parent 61776033c2
commit f989bc52be
3 changed files with 22 additions and 37 deletions

View file

@ -11,22 +11,25 @@ import (
) )
type httpComponent struct { type httpComponent struct {
srv *httputil.Server srv *httputil.Server
address string address string
addressKey string name string
name string handler http.Handler
handler http.Handler shutdownDur time.Duration
shutdownDur time.Duration enabled bool
shutdownTimeoutKey string
enabled bool
enabledKey string
} }
const (
enabledKeyPostfix = ".enabled"
addressKeyPostfix = ".address"
shutdownTimeoutKeyPostfix = ".shutdown_timeout"
)
func (c *httpComponent) init() { func (c *httpComponent) init() {
log.Info(fmt.Sprintf("init %s", c.name)) log.Info(fmt.Sprintf("init %s", c.name))
c.enabled = cfg.GetBool(c.enabledKey) c.enabled = cfg.GetBool(c.name + enabledKeyPostfix)
c.address = cfg.GetString(c.addressKey) c.address = cfg.GetString(c.name + addressKeyPostfix)
c.shutdownDur = cfg.GetDuration(c.shutdownTimeoutKey) c.shutdownDur = cfg.GetDuration(c.name + shutdownTimeoutKeyPostfix)
if c.enabled { if c.enabled {
c.srv = httputil.New( c.srv = httputil.New(
@ -63,9 +66,9 @@ func (c *httpComponent) shutdown() error {
func (c *httpComponent) reload() { func (c *httpComponent) reload() {
log.Info(fmt.Sprintf("reload %s", c.name)) log.Info(fmt.Sprintf("reload %s", c.name))
enabled := cfg.GetBool(c.enabledKey) enabled := cfg.GetBool(c.name + enabledKeyPostfix)
address := cfg.GetString(c.addressKey) address := cfg.GetString(c.name + addressKeyPostfix)
dur := cfg.GetDuration(c.shutdownTimeoutKey) dur := cfg.GetDuration(c.name + shutdownTimeoutKeyPostfix)
if enabled != c.enabled || enabled && (address != c.address || dur != c.shutdownDur) { if enabled != c.enabled || enabled && (address != c.address || dur != c.shutdownDur) {
log.Info(fmt.Sprintf("%s config updated", c.name)) log.Info(fmt.Sprintf("%s config updated", c.name))
if err := c.shutdown(); err != nil { if err := c.shutdown(); err != nil {

View file

@ -4,18 +4,9 @@ import (
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/metrics" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/metrics"
) )
const (
prometheusEnabledKey = "prometheus.enabled"
prometheusAddressKey = "prometheus.address"
prometheusShutdownTimeoutKey = "prometheus.shutdown_timeout"
)
func newMetricsComponent() *httpComponent { func newMetricsComponent() *httpComponent {
return &httpComponent{ return &httpComponent{
name: "prometheus", name: "prometheus",
enabledKey: prometheusEnabledKey, handler: metrics.Handler(),
addressKey: prometheusAddressKey,
shutdownTimeoutKey: prometheusShutdownTimeoutKey,
handler: metrics.Handler(),
} }
} }

View file

@ -4,18 +4,9 @@ import (
httputil "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/http" httputil "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/http"
) )
const (
pprofEnabledKey = "pprof.enabled"
pprofAddressKey = "pprof.address"
pprofShutdownTimeoutKey = "pprof.shutdown_timeout"
)
func newPprofComponent() *httpComponent { func newPprofComponent() *httpComponent {
return &httpComponent{ return &httpComponent{
name: "pprof", name: "pprof",
enabledKey: pprofEnabledKey, handler: httputil.Handler(),
addressKey: pprofAddressKey,
shutdownTimeoutKey: pprofShutdownTimeoutKey,
handler: httputil.Handler(),
} }
} }