Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added stats table for PgSQL query digest #4672

Merged
merged 1 commit into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions include/ProxySQL_Admin_Tables_Definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -288,13 +288,6 @@
#define ADMIN_SQLITE_TABLE_RUNTIME_PGSQL_HOSTGROUP_ATTRIBUTES "CREATE TABLE runtime_pgsql_hostgroup_attributes (hostgroup_id INT NOT NULL PRIMARY KEY , max_num_online_servers INT CHECK (max_num_online_servers>=0 AND max_num_online_servers <= 1000000) NOT NULL DEFAULT 1000000 , autocommit INT CHECK (autocommit IN (-1, 0, 1)) NOT NULL DEFAULT -1 , free_connections_pct INT CHECK (free_connections_pct >= 0 AND free_connections_pct <= 100) NOT NULL DEFAULT 10 , init_connect VARCHAR NOT NULL DEFAULT '' , multiplex INT CHECK (multiplex IN (0, 1)) NOT NULL DEFAULT 1 , connection_warming INT CHECK (connection_warming IN (0, 1)) NOT NULL DEFAULT 0 , throttle_connections_per_sec INT CHECK (throttle_connections_per_sec >= 1 AND throttle_connections_per_sec <= 1000000) NOT NULL DEFAULT 1000000 , ignore_session_variables VARCHAR CHECK (JSON_VALID(ignore_session_variables) OR ignore_session_variables = '') NOT NULL DEFAULT '' , hostgroup_settings VARCHAR CHECK (JSON_VALID(hostgroup_settings) OR hostgroup_settings = '') NOT NULL DEFAULT '' , servers_defaults VARCHAR CHECK (JSON_VALID(servers_defaults) OR servers_defaults = '') NOT NULL DEFAULT '' , comment VARCHAR NOT NULL DEFAULT '')"
#define ADMIN_SQLITE_TABLE_RUNTIME_PGSQL_REPLICATION_HOSTGROUPS "CREATE TABLE runtime_pgsql_replication_hostgroups (writer_hostgroup INT CHECK (writer_hostgroup>=0) NOT NULL PRIMARY KEY , reader_hostgroup INT NOT NULL CHECK (reader_hostgroup<>writer_hostgroup AND reader_hostgroup>=0) , check_type VARCHAR CHECK (LOWER(check_type) IN ('read_only','innodb_read_only','super_read_only','read_only|innodb_read_only','read_only&innodb_read_only')) NOT NULL DEFAULT 'read_only' , comment VARCHAR NOT NULL DEFAULT '', UNIQUE (reader_hostgroup))"

/*
#define STATS_SQLITE_TABLE_PGSQL_QUERY_RULES "CREATE TABLE stats_pgsql_query_rules (rule_id INTEGER PRIMARY KEY , hits INT NOT NULL)"
#define STATS_SQLITE_TABLE_PGSQL_COMMANDS_COUNTERS "CREATE TABLE stats_pgsql_commands_counters (Command VARCHAR NOT NULL PRIMARY KEY , Total_Time_us INT NOT NULL , Total_cnt INT NOT NULL , cnt_100us INT NOT NULL , cnt_500us INT NOT NULL , cnt_1ms INT NOT NULL , cnt_5ms INT NOT NULL , cnt_10ms INT NOT NULL , cnt_50ms INT NOT NULL , cnt_100ms INT NOT NULL , cnt_500ms INT NOT NULL , cnt_1s INT NOT NULL , cnt_5s INT NOT NULL , cnt_10s INT NOT NULL , cnt_INFs)"
#define STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST "CREATE TABLE stats_pgsql_query_digest (hostgroup INT , schemaname VARCHAR NOT NULL , username VARCHAR NOT NULL , client_address VARCHAR NOT NULL , digest VARCHAR NOT NULL , digest_text VARCHAR NOT NULL , count_star INTEGER NOT NULL , first_seen INTEGER NOT NULL , last_seen INTEGER NOT NULL , sum_time INTEGER NOT NULL , min_time INTEGER NOT NULL , max_time INTEGER NOT NULL , sum_rows_affected INTEGER NOT NULL , sum_rows_sent INTEGER NOT NULL , PRIMARY KEY(hostgroup, schemaname, username, client_address, digest))"
#define STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST_RESET "CREATE TABLE stats_pgsql_query_digest_reset (hostgroup INT , schemaname VARCHAR NOT NULL , username VARCHAR NOT NULL , client_address VARCHAR NOT NULL , digest VARCHAR NOT NULL , digest_text VARCHAR NOT NULL , count_star INTEGER NOT NULL , first_seen INTEGER NOT NULL , last_seen INTEGER NOT NULL , sum_time INTEGER NOT NULL , min_time INTEGER NOT NULL , max_time INTEGER NOT NULL , sum_rows_affected INTEGER NOT NULL , sum_rows_sent INTEGER NOT NULL , PRIMARY KEY(hostgroup, schemaname, username, client_address, digest))"
*/

