forked from TrueCloudLab/frostfs-node
[#1619] logger: Set tags for node
components
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
b0bf4643d0
commit
cb1792c69b
19 changed files with 63 additions and 20 deletions
|
@ -14,6 +14,7 @@ import (
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event"
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event"
|
||||||
netmapEvent "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event/netmap"
|
netmapEvent "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/event/netmap"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/subscriber"
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/morph/subscriber"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/rand"
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/rand"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
||||||
|
@ -172,14 +173,14 @@ func listenMorphNotifications(ctx context.Context, c *cfg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
subs, err = subscriber.New(ctx, &subscriber.Params{
|
subs, err = subscriber.New(ctx, &subscriber.Params{
|
||||||
Log: c.log,
|
Log: c.log.WithTag(logger.TagMorph),
|
||||||
StartFromBlock: fromSideChainBlock,
|
StartFromBlock: fromSideChainBlock,
|
||||||
Client: c.cfgMorph.client,
|
Client: c.cfgMorph.client,
|
||||||
})
|
})
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
|
|
||||||
lis, err := event.NewListener(event.ListenerParams{
|
lis, err := event.NewListener(event.ListenerParams{
|
||||||
Logger: c.log,
|
Logger: c.log.WithTag(logger.TagMorph),
|
||||||
Subscriber: subs,
|
Subscriber: subs,
|
||||||
})
|
})
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FROSTFS_LOGGER_LEVEL=debug
|
FROSTFS_LOGGER_LEVEL=debug
|
||||||
FROSTFS_LOGGER_DESTINATION=journald
|
FROSTFS_LOGGER_DESTINATION=journald
|
||||||
FROSTFS_LOGGER_TIMESTAMP=true
|
FROSTFS_LOGGER_TIMESTAMP=true
|
||||||
|
FROSTFS_LOGGER_ALLOWED_TAGS="main:debug"
|
||||||
|
|
||||||
FROSTFS_PPROF_ENABLED=true
|
FROSTFS_PPROF_ENABLED=true
|
||||||
FROSTFS_PPROF_ADDRESS=localhost:6060
|
FROSTFS_PPROF_ADDRESS=localhost:6060
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
"logger": {
|
"logger": {
|
||||||
"level": "debug",
|
"level": "debug",
|
||||||
"destination": "journald",
|
"destination": "journald",
|
||||||
"timestamp": true
|
"timestamp": true,
|
||||||
|
"allowed_tags": ["main:debug"]
|
||||||
},
|
},
|
||||||
"pprof": {
|
"pprof": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
|
|
|
@ -2,6 +2,8 @@ logger:
|
||||||
level: debug # logger level: one of "debug", "info" (default), "warn", "error", "dpanic", "panic", "fatal"
|
level: debug # logger level: one of "debug", "info" (default), "warn", "error", "dpanic", "panic", "fatal"
|
||||||
destination: journald # logger destination: one of "stdout" (default), "journald"
|
destination: journald # logger destination: one of "stdout" (default), "journald"
|
||||||
timestamp: true
|
timestamp: true
|
||||||
|
allowed_tags:
|
||||||
|
- "main:debug"
|
||||||
|
|
||||||
systemdnotify:
|
systemdnotify:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -114,8 +114,9 @@ logger:
|
||||||
```
|
```
|
||||||
|
|
||||||
| Parameter | Type | Default value | Description |
|
| Parameter | Type | Default value | Description |
|
||||||
|-----------|----------|---------------|---------------------------------------------------------------------------------------------------|
|
|----------------|------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `level` | `string` | `info` | Logging level.<br/>Possible values: `debug`, `info`, `warn`, `error`, `dpanic`, `panic`, `fatal` |
|
| `level` | `string` | `info` | Logging level.<br/>Possible values: `debug`, `info`, `warn`, `error`, `dpanic`, `panic`, `fatal` |
|
||||||
|
| `allowed_tags` | `[]string` | | List of components allowed to produce log entries. Can be combined with logging level: `main:debug`. The resulting level for tag will be the most restrictive.<br/>Possible values: `main`, `morph`, `engine`, `blobovnicza`, `blobstor`, `fstree`, `gc`, `shard`, `writecache`, `deletesvc`, `getsvc`, `searchsvc`, `policer`, `replicator`. |
|
||||||
|
|
||||||
# `contracts` section
|
# `contracts` section
|
||||||
Contains override values for FrostFS side-chain contract hashes. Most of the time contract
|
Contains override values for FrostFS side-chain contract hashes. Most of the time contract
|
||||||
|
|
|
@ -110,7 +110,7 @@ func WithFullSizeLimit(lim uint64) Option {
|
||||||
// WithLogger returns an option to specify Blobovnicza's logger.
|
// WithLogger returns an option to specify Blobovnicza's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l.With(zap.String("component", "Blobovnicza"))
|
c.log = l.With(zap.String("component", "Blobovnicza")).WithTag(logger.TagBlobovnicza)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ func WithStorages(st []SubStorage) Option {
|
||||||
// WithLogger returns option to specify BlobStor's logger.
|
// WithLogger returns option to specify BlobStor's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l.With(zap.String("component", "BlobStor"))
|
c.log = l.With(zap.String("component", "BlobStor")).WithTag(logger.TagBlobstor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,6 @@ func WithFileCounter(c FileCounter) Option {
|
||||||
|
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(f *FSTree) {
|
return func(f *FSTree) {
|
||||||
f.log = l.With(zap.String("component", "FSTree"))
|
f.log = l.With(zap.String("component", "FSTree")).WithTag(logger.TagFSTree)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,7 +227,7 @@ func New(opts ...Option) *StorageEngine {
|
||||||
// WithLogger returns option to set StorageEngine's logger.
|
// WithLogger returns option to set StorageEngine's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l
|
c.log = l.WithTag(logger.TagEngine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -473,7 +473,7 @@ func (s *Shard) collectExpiredTombstones(ctx context.Context, e Event) {
|
||||||
}()
|
}()
|
||||||
|
|
||||||
epoch := e.(newEpoch).epoch
|
epoch := e.(newEpoch).epoch
|
||||||
log := s.log.With(zap.Uint64("epoch", epoch))
|
log := s.log.With(zap.Uint64("epoch", epoch)).WithTag(logger.TagGC)
|
||||||
|
|
||||||
log.Debug(ctx, logs.ShardStartedExpiredTombstonesHandling)
|
log.Debug(ctx, logs.ShardStartedExpiredTombstonesHandling)
|
||||||
defer log.Debug(ctx, logs.ShardFinishedExpiredTombstonesHandling)
|
defer log.Debug(ctx, logs.ShardFinishedExpiredTombstonesHandling)
|
||||||
|
|
|
@ -200,8 +200,8 @@ func WithPiloramaOptions(opts ...pilorama.Option) Option {
|
||||||
// WithLogger returns option to set Shard's logger.
|
// WithLogger returns option to set Shard's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l
|
c.log = l.WithTag(logger.TagShard)
|
||||||
c.gcCfg.log = l
|
c.gcCfg.log = l.WithTag(logger.TagGC)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ type options struct {
|
||||||
// WithLogger sets logger.
|
// WithLogger sets logger.
|
||||||
func WithLogger(log *logger.Logger) Option {
|
func WithLogger(log *logger.Logger) Option {
|
||||||
return func(o *options) {
|
return func(o *options) {
|
||||||
o.log = log.With(zap.String("component", "WriteCache"))
|
o.log = log.With(zap.String("component", "WriteCache")).WithTag(logger.TagWriteCache)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,6 @@ func New(gs *getsvc.Service,
|
||||||
// WithLogger returns option to specify Delete service's logger.
|
// WithLogger returns option to specify Delete service's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l.With(zap.String("component", "objectSDK.Delete service"))
|
c.log = l.With(zap.String("component", "objectSDK.Delete service")).WithTag(logger.TagDeleteSvc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,6 @@ func New(
|
||||||
// WithLogger returns option to specify Get service's logger.
|
// WithLogger returns option to specify Get service's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(s *Service) {
|
return func(s *Service) {
|
||||||
s.log = l.With(zap.String("component", "Object.Get service"))
|
s.log = l.With(zap.String("component", "Object.Get service")).WithTag(logger.TagGetSvc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,6 +145,6 @@ func (s *Service) Head(ctx context.Context, req *objectV2.HeadRequest) (*objectV
|
||||||
|
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l.With(zap.String("component", "Object.Get V2 service"))
|
c.log = l.With(zap.String("component", "Object.Get V2 service")).WithTag(logger.TagGetSvc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,6 @@ func New(e *engine.StorageEngine,
|
||||||
// WithLogger returns option to specify Get service's logger.
|
// WithLogger returns option to specify Get service's logger.
|
||||||
func WithLogger(l *logger.Logger) Option {
|
func WithLogger(l *logger.Logger) Option {
|
||||||
return func(c *cfg) {
|
return func(c *cfg) {
|
||||||
c.log = l.With(zap.String("component", "Object.Search service"))
|
c.log = l.With(zap.String("component", "Object.Search service")).WithTag(logger.TagSearchSvc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger"
|
||||||
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||||
lru "github.com/hashicorp/golang-lru/v2"
|
lru "github.com/hashicorp/golang-lru/v2"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
@ -54,7 +55,7 @@ func New(opts ...Option) *Policer {
|
||||||
opts[i](c)
|
opts[i](c)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.log = c.log.With(zap.String("component", "Object Policer"))
|
c.log = c.log.With(zap.String("component", "Object Policer")).WithTag(logger.TagPolicer)
|
||||||
|
|
||||||
cache, err := lru.New[oid.Address, time.Time](int(c.cacheSize))
|
cache, err := lru.New[oid.Address, time.Time](int(c.cacheSize))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -45,7 +45,7 @@ func New(opts ...Option) *Replicator {
|
||||||
opts[i](c)
|
opts[i](c)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.log = c.log.With(zap.String("component", "Object Replicator"))
|
c.log = c.log.With(zap.String("component", "Object Replicator")).WithTag(logger.TagReplicator)
|
||||||
|
|
||||||
return &Replicator{
|
return &Replicator{
|
||||||
cfg: c,
|
cfg: c,
|
||||||
|
|
|
@ -14,6 +14,18 @@ const (
|
||||||
TagGrpcSvc
|
TagGrpcSvc
|
||||||
TagIr
|
TagIr
|
||||||
TagProcessor
|
TagProcessor
|
||||||
|
TagEngine
|
||||||
|
TagBlobovnicza
|
||||||
|
TagBlobstor
|
||||||
|
TagFSTree
|
||||||
|
TagGC
|
||||||
|
TagShard
|
||||||
|
TagWriteCache
|
||||||
|
TagDeleteSvc
|
||||||
|
TagGetSvc
|
||||||
|
TagSearchSvc
|
||||||
|
TagPolicer
|
||||||
|
TagReplicator
|
||||||
)
|
)
|
||||||
|
|
||||||
// tagToMask return bit mask for the tag, encoded in uint32.
|
// tagToMask return bit mask for the tag, encoded in uint32.
|
||||||
|
@ -27,6 +39,30 @@ func tagToMask(str string) (uint32, error) {
|
||||||
return 1 << TagGrpcSvc, nil
|
return 1 << TagGrpcSvc, nil
|
||||||
case "ir":
|
case "ir":
|
||||||
return 1 << TagIr, nil
|
return 1 << TagIr, nil
|
||||||
|
case "engine":
|
||||||
|
return 1 << TagEngine, nil
|
||||||
|
case "blobovnicza":
|
||||||
|
return 1 << TagBlobovnicza, nil
|
||||||
|
case "blobstor":
|
||||||
|
return 1 << TagBlobstor, nil
|
||||||
|
case "fstree":
|
||||||
|
return 1 << TagFSTree, nil
|
||||||
|
case "gc":
|
||||||
|
return 1 << TagGC, nil
|
||||||
|
case "shard":
|
||||||
|
return 1 << TagShard, nil
|
||||||
|
case "writecache":
|
||||||
|
return 1 << TagWriteCache, nil
|
||||||
|
case "deletesvc":
|
||||||
|
return 1 << TagDeleteSvc, nil
|
||||||
|
case "getsvc":
|
||||||
|
return 1 << TagGetSvc, nil
|
||||||
|
case "searchsvc":
|
||||||
|
return 1 << TagSearchSvc, nil
|
||||||
|
case "policer":
|
||||||
|
return 1 << TagPolicer, nil
|
||||||
|
case "replicator":
|
||||||
|
return 1 << TagReplicator, nil
|
||||||
case "processor":
|
case "processor":
|
||||||
return 1 << TagProcessor, nil
|
return 1 << TagProcessor, nil
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Reference in a new issue