Promtail——运行时重新加载

问题描述 投票:0回答:1

根据loki配置页面,可以在运行时重新加载promtail。 link-loki_configuration_info

但是每当我尝试重新加载时,都会收到以下错误:

panic: duplicate metrics collector registration attempted

goroutine 200 [running]:
github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0x3e7294d?, {0xc00194b0e0?, 0x1, 0xb?})
        /drone/src/vendor/github.com/prometheus/client_golang/prometheus/registry.go:405 +0x78
github.com/grafana/loki/clients/pkg/promtail/wal.NewWatcherMetrics({0x478b7b0, 0x648ec00})
        /drone/src/clients/pkg/promtail/wal/watcher_metrics.go:73 +0xa79
github.com/grafana/loki/clients/pkg/promtail/client.NewManager(0x0?, {0x4770b20, 0xc0006ba9b0}, {0x40c3880000000000, 0x2710, 0x0, 0x1, 0x0, 0x0, 0x0}, ...)
        /drone/src/clients/pkg/promtail/client/manager.go:61 +0x85
github.com/grafana/loki/clients/pkg/promtail.(*Promtail).reloadConfig(0xc0009481e0, 0xc0016ce000)
        /drone/src/clients/pkg/promtail/promtail.go:170 +0x88c
github.com/grafana/loki/clients/pkg/promtail.(*Promtail).reload(0xc0009481e0)
        /drone/src/clients/pkg/promtail/promtail.go:286 +0xa5
github.com/grafana/loki/clients/pkg/promtail.(*Promtail).watchConfig(0xc0009481e0)
        /drone/src/clients/pkg/promtail/promtail.go:271 +0x3d1
created by github.com/grafana/loki/clients/pkg/promtail.(*Promtail).Run in goroutine 1
        /drone/src/clients/pkg/promtail/promtail.go:214 +0xcd

洛基版本:

loki, version 2.9.3 (branch: HEAD, revision: 2535f9bede)
  build user:       root@998f10a08814
  build date:       2023-12-11T19:17:52Z
  go version:       go1.21.3
  platform:         windows/amd64
  tags:             netgo

Promtail 版本:

promtail, version 2.9.3 (branch: HEAD, revision: 2535f9bede)
  build user:       root@998f10a08814
  build date:       2023-12-11T19:17:52Z
  go version:       go1.21.3
  platform:         windows/amd64
  tags:             netgo

有什么想法可以解决这个问题吗? 谢谢。

我希望在向 /reload 端点发送 HTTP POST 请求后,promtail 将识别更新的配置文件并继续运行。

reload grafana-loki promtail
1个回答
0
投票

您的问题已在此问题中描述。它的修复已合并到 main 中,但我在发布分支中没有看到它。

我不熟悉 loki 的发布流程,但你可能可以基于

release_2.9.x
将解决方案挑选到单独的分支中,并提出一个 PR 供维护人员审查。

否则,我认为除了等待 2.10 或自己编译包含修复程序的 promtail 之外,你没有太多选择。

© www.soinside.com 2019 - 2024. All rights reserved.