#define STATS_SQLITE_TABLE_PGSQL_GLOBAL "CREATE TABLE stats_pgsql_global (Variable_Name VARCHAR NOT NULL PRIMARY KEY , Variable_Value VARCHAR NOT NULL)"
#define STATS_SQLITE_TABLE_PGSQL_CONNECTION_POOL "CREATE TABLE stats_pgsql_connection_pool (hostgroup INT , srv_host VARCHAR , srv_port INT , status VARCHAR , ConnUsed INT , ConnFree INT , ConnOK INT , ConnERR INT , MaxConnUsed INT , Queries INT , Bytes_data_sent INT , Bytes_data_recv INT , Latency_us INT)"
#define STATS_SQLITE_TABLE_PGSQL_CONNECTION_POOL_RESET "CREATE TABLE stats_pgsql_connection_pool_reset (hostgroup INT , srv_host VARCHAR , srv_port INT , status VARCHAR , ConnUsed INT , ConnFree INT , ConnOK INT , ConnERR INT , MaxConnUsed INT , Queries INT , Bytes_data_sent INT , Bytes_data_recv INT , Latency_us INT)"
Expand All @@ -305,6 +298,11 @@
#define STATS_SQLITE_TABLE_PGSQL_ERRORS_RESET "CREATE TABLE stats_pgsql_errors_reset (hostgroup INT NOT NULL , hostname VARCHAR NOT NULL , port INT NOT NULL , username VARCHAR NOT NULL , client_address VARCHAR NOT NULL , database VARCHAR NOT NULL , sqlstate VARCHAR NOT NULL , count_star INTEGER NOT NULL , first_seen INTEGER NOT NULL , last_seen INTEGER NOT NULL , last_error VARCHAR NOT NULL DEFAULT '' , PRIMARY KEY (hostgroup, hostname, port, username, database, sqlstate) )"
#define STATS_SQLITE_TABLE_PGSQL_CLIENT_HOST_CACHE "CREATE TABLE stats_pgsql_client_host_cache (client_address VARCHAR NOT NULL , error_count INT NOT NULL , last_updated BIGINT NOT NULL)"
#define STATS_SQLITE_TABLE_PGSQL_CLIENT_HOST_CACHE_RESET "CREATE TABLE stats_pgsql_client_host_cache_reset (client_address VARCHAR NOT NULL , error_count INT NOT NULL , last_updated BIGINT NOT NULL)"
#define STATS_SQLITE_TABLE_PGSQL_QUERY_RULES "CREATE TABLE stats_pgsql_query_rules (rule_id INTEGER PRIMARY KEY , hits INT NOT NULL)"
#define STATS_SQLITE_TABLE_PGSQL_COMMANDS_COUNTERS "CREATE TABLE stats_pgsql_commands_counters (Command VARCHAR NOT NULL PRIMARY KEY , Total_Time_us INT NOT NULL , Total_cnt INT NOT NULL , cnt_100us INT NOT NULL , cnt_500us INT NOT NULL , cnt_1ms INT NOT NULL , cnt_5ms INT NOT NULL , cnt_10ms INT NOT NULL , cnt_50ms INT NOT NULL , cnt_100ms INT NOT NULL , cnt_500ms INT NOT NULL , cnt_1s INT NOT NULL , cnt_5s INT NOT NULL , cnt_10s INT NOT NULL , cnt_INFs)"
#define STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST "CREATE TABLE stats_pgsql_query_digest (hostgroup INT , database VARCHAR NOT NULL , username VARCHAR NOT NULL , client_address VARCHAR NOT NULL , digest VARCHAR NOT NULL , digest_text VARCHAR NOT NULL , count_star INTEGER NOT NULL , first_seen INTEGER NOT NULL , last_seen INTEGER NOT NULL , sum_time INTEGER NOT NULL , min_time INTEGER NOT NULL , max_time INTEGER NOT NULL , sum_rows_affected INTEGER NOT NULL , sum_rows_sent INTEGER NOT NULL , PRIMARY KEY(hostgroup, database, username, client_address, digest))"
#define STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST_RESET "CREATE TABLE stats_pgsql_query_digest_reset (hostgroup INT , database VARCHAR NOT NULL , username VARCHAR NOT NULL , client_address VARCHAR NOT NULL , digest VARCHAR NOT NULL , digest_text VARCHAR NOT NULL , count_star INTEGER NOT NULL , first_seen INTEGER NOT NULL , last_seen INTEGER NOT NULL , sum_time INTEGER NOT NULL , min_time INTEGER NOT NULL , max_time INTEGER NOT NULL , sum_rows_affected INTEGER NOT NULL , sum_rows_sent INTEGER NOT NULL , PRIMARY KEY(hostgroup, database, username, client_address, digest))"


