MXS-1703 Move server-specific diagnostic printing to MariaDBServer
This commit is contained in:
parent
91e6874ac0
commit
50bc43e4bf
@ -256,47 +256,10 @@ void MariaDBMonitor::diagnostics(DCB *dcb) const
|
||||
}
|
||||
|
||||
dcb_printf(dcb, "\nServer information:\n-------------------\n\n");
|
||||
for (MXS_MONITORED_SERVER *db = m_monitor_base->monitored_servers; db; db = db->next)
|
||||
for (auto iter = m_servers.begin(); iter != m_servers.end(); iter++)
|
||||
{
|
||||
const MariaDBServer* serv_info = get_server_info(db);
|
||||
dcb_printf(dcb, "Server: %s\n", db->server->unique_name);
|
||||
dcb_printf(dcb, "Server ID: %" PRId64 "\n", serv_info->server_id);
|
||||
dcb_printf(dcb, "Read only: %s\n", serv_info->read_only ? "YES" : "NO");
|
||||
dcb_printf(dcb, "Slave configured: %s\n", serv_info->slave_configured ? "YES" : "NO");
|
||||
if (serv_info->slave_configured)
|
||||
{
|
||||
dcb_printf(dcb, "Slave IO running: %s\n",
|
||||
serv_info->slave_status.slave_io_running ? "YES" : "NO");
|
||||
dcb_printf(dcb, "Slave SQL running: %s\n",
|
||||
serv_info->slave_status.slave_sql_running ? "YES" : "NO");
|
||||
dcb_printf(dcb, "Master ID: %" PRId64 "\n",
|
||||
serv_info->slave_status.master_server_id);
|
||||
dcb_printf(dcb, "Master binlog file: %s\n",
|
||||
serv_info->slave_status.master_log_file.c_str());
|
||||
dcb_printf(dcb, "Master binlog position: %lu\n",
|
||||
serv_info->slave_status.read_master_log_pos);
|
||||
}
|
||||
if (!serv_info->gtid_current_pos.empty())
|
||||
{
|
||||
dcb_printf(dcb, "Gtid current position: %s\n",
|
||||
serv_info->gtid_current_pos.to_string().c_str());
|
||||
}
|
||||
if (!serv_info->gtid_binlog_pos.empty())
|
||||
{
|
||||
dcb_printf(dcb, "Gtid binlog position: %s\n",
|
||||
serv_info->gtid_current_pos.to_string().c_str());
|
||||
}
|
||||
if (!serv_info->slave_status.gtid_io_pos.empty())
|
||||
{
|
||||
dcb_printf(dcb, "Gtid slave IO position: %s\n",
|
||||
serv_info->slave_status.gtid_io_pos.to_string().c_str());
|
||||
}
|
||||
if (m_detect_multimaster)
|
||||
{
|
||||
dcb_printf(dcb, "Master group: %d\n", serv_info->group);
|
||||
}
|
||||
|
||||
dcb_printf(dcb, "\n");
|
||||
string server_info = (*iter)->diagnostics(m_detect_multimaster) + "\n";
|
||||
dcb_printf(dcb, "%s", server_info.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@ -326,43 +289,14 @@ json_t* MariaDBMonitor::diagnostics_json() const
|
||||
string list = monitored_servers_to_string(m_excluded_servers);
|
||||
json_object_set_new(rval, CN_NO_PROMOTE_SERVERS, json_string(list.c_str()));
|
||||
}
|
||||
if (m_monitor_base->monitored_servers)
|
||||
|
||||
if (!m_servers.empty())
|
||||
{
|
||||
json_t* arr = json_array();
|
||||
|
||||
for (MXS_MONITORED_SERVER *db = m_monitor_base->monitored_servers; db; db = db->next)
|
||||
for (auto iter = m_servers.begin(); iter != m_servers.end(); iter++)
|
||||
{
|
||||
json_t* srv = json_object();
|
||||
const MariaDBServer* serv_info = get_server_info(db);
|
||||
json_object_set_new(srv, "name", json_string(db->server->unique_name));
|
||||
json_object_set_new(srv, "server_id", json_integer(serv_info->server_id));
|
||||
json_object_set_new(srv, "master_id", json_integer(serv_info->slave_status.master_server_id));
|
||||
|
||||
json_object_set_new(srv, "read_only", json_boolean(serv_info->read_only));
|
||||
json_object_set_new(srv, "slave_configured", json_boolean(serv_info->slave_configured));
|
||||
json_object_set_new(srv, "slave_io_running",
|
||||
json_boolean(serv_info->slave_status.slave_io_running));
|
||||
json_object_set_new(srv, "slave_sql_running",
|
||||
json_boolean(serv_info->slave_status.slave_sql_running));
|
||||
|
||||
json_object_set_new(srv, "master_binlog_file",
|
||||
json_string(serv_info->slave_status.master_log_file.c_str()));
|
||||
json_object_set_new(srv, "master_binlog_position",
|
||||
json_integer(serv_info->slave_status.read_master_log_pos));
|
||||
json_object_set_new(srv, "gtid_current_pos",
|
||||
json_string(serv_info->gtid_current_pos.to_string().c_str()));
|
||||
json_object_set_new(srv, "gtid_binlog_pos",
|
||||
json_string(serv_info->gtid_binlog_pos.to_string().c_str()));
|
||||
json_object_set_new(srv, "gtid_io_pos",
|
||||
json_string(serv_info->slave_status.gtid_io_pos.to_string().c_str()));
|
||||
if (m_detect_multimaster)
|
||||
{
|
||||
json_object_set_new(srv, "master_group", json_integer(serv_info->group));
|
||||
}
|
||||
|
||||
json_array_append_new(arr, srv);
|
||||
json_array_append_new(arr, (*iter)->diagnostics_json(m_detect_multimaster));
|
||||
}
|
||||
|
||||
json_object_set_new(rval, "server_info", arr);
|
||||
}
|
||||
|
||||
|
@ -431,6 +431,64 @@ const char* MariaDBServer::name() const
|
||||
return server_base->server->unique_name;
|
||||
}
|
||||
|
||||
string MariaDBServer::diagnostics(bool multimaster) const
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << "Server: " << name() << "\n";
|
||||
ss << "Server ID: " << server_id << "\n";
|
||||
ss << "Read only: " << (read_only ? "YES" : "NO") << "\n";
|
||||
ss << "Slave configured: " << (slave_configured ? "YES" : "NO") << "\n";
|
||||
if (slave_configured)
|
||||
{
|
||||
ss << "Slave IO running: " << (slave_status.slave_io_running ? "YES" : "NO") << "\n";
|
||||
ss << "Slave SQL running: " << (slave_status.slave_sql_running ? "YES" : "NO") << "\n";
|
||||
ss << "Master ID: " << slave_status.master_server_id << "\n";
|
||||
ss << "Master binlog file: " << slave_status.master_log_file << "\n";
|
||||
ss << "Master binlog position: " << slave_status.read_master_log_pos << "\n";
|
||||
}
|
||||
if (!gtid_current_pos.empty())
|
||||
{
|
||||
ss << "Gtid current position: " << gtid_current_pos.to_string() << "\n";
|
||||
}
|
||||
if (!gtid_binlog_pos.empty())
|
||||
{
|
||||
ss << "Gtid binlog position: " << gtid_binlog_pos.to_string() << "\n";
|
||||
}
|
||||
if (!slave_status.gtid_io_pos.empty())
|
||||
{
|
||||
ss << "Gtid slave IO position: " << slave_status.gtid_io_pos.to_string() << "\n";
|
||||
}
|
||||
if (multimaster)
|
||||
{
|
||||
ss << "Master group: " << group << "\n";
|
||||
}
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
json_t* MariaDBServer::diagnostics_json(bool multimaster) const
|
||||
{
|
||||
json_t* srv = json_object();
|
||||
json_object_set_new(srv, "name", json_string(name()));
|
||||
json_object_set_new(srv, "server_id", json_integer(server_id));
|
||||
json_object_set_new(srv, "master_id", json_integer(slave_status.master_server_id));
|
||||
|
||||
json_object_set_new(srv, "read_only", json_boolean(read_only));
|
||||
json_object_set_new(srv, "slave_configured", json_boolean(slave_configured));
|
||||
json_object_set_new(srv, "slave_io_running", json_boolean(slave_status.slave_io_running));
|
||||
json_object_set_new(srv, "slave_sql_running", json_boolean(slave_status.slave_sql_running));
|
||||
|
||||
json_object_set_new(srv, "master_binlog_file", json_string(slave_status.master_log_file.c_str()));
|
||||
json_object_set_new(srv, "master_binlog_position", json_integer(slave_status.read_master_log_pos));
|
||||
json_object_set_new(srv, "gtid_current_pos", json_string(gtid_current_pos.to_string().c_str()));
|
||||
json_object_set_new(srv, "gtid_binlog_pos", json_string(gtid_binlog_pos.to_string().c_str()));
|
||||
json_object_set_new(srv, "gtid_io_pos", json_string(slave_status.gtid_io_pos.to_string().c_str()));
|
||||
if (multimaster)
|
||||
{
|
||||
json_object_set_new(srv, "master_group", json_integer(group));
|
||||
}
|
||||
return srv;
|
||||
}
|
||||
|
||||
QueryResult::QueryResult(MYSQL_RES* resultset)
|
||||
: m_resultset(resultset)
|
||||
, m_columns(-1)
|
||||
|
@ -196,6 +196,22 @@ public:
|
||||
* @return Server unique name
|
||||
*/
|
||||
const char* name() const;
|
||||
|
||||
/**
|
||||
* Print server information to a json object.
|
||||
*
|
||||
* @param multimaster Print multimaster group
|
||||
* @return Json diagnostics object
|
||||
*/
|
||||
json_t* diagnostics_json(bool multimaster) const;
|
||||
|
||||
/**
|
||||
* Print server information to a string.
|
||||
*
|
||||
* @param multimaster Print multimaster group
|
||||
* @return Diagnostics string
|
||||
*/
|
||||
std::string diagnostics(bool multimaster) const;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user