From bc0ca9b1b3cbdd6d1a76d2150080dff79e116e24 Mon Sep 17 00:00:00 2001 From: Vladimir Kobal Date: Thu, 12 Mar 2020 13:28:43 +0200 Subject: Add a Prometheus Remote Write connector to the exporting engine (#8292) * Copy files from the Prometheus remote write backend * Update the documentation * Rename backend -> exporting * Add the connector to the Netdata build * Separate files for the remote write connector * Add an initializer and formatters * Read a connector specific configuration option * Add a separate function for header sending * Use labels instead of tags * Separate write request for every instance * Add unit tests --- Makefile.am | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 80fb031fbc..a9b1c6282e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -492,6 +492,8 @@ EXPORTING_ENGINE_FILES = \ exporting/json/json.h \ exporting/opentsdb/opentsdb.c \ exporting/opentsdb/opentsdb.h \ + exporting/prometheus/prometheus.c \ + exporting/prometheus/prometheus.h \ exporting/read_config.c \ exporting/init_connectors.c \ exporting/process_data.c \ @@ -500,6 +502,14 @@ EXPORTING_ENGINE_FILES = \ exporting/send_internal_metrics.c \ $(NULL) +PROMETHEUS_REMOTE_WRITE_EXPORTING_FILES = \ + exporting/prometheus/remote_write/remote_write.c \ + exporting/prometheus/remote_write/remote_write.h \ + exporting/prometheus/remote_write/remote_write_request.cc \ + exporting/prometheus/remote_write/remote_write_request.h \ + exporting/prometheus/remote_write/remote_write.proto \ + $(NULL) + KINESIS_EXPORTING_FILES = \ exporting/aws_kinesis/aws_kinesis.c \ exporting/aws_kinesis/aws_kinesis.h \ @@ -517,7 +527,6 @@ KINESIS_BACKEND_FILES = \ PROMETHEUS_REMOTE_WRITE_BACKEND_FILES = \ backends/prometheus/remote_write/remote_write.cc \ backends/prometheus/remote_write/remote_write.h \ - backends/prometheus/remote_write/remote_write.proto \ $(NULL) MONGODB_BACKEND_FILES = \ @@ -737,16 +746,19 @@ if ENABLE_BACKEND_KINESIS endif if ENABLE_BACKEND_PROMETHEUS_REMOTE_WRITE +if ENABLE_EXPORTING + netdata_SOURCES += $(PROMETHEUS_REMOTE_WRITE_EXPORTING_FILES) +endif netdata_SOURCES += $(PROMETHEUS_REMOTE_WRITE_BACKEND_FILES) netdata_LDADD += $(OPTIONAL_PROMETHEUS_REMOTE_WRITE_LIBS) BUILT_SOURCES = \ - backends/prometheus/remote_write/remote_write.pb.cc \ - backends/prometheus/remote_write/remote_write.pb.h \ + exporting/prometheus/remote_write/remote_write.pb.cc \ + exporting/prometheus/remote_write/remote_write.pb.h \ $(NULL) nodist_netdata_SOURCES = $(BUILT_SOURCES) -backends/prometheus/remote_write/remote_write.pb.cc \ -backends/prometheus/remote_write/remote_write.pb.h: backends/prometheus/remote_write/remote_write.proto +exporting/prometheus/remote_write/remote_write.pb.cc \ +exporting/prometheus/remote_write/remote_write.pb.h: exporting/prometheus/remote_write/remote_write.proto $(PROTOC) --proto_path=$(srcdir) --cpp_out=$(builddir) $^ endif @@ -867,6 +879,17 @@ if ENABLE_UNITTESTS $(TEST_LDFLAGS) \ $(NULL) exporting_tests_exporting_engine_testdriver_LDADD = $(NETDATA_COMMON_LIBS) $(TEST_LIBS) +if ENABLE_BACKEND_PROMETHEUS_REMOTE_WRITE + exporting_tests_exporting_engine_testdriver_SOURCES += $(PROMETHEUS_REMOTE_WRITE_EXPORTING_FILES) + exporting_tests_exporting_engine_testdriver_LDADD += $(OPTIONAL_PROMETHEUS_REMOTE_WRITE_LIBS) + exporting_tests_exporting_engine_testdriver_LDFLAGS += \ + -Wl,--wrap=init_write_request \ + -Wl,--wrap=add_host_info \ + -Wl,--wrap=add_label \ + -Wl,--wrap=add_metric \ + $(NULL) + nodist_exporting_tests_exporting_engine_testdriver_SOURCES = $(BUILT_SOURCES) +endif if ENABLE_BACKEND_KINESIS exporting_tests_exporting_engine_testdriver_SOURCES += $(KINESIS_EXPORTING_FILES) exporting_tests_exporting_engine_testdriver_LDADD += $(OPTIONAL_KINESIS_LIBS) -- cgit v1.2.3