From 55fbef61fa8d2ced4e7e5d3a773e857c2cf3c3a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Wed, 27 Apr 2022 21:36:33 +0200 Subject: [PATCH 1/3] Fix compilation in older GCC versions removing 'auto' usage --- lib/ProxySQL_Cluster.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/ProxySQL_Cluster.cpp b/lib/ProxySQL_Cluster.cpp index f54ba2cdd..a04104892 100644 --- a/lib/ProxySQL_Cluster.cpp +++ b/lib/ProxySQL_Cluster.cpp @@ -1,3 +1,5 @@ +#include + #include "proxysql.h" #include "proxysql_utils.h" #include "cpp.h" @@ -36,6 +38,7 @@ } while (0) using std::vector; +using std::pair; using std::string; static char *NODE_COMPUTE_DELIMITER=(char *)"-gtyw23a-"; // a random string used for hashing @@ -2599,7 +2602,7 @@ void ProxySQL_Cluster_Nodes::update_prometheus_nodes_metrics() { for (const auto& node_entry : umap_proxy_nodes) { const string hostname { node_entry.second->get_hostname() }; const string port { std::to_string(node_entry.second->get_port()) }; - const auto modules_name_checksum { get_module_checksums(node_entry.second) }; + const vector> modules_name_checksum { get_module_checksums(node_entry.second) }; const string m_node_metrics_id { hostname + ":" + port }; const std::map m_common_labels { { "hostname", hostname }, { "port", port } }; @@ -2607,7 +2610,7 @@ void ProxySQL_Cluster_Nodes::update_prometheus_nodes_metrics() { // Update the current nodes metric list cur_node_metrics.push_back(m_node_metrics_id); - for (const auto& module_name_checksum : modules_name_checksum) { + for (const std::pair& module_name_checksum : modules_name_checksum) { const string module_name { module_name_checksum.first }; const ProxySQL_Checksum_Value_2* module_checksum { module_name_checksum.second }; @@ -2626,10 +2629,10 @@ void ProxySQL_Cluster_Nodes::update_prometheus_nodes_metrics() { ); vector&,p_cluster_nodes_dyn_gauge::metric,double>> checksum_gauges { - { this->metrics.p_proxysql_servers_checksums_epoch, dyn_gauge::proxysql_servers_checksums_epoch, module_checksum->epoch }, - { this->metrics.p_proxysql_servers_checksums_updated_at, dyn_gauge::proxysql_servers_checksums_updated_at, module_checksum->last_updated }, - { this->metrics.p_proxysql_servers_checksums_changed_at, dyn_gauge::proxysql_servers_checksums_changed_at, module_checksum->last_changed }, - { this->metrics.p_proxysql_servers_checksums_diff_check, dyn_gauge::proxysql_servers_checksums_diff_check, module_checksum->diff_check } + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_checksums_epoch), dyn_gauge::proxysql_servers_checksums_epoch, module_checksum->epoch), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_checksums_updated_at), dyn_gauge::proxysql_servers_checksums_updated_at, module_checksum->last_updated), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_checksums_changed_at), dyn_gauge::proxysql_servers_checksums_changed_at, module_checksum->last_changed), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_checksums_diff_check), dyn_gauge::proxysql_servers_checksums_diff_check, module_checksum->diff_check) }; for (const auto& checksum_gauge : checksum_gauges) { @@ -2644,9 +2647,9 @@ void ProxySQL_Cluster_Nodes::update_prometheus_nodes_metrics() { const double conns_created = node_metrics->Client_Connections_created; vector&, p_cluster_nodes_dyn_counter::metric, double>> metric_counters { - { this->metrics.p_proxysql_servers_metrics_queries, dyn_counter::proxysql_servers_metrics_queries, node_metrics->Questions }, - { this->metrics.p_proxysql_servers_metrics_client_conns_created, dyn_counter::proxysql_servers_metrics_client_conns_created, conns_created }, - { this->metrics.p_proxysql_servers_metrics_uptime_s, dyn_counter::proxysql_servers_metrics_uptime_s, node_metrics->ProxySQL_Uptime } + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_queries), dyn_counter::proxysql_servers_metrics_queries, node_metrics->Questions), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_client_conns_created), dyn_counter::proxysql_servers_metrics_client_conns_created, conns_created), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_uptime_s), dyn_counter::proxysql_servers_metrics_uptime_s, node_metrics->ProxySQL_Uptime) }; const uint64_t curtime = monotonic_time(); @@ -2656,9 +2659,9 @@ void ProxySQL_Cluster_Nodes::update_prometheus_nodes_metrics() { const double conns_connected = node_metrics->Client_Connections_connected; vector&, dyn_gauge::metric, double>> metric_gauges { - { this->metrics.p_proxysql_servers_metrics_last_check_ms, dyn_gauge::proxysql_servers_metrics_last_check_ms, last_check_ms }, - { this->metrics.p_proxysql_servers_metrics_response_time_ms, dyn_gauge::proxysql_servers_metrics_response_time_ms, response_time_ms }, - { this->metrics.p_proxysql_servers_metrics_client_conns_connected, dyn_gauge::proxysql_servers_metrics_client_conns_connected, conns_connected }, + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_last_check_ms), dyn_gauge::proxysql_servers_metrics_last_check_ms, last_check_ms), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_response_time_ms), dyn_gauge::proxysql_servers_metrics_response_time_ms, response_time_ms), + std::make_tuple(std::ref(this->metrics.p_proxysql_servers_metrics_client_conns_connected), dyn_gauge::proxysql_servers_metrics_client_conns_connected, conns_connected), }; for (const auto& metric_gauge : metric_gauges) { From 88ef51525ce6a5074444e6dc88a10a99116654d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Wed, 27 Apr 2022 21:38:44 +0200 Subject: [PATCH 2/3] Remove unnecessary 'prometheus' headers from 'main.cpp' --- src/main.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ad78729a4..414ab5f41 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,11 +33,6 @@ #include -// Minimal headers for exporting metrics using prometheus -#include -#include -#include - #include #include From a2e29003b709f453b95b7f638965a8850b6c1bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Wed, 27 Apr 2022 21:58:52 +0200 Subject: [PATCH 3/3] Change 'libuuid' linking to dynamic for tap tests Makefile --- test/tap/tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tap/tests/Makefile b/test/tap/tests/Makefile index a7b4d2523..00123ec6d 100644 --- a/test/tap/tests/Makefile +++ b/test/tap/tests/Makefile @@ -73,7 +73,7 @@ OBJ=../../../src/obj/proxysql_global.o ../../../src/obj/main.o ../../../src/obj/ INCLUDEDIRS=-I../tap -I$(RE2_PATH) -I$(IDIR) -I$(JEMALLOC_IDIR) -I$(SQLITE3_DIR) -I$(MICROHTTPD_IDIR) -I$(LIBHTTPSERVER_IDIR) -I$(CURL_IDIR) -I$(DAEMONPATH_IDIR) -I$(MARIADB_IDIR) -I$(SSL_IDIR) -I$(JSON_IDIR) -I$(LIBCONFIG_IDIR) -I$(PROMETHEUS_IDIR) -I$(EV_IDIR) LDIRS=-L$(TAP_LIBDIR) -L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) -L$(PCRE_LDIR) -L$(MICROHTTPD_LDIR) -L$(LIBHTTPSERVER_LDIR) -L$(LIBINJECTION_LDIR) -L$(CURL_LDIR) -L$(EV_LDIR) -L$(SSL_LDIR) -L$(PROMETHEUS_LDIR) -MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -lpcrecpp -lpcre -lmariadbclient -lhttpserver -lmicrohttpd -linjection -lcurl -lssl -lcrypto -lev -luuid -Wl,-Bdynamic -lgnutls -lpthread -lm -lz -lrt $(EXTRALINK) -lprometheus-cpp-pull -lprometheus-cpp-core +MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -lpcrecpp -lpcre -lmariadbclient -lhttpserver -lmicrohttpd -linjection -lcurl -lssl -lcrypto -lev -Wl,-Bdynamic -lgnutls -lpthread -lm -lz -lrt $(EXTRALINK) -lprometheus-cpp-pull -lprometheus-cpp-core -luuid STATIC_LIBS= $(SSL_LDIR)/libssl.a $(SSL_LDIR)/libcrypto.a .PHONY: all