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