Skip to content
This repository has been archived by the owner on Mar 27, 2024. It is now read-only.

replace logger with structured #1418

Merged
merged 6 commits into from
Nov 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions agent/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package agent
import (
"context"
"io"
"log/slog"
"os"
"os/signal"
"sync"
Expand Down Expand Up @@ -65,10 +66,11 @@ type Agent struct {

// New creates a new Agent.
func New(cfg Config) *Agent {
logger.Prefix = cfg.Name

return &Agent{
Logger: logger.New("main", "main"),
Logger: logger.New().With(
slog.String("component", "agent"),
slog.String("job", "main"),
),
Name: cfg.Name,
ConfDir: cfg.ConfDir,
ModulesConfDir: cfg.ModulesConfDir,
Expand Down Expand Up @@ -186,7 +188,7 @@ func (a *Agent) run(ctx context.Context) {
jobsManager.Modules = enabledModules

// TODO: rm 'if' after https://github.com/netdata/netdata/issues/16079
if logger.IsDebug() {
if logger.Level.Enabled(slog.LevelDebug) {
dyncfgDiscovery, _ := dyncfg.NewDiscovery(dyncfg.Config{
Plugin: a.Name,
API: netdataapi.New(a.Out),
Expand Down
10 changes: 7 additions & 3 deletions agent/discovery/dummy/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package dummy
import (
"context"
"fmt"
"log/slog"

"github.com/netdata/go.d.plugin/agent/confgroup"
"github.com/netdata/go.d.plugin/logger"
Expand All @@ -15,9 +16,12 @@ func NewDiscovery(cfg Config) (*Discovery, error) {
return nil, fmt.Errorf("config validation: %v", err)
}
d := &Discovery{
Logger: logger.New("discovery", "dummy"),
reg: cfg.Registry,
names: cfg.Names,
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "dummy"),
),
reg: cfg.Registry,
names: cfg.Names,
}
return d, nil
}
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/dyncfg/dyncfg.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"bytes"
"context"
"fmt"
"log/slog"
"strings"
"sync"

Expand All @@ -25,7 +26,10 @@ func NewDiscovery(cfg Config) (*Discovery, error) {
}

mgr := &Discovery{
Logger: logger.New("dyncfg", "manager"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "dyncfg"),
),
Plugin: cfg.Plugin,
API: cfg.API,
Modules: cfg.Modules,
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/file/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"sync"

"github.com/netdata/go.d.plugin/agent/confgroup"
Expand All @@ -18,7 +19,10 @@ func NewDiscovery(cfg Config) (*Discovery, error) {
}

d := Discovery{
Logger: logger.New("discovery", "file manager"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "file manager"),
),
}

if err := d.registerDiscoverers(cfg); err != nil {
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/file/read.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package file

import (
"context"
"log/slog"
"os"
"path/filepath"

Expand All @@ -21,7 +22,10 @@ type (

func NewReader(reg confgroup.Registry, paths []string) *Reader {
return &Reader{
Logger: logger.New("discovery", "file reader"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "file reader"),
),

reg: reg,
paths: paths,
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/file/watch.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package file

import (
"context"
"log/slog"
"os"
"path/filepath"
"strings"
Expand Down Expand Up @@ -35,7 +36,10 @@ func (c cache) put(path string, modTime time.Time) { c[path] = modTime }

func NewWatcher(reg confgroup.Registry, paths []string) *Watcher {
d := &Watcher{
Logger: logger.New("discovery", "file watcher"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "file watcher"),
),
paths: paths,
reg: reg,
watcher: nil,
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"sync"
"time"

Expand All @@ -21,7 +22,10 @@ func NewManager(cfg Config) (*Manager, error) {
}

mgr := &Manager{
Logger: logger.New("discovery", "manager"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "manager"),
),
send: make(chan struct{}, 1),
sendEvery: time.Second * 2, // timeout to aggregate changes
discoverers: make([]discoverer, 0),
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/sd/hostsocket/net.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"os"
"os/exec"
"path/filepath"
Expand Down Expand Up @@ -60,7 +61,10 @@ func NewNetSocketDiscoverer(cfg NetworkSocketConfig) (*NetDiscoverer, error) {
}

d := &NetDiscoverer{
Logger: logger.New("hostsocket", "net"),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "sd hostsocket"),
),
interval: time.Second * 60,
ll: &localListenersExec{
binPath: filepath.Join(dir, "local-listeners"),
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/sd/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package kubernetes
import (
"context"
"fmt"
"log/slog"
"os"
"strings"
"sync"
Expand Down Expand Up @@ -44,7 +45,10 @@ func NewKubeDiscoverer(cfg Config) (*KubeDiscoverer, error) {
}

d := &KubeDiscoverer{
Logger: logger.New("k8s td manager", ""),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "sd k8s manager"),
),
namespaces: ns,
podConf: cfg.Pod,
svcConf: cfg.Service,
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/sd/kubernetes/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package kubernetes
import (
"context"
"fmt"
"log/slog"
"net"
"strconv"
"strings"
Expand Down Expand Up @@ -67,7 +68,10 @@ func newPodDiscoverer(pod, cmap, secret cache.SharedInformer) *podDiscoverer {
})

return &podDiscoverer{
Logger: logger.New("k8s pod td", ""),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "sd k8s pod"),
),
podInformer: pod,
cmapInformer: cmap,
secretInformer: secret,
Expand Down
6 changes: 5 additions & 1 deletion agent/discovery/sd/kubernetes/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package kubernetes
import (
"context"
"fmt"
"log/slog"
"net"
"strconv"
"strings"
Expand Down Expand Up @@ -69,7 +70,10 @@ func newServiceDiscoverer(inf cache.SharedInformer) *serviceDiscoverer {
})

return &serviceDiscoverer{
Logger: logger.New("k8s service td", ""),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "sd k8s service"),
),
informer: inf,
queue: queue,
}
Expand Down
8 changes: 6 additions & 2 deletions agent/discovery/sd/pipeline/pipeline.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ package pipeline

import (
"context"
"github.com/netdata/go.d.plugin/agent/discovery/sd/hostsocket"
"log/slog"
"time"

"github.com/netdata/go.d.plugin/agent/confgroup"
"github.com/netdata/go.d.plugin/agent/discovery/sd/hostsocket"
"github.com/netdata/go.d.plugin/agent/discovery/sd/kubernetes"
"github.com/netdata/go.d.plugin/agent/discovery/sd/model"
"github.com/netdata/go.d.plugin/logger"
Expand All @@ -19,7 +20,10 @@ func New(cfg Config) (*Pipeline, error) {
}

p := &Pipeline{
Logger: logger.New("sd pipeline", cfg.Name),
Logger: logger.New().With(
slog.String("component", "discovery"),
slog.String("job", "sd pipeline"),
),
accum: newAccumulator(),
discoverers: make([]model.Discoverer, 0),
items: make(map[string]map[uint64][]confgroup.Config),
Expand Down
2 changes: 1 addition & 1 deletion agent/discovery/sd/pipeline/sim_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func (sim discoverySim) run(t *testing.T) {
accum.sendEvery = time.Second * 2

pl := &Pipeline{
Logger: logger.New("sd pipeline", "test"),
Logger: logger.New(),
accum: accum,
discoverers: sim.discoverers,
clr: mockClr,
Expand Down
2 changes: 1 addition & 1 deletion agent/discovery/sd/sim_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type discoverySim struct {
func (sim *discoverySim) run(t *testing.T) {
fact := &mockFactory{}
mgr := &ServiceDiscovery{
Logger: logger.New("test", "test"),
Logger: logger.New(),
sdFactory: fact,
confProv: &mockConfigProvider{
configs: sim.configs,
Expand Down
6 changes: 5 additions & 1 deletion agent/filestatus/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package filestatus

import (
"context"
"log/slog"
"os"
"time"

Expand All @@ -13,7 +14,10 @@ import (

func NewManager(path string) *Manager {
return &Manager{
Logger: logger.New("status save", "manager"),
Logger: logger.New().With(
slog.String("component", "filestatus"),
slog.String("job", "manager"),
),
path: path,
store: &Store{},
flushEvery: time.Second * 5,
Expand Down
6 changes: 5 additions & 1 deletion agent/functions/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"bufio"
"context"
"io"
"log/slog"
"os"
"strings"
"sync"
Expand All @@ -20,7 +21,10 @@ var isTerminal = isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsTerminal(os.Stdin

func NewManager() *Manager {
return &Manager{
Logger: logger.New("functions", "manager"),
Logger: logger.New().With(
slog.String("component", "functions"),
slog.String("job", "manager"),
),
Input: os.Stdin,
mux: &sync.Mutex{},
FunctionRegistry: make(map[string]func(Function)),
Expand Down
6 changes: 5 additions & 1 deletion agent/jobmgr/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"context"
"fmt"
"io"
"log/slog"
"os"
"strings"
"sync"
Expand Down Expand Up @@ -46,7 +47,10 @@ const (
func NewManager() *Manager {
np := noop{}
mgr := &Manager{
Logger: logger.New("job", "manager"),
Logger: logger.New().With(
slog.String("component", "job"),
slog.String("job", "manager"),
),
Out: io.Discard,
FileLock: np,
StatusSaver: np,
Expand Down
14 changes: 8 additions & 6 deletions agent/module/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"bytes"
"fmt"
"io"
"log/slog"
"os"
"regexp"
"runtime/debug"
Expand Down Expand Up @@ -185,8 +186,9 @@ func (j *Job) AutoDetection() (ok bool) {
ok = false
j.panicked = true
j.disableAutoDetection()

j.Errorf("PANIC %v", r)
if logger.IsDebug() {
if logger.Level.Enabled(slog.LevelDebug) {
j.Errorf("STACK: %s", debug.Stack())
}
}
Expand Down Expand Up @@ -255,9 +257,6 @@ func (j *Job) disableAutoDetection() {
}

func (j *Job) Cleanup() {
if j.Logger != nil {
logger.GlobalMsgCountWatcher.Unregister(j.Logger)
}
j.buf.Reset()
if !shouldObsoleteCharts() {
return
Expand Down Expand Up @@ -294,7 +293,10 @@ func (j *Job) init() bool {
return true
}

log := logger.NewLimited(j.ModuleName(), j.Name())
log := logger.New().With(
slog.String("module", j.ModuleName()),
slog.String("job", j.Name()),
)
j.Logger = log
j.module.GetBase().Logger = log

Expand Down Expand Up @@ -349,7 +351,7 @@ func (j *Job) collect() (result map[string]int64) {
if r := recover(); r != nil {
j.panicked = true
j.Errorf("PANIC: %v", r)
if logger.IsDebug() {
if logger.Level.Enabled(slog.LevelDebug) {
j.Errorf("STACK: %s", debug.Stack())
}
}
Expand Down
Loading