//#define STATS_SQLITE_TABLE_MEMORY_METRICS "CREATE TABLE stats_memory_metrics (Variable_Name VARCHAR NOT NULL PRIMARY KEY , Variable_Value VARCHAR NOT NULL)"

Expand Down
3 changes: 3 additions & 0 deletions include/proxysql_admin.h
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@ class ProxySQL_Admin {
);
int stats___mysql_query_digests(bool reset, bool copy=false);
int stats___mysql_query_digests_v2(bool reset, bool copy, bool use_resultset);
int stats___pgsql_query_digests_v2(bool reset, bool copy, bool use_resultset);
//void stats___mysql_query_digests_reset();
void stats___mysql_commands_counters();
void stats___mysql_processlist();
Expand All @@ -657,6 +658,8 @@ class ProxySQL_Admin {
void stats___pgsql_processlist();
void stats___pgsql_errors(bool reset);
void stats___pgsql_client_host_cache(bool reset);
void stats___pgsql_query_rules();
void stats___pgsql_commands_counters();
int stats___save_pgsql_query_digest_to_sqlite(
const bool reset, const bool copy, const SQLite3_result* resultset,
const umap_query_digest* digest_umap, const umap_query_digest_text* digest_text_umap
Expand Down
5 changes: 5 additions & 0 deletions lib/Admin_Bootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ extern struct MHD_Daemon *Admin_HTTP_Server;

extern ProxySQL_Statistics *GloProxyStats;

template<enum SERVER_TYPE>
int ProxySQL_Test___PurgeDigestTable(bool async_purge, bool parallel, char **msg);

extern char *ssl_key_fp;
Expand Down Expand Up @@ -684,6 +685,10 @@ bool ProxySQL_Admin::init(const bootstrap_info_t& bootstrap_info) {
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_errors_reset", STATS_SQLITE_TABLE_PGSQL_ERRORS_RESET);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_client_host_cache", STATS_SQLITE_TABLE_PGSQL_CLIENT_HOST_CACHE);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_client_host_cache_reset", STATS_SQLITE_TABLE_PGSQL_CLIENT_HOST_CACHE_RESET);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_query_rules", STATS_SQLITE_TABLE_PGSQL_QUERY_RULES);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_commands_counters", STATS_SQLITE_TABLE_PGSQL_COMMANDS_COUNTERS);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_query_digest", STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST);
insert_into_tables_defs(tables_defs_stats,"stats_pgsql_query_digest_reset", STATS_SQLITE_TABLE_PGSQL_QUERY_DIGEST_RESET);

