[#68] Add go pprof to neofs-storage

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2020-10-02 16:18:38 +03:00 committed by Alex Vanin
parent 69a69cdbee
commit 2ee24998ba
3 changed files with 29 additions and 0 deletions

View file

@ -21,6 +21,7 @@ import (
"github.com/nspcc-dev/neofs-node/pkg/network" "github.com/nspcc-dev/neofs-node/pkg/network"
tokenStorage "github.com/nspcc-dev/neofs-node/pkg/services/session/storage" tokenStorage "github.com/nspcc-dev/neofs-node/pkg/services/session/storage"
"github.com/nspcc-dev/neofs-node/pkg/util/logger" "github.com/nspcc-dev/neofs-node/pkg/util/logger"
"github.com/nspcc-dev/neofs-node/pkg/util/profiler"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/viper" "github.com/spf13/viper"
"go.uber.org/zap" "go.uber.org/zap"
@ -35,6 +36,11 @@ const (
cfgLogInitSampling = "logger.sampling.initial" cfgLogInitSampling = "logger.sampling.initial"
cfgLogThereafterSampling = "logger.sampling.thereafter" cfgLogThereafterSampling = "logger.sampling.thereafter"
// pprof keys
cfgProfilerEnable = "pprof.enabled"
cfgProfilerAddr = "pprof.address"
cfgProfilerTTL = "pprof.shutdown_ttl"
// config keys for cfgNodeInfo // config keys for cfgNodeInfo
cfgNodeKey = "node.key" cfgNodeKey = "node.key"
cfgBootstrapAddress = "node.address" cfgBootstrapAddress = "node.address"
@ -97,6 +103,8 @@ type cfg struct {
localAddr *network.Address localAddr *network.Address
cfgObject cfgObject cfgObject cfgObject
profiler profiler.Profiler
} }
type cfgGRPC struct { type cfgGRPC struct {
@ -269,6 +277,10 @@ func defaultConfiguration(v *viper.Viper) {
v.SetDefault(cfgLogTrace, "fatal") v.SetDefault(cfgLogTrace, "fatal")
v.SetDefault(cfgLogInitSampling, 1000) v.SetDefault(cfgLogInitSampling, 1000)
v.SetDefault(cfgLogThereafterSampling, 1000) v.SetDefault(cfgLogThereafterSampling, 1000)
v.SetDefault(cfgProfilerEnable, false)
v.SetDefault(cfgProfilerAddr, ":6060")
v.SetDefault(cfgProfilerTTL, "30s")
} }
func (c *cfg) LocalAddress() *network.Address { func (c *cfg) LocalAddress() *network.Address {

View file

@ -37,9 +37,11 @@ func init_(c *cfg) {
initContainerService(c) initContainerService(c)
initSessionService(c) initSessionService(c)
initObjectService(c) initObjectService(c)
initProfiler(c)
} }
func bootUp(c *cfg) { func bootUp(c *cfg) {
serveProfiler(c)
serveGRPC(c) serveGRPC(c)
bootstrapNode(c) bootstrapNode(c)
} }

15
cmd/neofs-node/pprof.go Normal file
View file

@ -0,0 +1,15 @@
package main
import (
"github.com/nspcc-dev/neofs-node/pkg/util/profiler"
)
func initProfiler(c *cfg) {
c.profiler = profiler.NewProfiler(c.log, c.viper)
}
func serveProfiler(c *cfg) {
if c.profiler != nil {
c.profiler.Start(c.ctx)
}
}