@cryptotaxi247 / netdata-1 / commits / 0d5781ed7

Allow the remote write configuration have multiple destinations (#11005)

Vladimir Kobal committed Apr 21, 2021 at 19:02 UTC 0d5781ed7c19bc49a241defeeb8273c368be0396
4 files changed +15 -4
exporting/exporting_engine.h
+4
@@ -98,9 +98,13 @@ struct simple_connector_buffer {
98 struct simple_connector_buffer *next;
99 };
100
101 +#define CONNECTED_TO_MAX 1024
102 +
103 struct simple_connector_data {
104 void *connector_specific_data;
105
106 + char connected_to[CONNECTED_TO_MAX];
107 +
108 size_t total_buffered_metrics;
109
110 BUFFER *header;
exporting/prometheus/remote_write/remote_write.c
+1 -1
@@ -31,7 +31,7 @@ void prometheus_remote_write_prepare_header(struct instance *instance)
31 "Content-Length: %zu\r\n"
32 "\r\n",
33 connector_specific_config->remote_write_path,
34 - instance->config.destination,
34 + simple_connector_data->connected_to,
35 buffer_strlen(simple_connector_data->last_buffer->buffer));
36 }
37
exporting/send_data.c
+6 -1
@@ -314,7 +314,12 @@ void simple_connector_worker(void *instance_p)
314 size_t reconnects = 0;
315
316 sock = connect_to_one_of(
317 - instance->config.destination, connector_specific_config->default_port, &timeout, &reconnects, NULL, 0);
317 + instance->config.destination,
318 + connector_specific_config->default_port,
319 + &timeout,
320 + &reconnects,
321 + connector_specific_data->connected_to,
322 + CONNECTED_TO_MAX);
323 #ifdef ENABLE_HTTPS
324 if (exporting_tls_is_enabled(instance->config.type, options) && sock != -1) {
325 if (netdata_exporting_ctx) {
exporting/tests/test_exporting_engine.c
+4 -2
@@ -618,6 +618,7 @@ static void test_simple_connector_worker(void **state)
618 simple_connector_data->buffer = buffer_create(0);
619 simple_connector_data->last_buffer->header = buffer_create(0);
620 simple_connector_data->last_buffer->buffer = buffer_create(0);
621 + strcpy(simple_connector_data->connected_to, "localhost");
622
623 buffer_sprintf(simple_connector_data->last_buffer->header, "test header");
624 buffer_sprintf(simple_connector_data->last_buffer->buffer, "test buffer");
@@ -626,8 +627,8 @@ static void test_simple_connector_worker(void **state)
627 expect_string(__wrap_connect_to_one_of, destination, "localhost");
628 expect_value(__wrap_connect_to_one_of, default_port, 2003);
629 expect_not_value(__wrap_connect_to_one_of, reconnects_counter, 0);
629 - expect_value(__wrap_connect_to_one_of, connected_to, 0);
630 - expect_value(__wrap_connect_to_one_of, connected_to_size, 0);
630 + expect_string(__wrap_connect_to_one_of, connected_to, "localhost");
631 + expect_value(__wrap_connect_to_one_of, connected_to_size, CONNECTED_TO_MAX);
632 will_return(__wrap_connect_to_one_of, 2);
633
634 expect_function_call(__wrap_send);
@@ -1170,6 +1171,7 @@ static void test_prometheus_remote_write_prepare_header(void **state)
1171 simple_connector_data->last_buffer = callocz(1, sizeof(struct simple_connector_buffer));
1172 simple_connector_data->last_buffer->header = buffer_create(0);
1173 simple_connector_data->last_buffer->buffer = buffer_create(0);
1174 + strcpy(simple_connector_data->connected_to, "localhost");
1175
1176 buffer_sprintf(simple_connector_data->last_buffer->buffer, "test buffer");
1177