// ProxySQL Cluster
insert_into_tables_defs(tables_defs_admin,"proxysql_servers", ADMIN_SQLITE_TABLE_PROXYSQL_SERVERS);
Expand Down
1 change: 1 addition & 0 deletions lib/Admin_FlushVariables.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ extern struct MHD_Daemon *Admin_HTTP_Server;

extern ProxySQL_Statistics *GloProxyStats;

template<enum SERVER_TYPE>
int ProxySQL_Test___PurgeDigestTable(bool async_purge, bool parallel, char **msg);

extern char *ssl_key_fp;
Expand Down
54 changes: 52 additions & 2 deletions lib/Admin_Handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ extern struct MHD_Daemon *Admin_HTTP_Server;

extern ProxySQL_Statistics *GloProxyStats;

template<enum SERVER_TYPE>
int ProxySQL_Test___PurgeDigestTable(bool async_purge, bool parallel, char **msg);

extern char *ssl_key_fp;
Expand Down Expand Up @@ -1198,7 +1199,7 @@ bool admin_handler_command_load_or_save(char *query_no_space, unsigned int query
unsigned long long curtime2 = monotonic_time();
curtime1 = curtime1 / 1000;
curtime2 = curtime2 / 1000;
proxy_info("Saved stats_mysql_query_digest to disk: %llums to write %u entries\n", curtime2 - curtime1, r1);
proxy_info("Saved stats_pgsql_query_digest to disk: %llums to write %u entries\n", curtime2 - curtime1, r1);
SPA->send_ok_msg_to_client(sess, NULL, r1, query_no_space);
return false;
}
Expand Down Expand Up @@ -2386,6 +2387,19 @@ void admin_session_handler(S* sess, void *_pa, PtrSize_t *pkt) {
goto __run_query;
}

// if the client simply executes:
// SELECT COUNT(*) FROM runtime_pgsql_query_rules_fast_routing
// we just return the count
if (strcmp("SELECT COUNT(*) FROM runtime_pgsql_query_rules_fast_routing", query_no_space) == 0) {
int cnt = GloPgQPro->get_current_query_rules_fast_routing_count();
l_free(query_length, query);
char buf[256];
sprintf(buf, "SELECT %d AS 'COUNT(*)'", cnt);
query = l_strdup(buf);
query_length = strlen(query) + 1;
goto __run_query;
}

