mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
lib/pushmetrics: fix a panic caused by pushing metrics during the graceful shutdown process of vmstorage nodes. (#5549)
Co-authored-by: zhangdongdong <zhangdongdong@kuaishou.com> Co-authored-by: Roman Khavronenko <roman@victoriametrics.com> Signed-off-by: hagen1778 <roman@victoriametrics.com>
This commit is contained in:
parent
b79d4cc988
commit
fe2d9f6646
1 changed files with 10 additions and 1 deletions
|
@ -28,6 +28,11 @@ func init() {
|
|||
flagutil.RegisterSecretFlag("pushmetrics.url")
|
||||
}
|
||||
|
||||
var (
|
||||
// create a custom context for the pushmetrics module to close the metric reporting goroutine when the vmstorage process is shutdown.
|
||||
pushMetricsCtx, cancelPushMetric = context.WithCancel(context.Background())
|
||||
)
|
||||
|
||||
// Init must be called after logger.Init
|
||||
func Init() {
|
||||
extraLabels := strings.Join(*pushExtraLabel, ",")
|
||||
|
@ -37,8 +42,12 @@ func Init() {
|
|||
Headers: *pushHeader,
|
||||
DisableCompression: *disableCompression,
|
||||
}
|
||||
if err := metrics.InitPushExtWithOptions(context.Background(), pu, *pushInterval, appmetrics.WritePrometheusMetrics, opts); err != nil {
|
||||
if err := metrics.InitPushExtWithOptions(pushMetricsCtx, pu, *pushInterval, appmetrics.WritePrometheusMetrics, opts); err != nil {
|
||||
logger.Fatalf("cannot initialize pushmetrics: %s", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func StopPushMetrics() {
|
||||
cancelPushMetric()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue