@cryptotaxi247 / netdata-1 / commits / 81968dea3

Fix hostname configuration in the exporting engine (#10361)

Vladimir Kobal committed Dec 14, 2020 at 16:25 UTC 81968dea3a411aed2f451a941354283b945a35de
10 files changed +22 -24
exporting/clean_connectors.c
+1
@@ -16,6 +16,7 @@ static void clean_instance_config(struct instance_config *config)
16 freez((void *)config->name);
17 freez((void *)config->destination);
18 freez((void *)config->prefix);
19 + freez((void *)config->hostname);
20
21 simple_pattern_free(config->charts_pattern);
22
exporting/exporting_engine.h
+1
@@ -67,6 +67,7 @@ struct instance_config {
67 const char *name;
68 const char *destination;
69 const char *prefix;
70 + const char *hostname;
71
72 int update_every;
73 int buffer_on_failures;
exporting/graphite/graphite.c
+2 -4
@@ -127,7 +127,6 @@ int format_host_labels_graphite_plaintext(struct instance *instance, RRDHOST *ho
127 */
128 int format_dimension_collected_graphite_plaintext(struct instance *instance, RRDDIM *rd)
129 {
130 - struct engine *engine = instance->engine;
130 RRDSET *st = rd->rrdset;
131 RRDHOST *host = st->rrdhost;
132
@@ -147,7 +146,7 @@ int format_dimension_collected_graphite_plaintext(struct instance *instance, RRD
146 instance->buffer,
147 "%s.%s.%s.%s%s%s%s " COLLECTED_NUMBER_FORMAT " %llu\n",
148 instance->config.prefix,
150 - (host == localhost) ? engine->config.hostname : host->hostname,
149 + (host == localhost) ? instance->config.hostname : host->hostname,
150 chart_name,
151 dimension_name,
152 (host->tags) ? ";" : "",
@@ -168,7 +167,6 @@ int format_dimension_collected_graphite_plaintext(struct instance *instance, RRD
167 */
168 int format_dimension_stored_graphite_plaintext(struct instance *instance, RRDDIM *rd)
169 {
171 - struct engine *engine = instance->engine;
170 RRDSET *st = rd->rrdset;
171 RRDHOST *host = st->rrdhost;
172
@@ -194,7 +192,7 @@ int format_dimension_stored_graphite_plaintext(struct instance *instance, RRDDIM
192 instance->buffer,
193 "%s.%s.%s.%s%s%s%s " CALCULATED_NUMBER_FORMAT " %llu\n",
194 instance->config.prefix,
197 - (host == localhost) ? engine->config.hostname : host->hostname,
195 + (host == localhost) ? instance->config.hostname : host->hostname,
196 chart_name,
197 dimension_name,
198 (host->tags) ? ";" : "",
exporting/json/json.c
+2 -4
@@ -154,7 +154,6 @@ int format_host_labels_json_plaintext(struct instance *instance, RRDHOST *host)
154 */
155 int format_dimension_collected_json_plaintext(struct instance *instance, RRDDIM *rd)
156 {
157 - struct engine *engine = instance->engine;
157 RRDSET *st = rd->rrdset;
158 RRDHOST *host = st->rrdhost;
159
@@ -200,7 +199,7 @@ int format_dimension_collected_json_plaintext(struct instance *instance, RRDDIM
199 "\"timestamp\":%llu}",
200
201 instance->config.prefix,
203 - (host == localhost) ? engine->config.hostname : host->hostname,
202 + (host == localhost) ? instance->config.hostname : host->hostname,
203 tags_pre,
204 tags,
205 tags_post,
@@ -235,7 +234,6 @@ int format_dimension_collected_json_plaintext(struct instance *instance, RRDDIM
234 */
235 int format_dimension_stored_json_plaintext(struct instance *instance, RRDDIM *rd)
236 {
238 - struct engine *engine = instance->engine;
237 RRDSET *st = rd->rrdset;
238 RRDHOST *host = st->rrdhost;
239
@@ -286,7 +284,7 @@ int format_dimension_stored_json_plaintext(struct instance *instance, RRDDIM *rd
284 "\"timestamp\": %llu}",
285
286 instance->config.prefix,
289 - (host == localhost) ? engine->config.hostname : host->hostname,
287 + (host == localhost) ? instance->config.hostname : host->hostname,
288 tags_pre,
289 tags,
290 tags_post,
exporting/opentsdb/opentsdb.c
+4 -8
@@ -178,7 +178,6 @@ int format_host_labels_opentsdb_telnet(struct instance *instance, RRDHOST *host)
178 */
179 int format_dimension_collected_opentsdb_telnet(struct instance *instance, RRDDIM *rd)
180 {
181 - struct engine *engine = instance->engine;
181 RRDSET *st = rd->rrdset;
182 RRDHOST *host = st->rrdhost;
183
@@ -202,7 +201,7 @@ int format_dimension_collected_opentsdb_telnet(struct instance *instance, RRDDIM
201 dimension_name,
202 (unsigned long long)rd->last_collected_time.tv_sec,
203 rd->last_collected_value,
205 - (host == localhost) ? engine->config.hostname : host->hostname,
204 + (host == localhost) ? instance->config.hostname : host->hostname,
205 (host->tags) ? " " : "",
206 (host->tags) ? host->tags : "",
207 (instance->labels) ? buffer_tostring(instance->labels) : "");
@@ -219,7 +218,6 @@ int format_dimension_collected_opentsdb_telnet(struct instance *instance, RRDDIM
218 */
219 int format_dimension_stored_opentsdb_telnet(struct instance *instance, RRDDIM *rd)
220 {
222 - struct engine *engine = instance->engine;
221 RRDSET *st = rd->rrdset;
222 RRDHOST *host = st->rrdhost;
223
@@ -249,7 +247,7 @@ int format_dimension_stored_opentsdb_telnet(struct instance *instance, RRDDIM *r
247 dimension_name,
248 (unsigned long long)last_t,
249 value,
252 - (host == localhost) ? engine->config.hostname : host->hostname,
250 + (host == localhost) ? instance->config.hostname : host->hostname,
251 (host->tags) ? " " : "",
252 (host->tags) ? host->tags : "",
253 (instance->labels) ? buffer_tostring(instance->labels) : "");
@@ -326,7 +324,6 @@ int format_host_labels_opentsdb_http(struct instance *instance, RRDHOST *host)
324 */
325 int format_dimension_collected_opentsdb_http(struct instance *instance, RRDDIM *rd)
326 {
329 - struct engine *engine = instance->engine;
327 RRDSET *st = rd->rrdset;
328 RRDHOST *host = st->rrdhost;
329
@@ -360,7 +357,7 @@ int format_dimension_collected_opentsdb_http(struct instance *instance, RRDDIM *
357 dimension_name,
358 (unsigned long long)rd->last_collected_time.tv_sec,
359 rd->last_collected_value,
363 - (host == localhost) ? engine->config.hostname : host->hostname,
360 + (host == localhost) ? instance->config.hostname : host->hostname,
361 (host->tags) ? " " : "",
362 (host->tags) ? host->tags : "",
363 instance->labels ? buffer_tostring(instance->labels) : "");
@@ -377,7 +374,6 @@ int format_dimension_collected_opentsdb_http(struct instance *instance, RRDDIM *
374 */
375 int format_dimension_stored_opentsdb_http(struct instance *instance, RRDDIM *rd)
376 {
380 - struct engine *engine = instance->engine;
377 RRDSET *st = rd->rrdset;
378 RRDHOST *host = st->rrdhost;
379
@@ -417,7 +413,7 @@ int format_dimension_stored_opentsdb_http(struct instance *instance, RRDDIM *rd)
413 dimension_name,
414 (unsigned long long)last_t,
415 value,
420 - (host == localhost) ? engine->config.hostname : host->hostname,
416 + (host == localhost) ? instance->config.hostname : host->hostname,
417 (host->tags) ? " " : "",
418 (host->tags) ? host->tags : "",
419 instance->labels ? buffer_tostring(instance->labels) : "");
exporting/prometheus/remote_write/remote_write.c
+5 -5
@@ -147,7 +147,7 @@ int format_host_prometheus_remote_write(struct instance *instance, RRDHOST *host
147 char hostname[PROMETHEUS_ELEMENT_MAX + 1];
148 prometheus_label_copy(
149 hostname,
150 - (host == localhost) ? instance->engine->config.hostname : host->hostname,
150 + (host == localhost) ? instance->config.hostname : host->hostname,
151 PROMETHEUS_ELEMENT_MAX);
152
153 add_host_info(
@@ -236,7 +236,7 @@ int format_dimension_prometheus_remote_write(struct instance *instance, RRDDIM *
236 "EXPORTING: not sending dimension '%s' of chart '%s' from host '%s', "
237 "its last data collection (%lu) is not within our timeframe (%lu to %lu)",
238 rd->id, rd->rrdset->id,
239 - (host == localhost) ? instance->engine->config.hostname : host->hostname,
239 + (host == localhost) ? instance->config.hostname : host->hostname,
240 (unsigned long)rd->last_collected_time.tv_sec,
241 (unsigned long)instance->after,
242 (unsigned long)instance->before);
@@ -256,7 +256,7 @@ int format_dimension_prometheus_remote_write(struct instance *instance, RRDDIM *
256 add_metric(
257 connector_specific_data->write_request,
258 name, chart, family, dimension,
259 - (host == localhost) ? instance->engine->config.hostname : host->hostname,
259 + (host == localhost) ? instance->config.hostname : host->hostname,
260 rd->last_collected_value, timeval_msec(&rd->last_collected_time));
261 } else {
262 // the dimensions of the chart, do not have the same algorithm, multiplier or divisor
@@ -273,7 +273,7 @@ int format_dimension_prometheus_remote_write(struct instance *instance, RRDDIM *
273 add_metric(
274 connector_specific_data->write_request,
275 name, chart, family, NULL,
276 - (host == localhost) ? instance->engine->config.hostname : host->hostname,
276 + (host == localhost) ? instance->config.hostname : host->hostname,
277 rd->last_collected_value, timeval_msec(&rd->last_collected_time));
278 }
279 } else {
@@ -298,7 +298,7 @@ int format_dimension_prometheus_remote_write(struct instance *instance, RRDDIM *
298 add_metric(
299 connector_specific_data->write_request,
300 name, chart, family, dimension,
301 - (host == localhost) ? instance->engine->config.hostname : host->hostname,
301 + (host == localhost) ? instance->config.hostname : host->hostname,
302 value, last_t * MSEC_PER_SEC);
303 }
304 }
exporting/read_config.c
+2
@@ -445,6 +445,8 @@ struct engine *read_exporting_config()
445
446 tmp_instance->config.prefix = strdupz(exporter_get(instance_name, "prefix", "netdata"));
447
448 + tmp_instance->config.hostname = strdupz(exporter_get(instance_name, "hostname", engine->config.hostname));
449 +
450 #ifdef ENABLE_HTTPS
451
452 #define STR_GRAPHITE_HTTPS "graphite:https"
exporting/tests/exporting_doubles.c
+2 -1
@@ -12,7 +12,7 @@ struct engine *__wrap_read_exporting_config()
12 struct engine *__mock_read_exporting_config()
13 {
14 struct engine *engine = calloc(1, sizeof(struct engine));
15 - engine->config.hostname = strdupz("test-host");
15 + engine->config.hostname = strdupz("test_engine_host");
16 engine->config.update_every = 3;
17
18
@@ -23,6 +23,7 @@ struct engine *__mock_read_exporting_config()
23 instance->config.name = strdupz("instance_name");
24 instance->config.destination = strdupz("localhost");
25 instance->config.prefix = strdupz("netdata");
26 + instance->config.hostname = strdupz("test-host");
27 instance->config.update_every = 1;
28 instance->config.buffer_on_failures = 10;
29 instance->config.timeoutms = 10000;
exporting/tests/exporting_fixtures.c
+1
@@ -20,6 +20,7 @@ int teardown_configured_engine(void **state)
20 free((void *)instance->config.destination);
21 free((void *)instance->config.name);
22 free((void *)instance->config.prefix);
23 + free((void *)instance->config.hostname);
24 simple_pattern_free(instance->config.charts_pattern);
25 simple_pattern_free(instance->config.hosts_pattern);
26 free(instance);
exporting/tests/test_exporting_engine.c
+2 -2
@@ -10,7 +10,7 @@ netdata_rwlock_t rrd_rwlock;
10 struct config netdata_config;
11 char *netdata_configured_user_config_dir = ".";
12 char *netdata_configured_stock_config_dir = ".";
13 -char *netdata_configured_hostname = "test_host";
13 +char *netdata_configured_hostname = "test_global_host";
14
15 char log_line[MAX_LOG_LINE + 1];
16
@@ -80,7 +80,7 @@ static void test_read_exporting_config(void **state)
80 *state = engine;
81
82 assert_ptr_not_equal(engine, NULL);
83 - assert_string_equal(engine->config.hostname, "test-host");
83 + assert_string_equal(engine->config.hostname, "test_engine_host");
84 assert_int_equal(engine->config.update_every, 3);
85 assert_int_equal(engine->instance_num, 0);
86