diff --git a/clients/pkg/promtail/targets/lokipush/pushtarget.go b/clients/pkg/promtail/targets/lokipush/pushtarget.go index 27a33504248d..f1df431ca71f 100644 --- a/clients/pkg/promtail/targets/lokipush/pushtarget.go +++ b/clients/pkg/promtail/targets/lokipush/pushtarget.go @@ -37,7 +37,6 @@ type PushTarget struct { relabelConfig []*relabel.Config jobName string server *server.Server - registerer prometheus.Registerer } func NewPushTarget(logger log.Logger, @@ -45,7 +44,6 @@ func NewPushTarget(logger log.Logger, relabel []*relabel.Config, jobName string, config *scrapeconfig.PushTargetConfig, - reg prometheus.Registerer, ) (*PushTarget, error) { pt := &PushTarget{ @@ -54,7 +52,6 @@ func NewPushTarget(logger log.Logger, relabelConfig: relabel, jobName: jobName, config: config, - registerer: reg, } // Bit of a chicken and egg problem trying to register the defaults and apply overrides from the loaded config. @@ -92,7 +89,9 @@ func (t *PushTarget) run() error { // We don't want the /debug and /metrics endpoints running t.config.Server.RegisterInstrumentation = false - util_log.InitLogger(&t.config.Server, t.registerer) + // The logger registers a metric which will cause a duplicate registry panic unless we provide an empty registry + // The metric created is for counting log lines and isn't likely to be missed. + util_log.InitLogger(&t.config.Server, prometheus.NewRegistry()) srv, err := server.New(t.config.Server) if err != nil { diff --git a/clients/pkg/promtail/targets/lokipush/pushtarget_test.go b/clients/pkg/promtail/targets/lokipush/pushtarget_test.go index 76bf7779b977..626ecae3db9a 100644 --- a/clients/pkg/promtail/targets/lokipush/pushtarget_test.go +++ b/clients/pkg/promtail/targets/lokipush/pushtarget_test.go @@ -70,7 +70,7 @@ func TestLokiPushTarget(t *testing.T) { }, } - pt, err := NewPushTarget(logger, eh, rlbl, "job1", config, nil) + pt, err := NewPushTarget(logger, eh, rlbl, "job1", config) require.NoError(t, err) // Build a client to send logs @@ -163,7 +163,7 @@ func TestPlaintextPushTarget(t *testing.T) { KeepTimestamp: true, } - pt, err := NewPushTarget(logger, eh, []*relabel.Config{}, "job2", config, nil) + pt, err := NewPushTarget(logger, eh, []*relabel.Config{}, "job2", config) require.NoError(t, err) // Send some logs diff --git a/clients/pkg/promtail/targets/lokipush/pushtargetmanager.go b/clients/pkg/promtail/targets/lokipush/pushtargetmanager.go index 0f7478f642d5..5356e06ee78f 100644 --- a/clients/pkg/promtail/targets/lokipush/pushtargetmanager.go +++ b/clients/pkg/promtail/targets/lokipush/pushtargetmanager.go @@ -44,7 +44,7 @@ func NewPushTargetManager( return nil, err } - t, err := NewPushTarget(logger, pipeline.Wrap(client), cfg.RelabelConfigs, cfg.JobName, cfg.PushConfig, reg) + t, err := NewPushTarget(logger, pipeline.Wrap(client), cfg.RelabelConfigs, cfg.JobName, cfg.PushConfig) if err != nil { return nil, err }