diff --git a/lib/ProxySQL_Admin.cpp b/lib/ProxySQL_Admin.cpp index b09781280..9d48d564f 100644 --- a/lib/ProxySQL_Admin.cpp +++ b/lib/ProxySQL_Admin.cpp @@ -2709,6 +2709,10 @@ void update_modules_metrics() { if (GloMyLogger) { GloMyLogger->p_update_metrics(); } + // Update PostgreSQL logger metrics + if (GloPgSQL_Logger) { + GloPgSQL_Logger->p_update_metrics(); + } // Update admin metrics GloAdmin->p_update_metrics(); } diff --git a/lib/ProxySQL_Admin_Stats.cpp b/lib/ProxySQL_Admin_Stats.cpp index 3eb66e95a..9f133f473 100644 --- a/lib/ProxySQL_Admin_Stats.cpp +++ b/lib/ProxySQL_Admin_Stats.cpp @@ -18,6 +18,7 @@ #include "MySQL_Query_Processor.h" #include "PgSQL_Query_Processor.h" #include "MySQL_Logger.hpp" +#include "PgSQL_Logger.hpp" #ifdef PROXYSQLGENAI #include "MCP_Thread.h" #include "Query_Tool_Handler.h" @@ -51,6 +52,7 @@ extern PgSQL_Query_Processor* GloPgQPro; extern ProxySQL_Cluster *GloProxyCluster; extern MySQL_Logger *GloMyLogger; +extern PgSQL_Logger *GloPgSQL_Logger; void ProxySQL_Admin::p_update_metrics() { // Update proxysql_uptime @@ -782,6 +784,19 @@ void ProxySQL_Admin::stats___pgsql_global() { statsdb->execute(query); free(query); } + + if (GloPgSQL_Logger != nullptr) { + const string prefix = "PgSQL_Logger_"; + std::unordered_map metrics = GloPgSQL_Logger->getAllMetrics(); + for (std::unordered_map::iterator it = metrics.begin(); it != metrics.end(); it++) { + string var_name = prefix + it->first; + query = (char*)malloc(strlen(a) + var_name.length() + 32 + 16); + snprintf(query, strlen(a) + var_name.length() + 32 + 16, a, var_name.c_str(), std::to_string(it->second).c_str()); + statsdb->execute(query); + free(query); + } + } + statsdb->execute("COMMIT"); }