diff --git a/include/MySQL_Monitor.hpp b/include/MySQL_Monitor.hpp index b4dcb7b00..499052fa8 100644 --- a/include/MySQL_Monitor.hpp +++ b/include/MySQL_Monitor.hpp @@ -78,8 +78,8 @@ class MySQL_Monitor { void insert_into_tables_defs(std::vector *tables_defs, const char *table_name, const char *table_def); void drop_tables_defs(std::vector *tables_defs); void check_and_build_standard_tables(SQLite3DB *db, std::vector *tables_defs); - unsigned int num_threads; public: + unsigned int num_threads; wqueue queue; MySQL_Monitor_Connection_Pool *My_Conn_Pool; bool shutdown; diff --git a/lib/MySQL_Thread.cpp b/lib/MySQL_Thread.cpp index 818b4de93..bb41d0246 100644 --- a/lib/MySQL_Thread.cpp +++ b/lib/MySQL_Thread.cpp @@ -9,6 +9,7 @@ extern Query_Processor *GloQPro; extern MySQL_Authentication *GloMyAuth; extern MySQL_Threads_Handler *GloMTH; +extern MySQL_Monitor *GloMyMon; extern MySQL_Logger *GloMyLogger; const CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr) { @@ -2277,12 +2278,26 @@ SQLite3_result * MySQL_Threads_Handler::SQL3_GlobalStatus() { pta[1]=buf; result->add_row(pta); } - { // Slow queries + { // Servers_table_version pta[0]=(char *)"Servers_table_version"; sprintf(buf,"%u",MyHGM->get_servers_table_version()); pta[1]=buf; result->add_row(pta); } + { // MySQL Threads workers + pta[0]=(char *)"MySQL_Thread_Workers"; + sprintf(buf,"%d",num_threads); + pta[1]=buf; + result->add_row(pta); + } + if (GloMyMon) { + { // MySQL Monitor workers + pta[0]=(char *)"MySQL_Monitor_Workers"; + sprintf(buf,"%d",( variables.monitor_enabled ? GloMyMon->num_threads : 0)); + pta[1]=buf; + result->add_row(pta); + } + } free(pta); return result; } diff --git a/lib/ProxySQL_Admin.cpp b/lib/ProxySQL_Admin.cpp index 2b6acc415..4dd44ccda 100644 --- a/lib/ProxySQL_Admin.cpp +++ b/lib/ProxySQL_Admin.cpp @@ -3117,6 +3117,17 @@ void ProxySQL_Admin::stats___mysql_global() { statsdb->execute(query); free(query); } + int highwater; + int current; + sqlite3_status(SQLITE_STATUS_MEMORY_USED, ¤t, &highwater, 0); + char *vn=(char *)"SQLite3_memory"; + char *query=(char *)malloc(strlen(a)+strlen(vn)+32); + char bu[16]; + sprintf(bu,"%d",current); + sprintf(query,a,vn,bu); + statsdb->execute(query); + free(query); + statsdb->execute("COMMIT"); delete resultset; } diff --git a/src/Makefile b/src/Makefile index 5367cdd7a..eaa1171ea 100644 --- a/src/Makefile +++ b/src/Makefile @@ -35,6 +35,7 @@ LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(MARIA MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) LDFLAGS+= MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) +#MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -lconfig++ -lre2 -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux)