summaryrefslogtreecommitdiffstats
path: root/exporting
diff options
context:
space:
mode:
authorVladimir Kobal <vlad@prokk.net>2021-01-11 17:23:21 +0200
committerGitHub <noreply@github.com>2021-01-11 17:23:21 +0200
commit503629f6e9ca29b8a6abd5bebd5de52b50a14432 (patch)
tree1e0249d0ada19fce1d520680be5c829c7cddd358 /exporting
parent5c847ea96d218635ca19253bfbf98114c35c325a (diff)
Fix data source option for Prometheus web API in exporting configuration (#10397)
Diffstat (limited to 'exporting')
-rw-r--r--exporting/exporting.conf1
-rw-r--r--exporting/read_config.c15
-rw-r--r--exporting/tests/test_exporting_engine.c1
3 files changed, 14 insertions, 3 deletions
diff --git a/exporting/exporting.conf b/exporting/exporting.conf
index 9c1e7ffb75..c2e902c051 100644
--- a/exporting/exporting.conf
+++ b/exporting/exporting.conf
@@ -5,6 +5,7 @@
# update every = 10
[prometheus:exporter]
+ # data source = average
# send names instead of ids = yes
# send configured labels = yes
# send automatic labels = no
diff --git a/exporting/read_config.c b/exporting/read_config.c
index 0cba4ad2c4..995ba578f8 100644
--- a/exporting/read_config.c
+++ b/exporting/read_config.c
@@ -238,9 +238,18 @@ struct engine *read_exporting_config()
prometheus_exporter_instance->config.update_every =
prometheus_config_get_number(EXPORTING_UPDATE_EVERY_OPTION_NAME, EXPORTING_UPDATE_EVERY_DEFAULT);
- prometheus_exporter_instance->config.options |=
- global_backend_options &
- (EXPORTING_SOURCE_DATA_AS_COLLECTED | EXPORTING_SOURCE_DATA_AVERAGE | EXPORTING_SOURCE_DATA_SUM);
+ // wait for backend subsystem to be initialized
+ for (int retries = 0; !global_backend_source && retries < 1000; retries++)
+ sleep_usec(10000);
+
+ if (!global_backend_source)
+ global_backend_source = "average";
+
+ prometheus_exporter_instance->config.options |= global_backend_options & EXPORTING_OPTIONS_SOURCE_BITS;
+
+ char *data_source = prometheus_config_get("data source", global_backend_source);
+ prometheus_exporter_instance->config.options =
+ exporting_parse_data_source(data_source, prometheus_exporter_instance->config.options);
if (prometheus_config_get_boolean(
"send names instead of ids", global_backend_options & EXPORTING_OPTION_SEND_NAMES))
diff --git a/exporting/tests/test_exporting_engine.c b/exporting/tests/test_exporting_engine.c
index b2065a26d8..e91ed2d294 100644
--- a/exporting/tests/test_exporting_engine.c
+++ b/exporting/tests/test_exporting_engine.c
@@ -15,6 +15,7 @@ char *netdata_configured_hostname = "test_global_host";
char log_line[MAX_LOG_LINE + 1];
BACKEND_OPTIONS global_backend_options = 0;
+const char *global_backend_source = "average";
const char *global_backend_prefix = "netdata";
void init_connectors_in_tests(struct engine *engine)