if (!strncasecmp("TRUNCATE ", query_no_space, strlen("TRUNCATE "))) {
if (sess->session_type == PROXYSQL_SESSION_ADMIN) { // no stats
if (strstr(query_no_space,"stats_mysql_query_digest")) {
Expand Down Expand Up @@ -2416,13 +2430,49 @@ void admin_session_handler(S* sess, void *_pa, PtrSize_t *pkt) {
SPA->vacuum_stats(true);
// purge the digest map, asynchronously, in single thread
char *msg = NULL;
int r1 = ProxySQL_Test___PurgeDigestTable(true, false, &msg);
int r1 = ProxySQL_Test___PurgeDigestTable<SERVER_TYPE_MYSQL>(true, false, &msg);
SPA->send_ok_msg_to_client(sess, msg, r1, query_no_space);
free(msg);
run_query=false;
goto __run_query;
}
}

if (strstr(query_no_space, "stats_pgsql_query_digest")) {
bool truncate_digest_table = false;
static char* truncate_digest_table_queries[] = {
(char*)"TRUNCATE TABLE stats.stats_pgsql_query_digest",
(char*)"TRUNCATE TABLE stats.stats_pgsql_query_digest_reset",
(char*)"TRUNCATE TABLE stats_pgsql_query_digest",
(char*)"TRUNCATE TABLE stats_pgsql_query_digest_reset",
(char*)"TRUNCATE stats.stats_pgsql_query_digest",
(char*)"TRUNCATE stats.stats_pgsql_query_digest_reset",
(char*)"TRUNCATE stats_pgsql_query_digest",
(char*)"TRUNCATE stats_pgsql_query_digest_reset"
};
size_t l = sizeof(truncate_digest_table_queries) / sizeof(char*);
unsigned int i;
for (i = 0; i < l; i++) {
if (truncate_digest_table == false) {
if (strcasecmp(truncate_digest_table_queries[i], query_no_space) == 0) {
truncate_digest_table = true;
}
}
}
if (truncate_digest_table == true) {
ProxySQL_Admin* SPA = (ProxySQL_Admin*)pa;
SPA->admindb->execute("DELETE FROM stats.stats_pgsql_query_digest");
SPA->admindb->execute("DELETE FROM stats.stats_pgsql_query_digest_reset");
SPA->vacuum_stats(true);
// purge the digest map, asynchronously, in single thread
char* msg = NULL;
int r1 = ProxySQL_Test___PurgeDigestTable<SERVER_TYPE_PGSQL>(true, false, &msg);
SPA->send_ok_msg_to_client(sess, msg, r1, query_no_space);
free(msg);
run_query = false;
goto __run_query;
}
}
}
}
#ifdef DEBUG
Expand Down
52 changes: 51 additions & 1 deletion lib/ProxySQL_Admin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ struct MHD_Daemon *Admin_HTTP_Server;

extern ProxySQL_Statistics *GloProxyStats;

template<enum SERVER_TYPE>
int ProxySQL_Test___PurgeDigestTable(bool async_purge, bool parallel, char **msg);

