Add SSL and non-SSL connection OK metrics for PostgreSQL monitor connections

Adds two new metrics, ssl_connections_OK and non_ssl_connections_OK, to improve visibility into PostgreSQL monitor connection status.
v3.0_pgsql-monitor-sslsupport-5205
Rahim Kanji 2 months ago
parent 7205f424a2
commit fae283cf7e

@ -39,6 +39,8 @@ struct PgSQL_Monitor {
uint64_t ping_check_OK { 0 };
uint64_t readonly_check_ERR { 0 };
uint64_t readonly_check_OK { 0 };
uint64_t ssl_connections_OK { 0 };
uint64_t non_ssl_connections_OK { 0 };
///////////////////////////////////////////////////////////////////////////
std::vector<table_def_t> tables_defs_monitor {

@ -637,6 +637,13 @@ pair<short,bool> handle_async_connect_cont(state_t& st, short revent) {
case PGRES_POLLING_OK:
pgconn.state = ASYNC_ST::ASYNC_CONNECT_END;
// connection successful, update SSL stats
if (PQsslInUse(pgconn.conn)) {
__sync_fetch_and_add(&GloPgMon->ssl_connections_OK, 1);
} else {
__sync_fetch_and_add(&GloPgMon->non_ssl_connections_OK, 1);
}
if (st.task.type == task_type_t::connect) {
st.task.end = monotonic_time();
} else if (st.task.type == task_type_t::ping) {

@ -4482,6 +4482,18 @@ SQLite3_result* PgSQL_Threads_Handler::SQL3_GlobalStatus(bool _memory) {
pta[1] = buf;
result->add_row(pta);
}
{
pta[0] = (char*)"PgSQL_Monitor_ssl_connections_OK";
sprintf(buf, "%lu", GloPgMon->ssl_connections_OK);
pta[1] = buf;
result->add_row(pta);
}
{
pta[0] = (char*)"PgSQL_Monitor_non_ssl_connections_OK";
sprintf(buf, "%lu", GloPgMon->non_ssl_connections_OK);
pta[1] = buf;
result->add_row(pta);
}
/*
{
pta[0] = (char*)"MySQL_Monitor_replication_lag_check_OK";

Loading…
Cancel
Save