From 1db010797e9a8a974bd979dc3bcef920d7638b42 Mon Sep 17 00:00:00 2001 From: Zakhar Bessarab Date: Mon, 27 Feb 2023 23:53:53 +0400 Subject: [PATCH] lib/promscrape: correctly register `vm_promscrape_config_*` metrics (#3876) * lib/promscrape: set `vm_promscrape_config_last_reload_successful` to 1 if there was no promscrape config provided Signed-off-by: Zakhar Bessarab * lib/promscrape: register `vm_promscrape_config_*` metrics only in case promscrape config is used Signed-off-by: Zakhar Bessarab --------- Signed-off-by: Zakhar Bessarab Co-authored-by: Aliaksandr Valialkin --- docs/CHANGELOG.md | 1 + lib/promscrape/scraper.go | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index e4a02f680c..ce1c622c80 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -19,6 +19,7 @@ The following tip changes can be tested by building VictoriaMetrics components f * BUGFIX: [MetricsQL](https://docs.victoriametrics.com/MetricsQL.html): fix panic when executing the query `aggr_func(rollup*(some_value))`. The panic has been introduced in [v1.88.0](https://docs.victoriametrics.com/CHANGELOG.html#v1880). * BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): use the provided `-remoteWrite.*` auth options when determining whether the remote storage supports [VictoriaMetrics remote write protocol](https://docs.victoriametrics.com/vmagent.html#victoriametrics-remote-write-protocol). Previously the auth options were ignored. This was preventing from automatic switch to VictoriaMetrics remote write protocol. +* BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): do not register `vm_promscrape_config_*` metrics if `-promscrape.config` flag is not used. Previously those metrics were registered and never updated, which was confusing and could trigger false-positive alerts. * BUGFIX: [vmctl](https://docs.victoriametrics.com/vmctl.html): skip measurements with no fields when migrating data from influxdb. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3837). ## [v1.88.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.88.0) diff --git a/lib/promscrape/scraper.go b/lib/promscrape/scraper.go index cf653776ac..e191b1a97f 100644 --- a/lib/promscrape/scraper.go +++ b/lib/promscrape/scraper.go @@ -103,6 +103,8 @@ func runScraper(configFile string, pushData func(at *auth.Token, wr *prompbmarsh return } + metrics.RegisterSet(configMetricsSet) + // Register SIGHUP handler for config reload before loadConfig. // This guarantees that the config will be re-read if the signal arrives just after loadConfig. // See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1240 @@ -200,10 +202,11 @@ func runScraper(configFile string, pushData func(at *auth.Token, wr *prompbmarsh } var ( - configReloads = metrics.NewCounter(`vm_promscrape_config_reloads_total`) - configReloadErrors = metrics.NewCounter(`vm_promscrape_config_reloads_errors_total`) - configSuccess = metrics.NewCounter(`vm_promscrape_config_last_reload_successful`) - configTimestamp = metrics.NewCounter(`vm_promscrape_config_last_reload_success_timestamp_seconds`) + configMetricsSet = metrics.NewSet() + configReloads = configMetricsSet.NewCounter(`vm_promscrape_config_reloads_total`) + configReloadErrors = configMetricsSet.NewCounter(`vm_promscrape_config_reloads_errors_total`) + configSuccess = configMetricsSet.NewCounter(`vm_promscrape_config_last_reload_successful`) + configTimestamp = configMetricsSet.NewCounter(`vm_promscrape_config_last_reload_success_timestamp_seconds`) ) type scrapeConfigs struct {