extern char *ssl_key_fp;
Expand Down Expand Up @@ -1147,15 +1148,19 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
bool stats_mysql_connection_pool=false;
bool stats_mysql_connection_pool_reset=false;
bool stats_mysql_query_digest=false;
bool stats_pgsql_query_digest = false;
bool stats_mysql_query_digest_reset=false;
bool stats_pgsql_query_digest_reset = false;
bool stats_mysql_errors=false;
bool stats_mysql_errors_reset=false;
bool stats_pgsql_errors = false;
bool stats_pgsql_errors_reset = false;
bool stats_mysql_global=false;
bool stats_memory_metrics=false;
bool stats_mysql_commands_counters=false;
bool stats_pgsql_commands_counters = false;
bool stats_mysql_query_rules=false;
bool stats_pgsql_query_rules = false;
bool stats_mysql_users=false;
bool stats_pgsql_users = false;
bool stats_mysql_gtid_executed=false;
Expand Down Expand Up @@ -1228,8 +1233,12 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
}
if (strstr(query_no_space,"stats_mysql_query_digest"))
{ stats_mysql_query_digest=true; refresh=true; }
if (strstr(query_no_space, "stats_pgsql_query_digest"))
{ stats_pgsql_query_digest = true; refresh = true; }
if (strstr(query_no_space,"stats_mysql_query_digest_reset"))
{ stats_mysql_query_digest_reset=true; refresh=true; }
if (strstr(query_no_space, "stats_pgsql_query_digest_reset"))
{ stats_pgsql_query_digest_reset = true; refresh = true; }
if (stats_mysql_query_digest_reset == true && stats_mysql_query_digest == true) {
int nd = 0;
int ndr= 0;
Expand All @@ -1251,6 +1260,27 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
stats_mysql_query_digest = false;
}
}
if (stats_pgsql_query_digest_reset == true && stats_pgsql_query_digest == true) {
int nd = 0;
int ndr = 0;
char* c = NULL;
char* _ret = NULL;
c=(char*)query_no_space;
_ret=NULL;
while ((_ret=strstr(c,"stats_pgsql_query_digest_reset"))) {
ndr++;
c = _ret+strlen("stats_pgsql_query_digest_reset");
}
c=(char*)query_no_space;
_ret = NULL;
while ((_ret=strstr(c,"stats_pgsql_query_digest"))) {
nd++;
c = _ret+strlen("stats_pgsql_query_digest");
}
if (nd==ndr) {
stats_pgsql_query_digest = false;
}
}
if (strstr(query_no_space,"stats_mysql_errors"))
{ stats_mysql_errors=true; refresh=true; }
if (strstr(query_no_space,"stats_mysql_errors_reset"))
Expand Down Expand Up @@ -1284,8 +1314,12 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
{ stats_pgsql_free_connections=true; refresh=true; }
if (strstr(query_no_space,"stats_mysql_commands_counters"))
{ stats_mysql_commands_counters=true; refresh=true; }
if (strstr(query_no_space, "stats_pgsql_commands_counters"))
{ stats_pgsql_commands_counters = true; refresh = true; }
if (strstr(query_no_space,"stats_mysql_query_rules"))
{ stats_mysql_query_rules=true; refresh=true; }
if (strstr(query_no_space,"stats_pgsql_query_rules"))
{ stats_pgsql_query_rules = true; refresh = true; }
if (strstr(query_no_space,"stats_mysql_users"))
{ stats_mysql_users=true; refresh=true; }
if (strstr(query_no_space,"stats_pgsql_users"))
Expand Down Expand Up @@ -1441,6 +1475,13 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
stats___mysql_query_digests_v2(false, false, false);
}
}
if (stats_pgsql_query_digest_reset) {
stats___pgsql_query_digests_v2(true, stats_pgsql_query_digest, false);
} else {
if (stats_pgsql_query_digest) {
stats___pgsql_query_digests_v2(false, false, false);
}
}
if (stats_mysql_errors)
stats___mysql_errors(false);
if (stats_mysql_errors_reset) {
Expand Down Expand Up @@ -1476,8 +1517,12 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
stats___memory_metrics();
if (stats_mysql_query_rules)
stats___mysql_query_rules();
if (stats_pgsql_query_rules)
stats___pgsql_query_rules();
if (stats_mysql_commands_counters)
stats___mysql_commands_counters();
if (stats_pgsql_commands_counters)
stats___pgsql_commands_counters();
if (stats_mysql_users)
stats___mysql_users();
if (stats_pgsql_users)
Expand Down Expand Up @@ -1641,7 +1686,8 @@ bool ProxySQL_Admin::GenericRefreshStatistics(const char *query_no_space, unsign
stats_mysql_gtid_executed || stats_mysql_free_connections ||
stats_pgsql_global || stats_pgsql_connection_pool || stats_pgsql_connection_pool_reset ||
stats_pgsql_free_connections || stats_pgsql_users || stats_pgsql_processlist ||
stats_pgsql_errors || stats_pgsql_errors_reset
stats_pgsql_errors || stats_pgsql_errors_reset || stats_pgsql_query_rules || stats_pgsql_commands_counters ||
stats_pgsql_query_digest || stats_pgsql_query_digest_reset
) {
ret = true;
}
Expand Down Expand Up @@ -1835,6 +1881,7 @@ void ProxySQL_Admin::vacuum_stats(bool is_admin) {
}
const vector<string> tablenames = {
"stats_mysql_commands_counters",
"stats_pgsql_commands_counters",
"stats_mysql_free_connections",
"stats_pgsql_free_connections",
"stats_mysql_connection_pool",
Expand All @@ -1846,7 +1893,10 @@ void ProxySQL_Admin::vacuum_stats(bool is_admin) {
"stats_pgsql_processlist",
"stats_mysql_query_digest",
"stats_mysql_query_digest_reset",
"stats_pgsql_query_digest",
"stats_pgsql_query_digest_reset",
"stats_mysql_query_rules",
"stats_pgsql_query_rules",
"stats_mysql_users",
"stats_pgsql_users",
"stats_proxysql_servers_checksums",
Expand Down
Loading
Loading