Added master server id to mysql 5.1 monitoring.
This commit is contained in:
@ -319,7 +319,7 @@ static inline bool connect_to_db(MONITOR* mon,MONITOR_SERVERS *database)
|
|||||||
0) != NULL);
|
0) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void monitor_mysql100_db(MONITOR_SERVERS* database)
|
static inline void monitor_mysql100_db(MONITOR_SERVERS* database)
|
||||||
{
|
{
|
||||||
bool isslave = false;
|
bool isslave = false;
|
||||||
MYSQL_RES* result;
|
MYSQL_RES* result;
|
||||||
@ -395,7 +395,7 @@ inline void monitor_mysql100_db(MONITOR_SERVERS* database)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void monitor_mysql55_db(MONITOR_SERVERS* database)
|
static inline void monitor_mysql55_db(MONITOR_SERVERS* database)
|
||||||
{
|
{
|
||||||
bool isslave = false;
|
bool isslave = false;
|
||||||
MYSQL_RES* result;
|
MYSQL_RES* result;
|
||||||
@ -461,7 +461,7 @@ inline void monitor_mysql55_db(MONITOR_SERVERS* database)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void monitor_mysql51_db(MONITOR_SERVERS* database)
|
static inline void monitor_mysql51_db(MONITOR_SERVERS* database)
|
||||||
{
|
{
|
||||||
bool isslave = false;
|
bool isslave = false;
|
||||||
MYSQL_RES* result;
|
MYSQL_RES* result;
|
||||||
@ -515,13 +515,13 @@ inline void monitor_mysql51_db(MONITOR_SERVERS* database)
|
|||||||
static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
||||||
{
|
{
|
||||||
MONITOR_SERVERS* database = mon->databases;
|
MONITOR_SERVERS* database = mon->databases;
|
||||||
|
MONITOR_SERVERS* ptr;
|
||||||
|
|
||||||
while(database)
|
while(database)
|
||||||
{
|
{
|
||||||
bool ismaster = false;
|
bool ismaster = false;
|
||||||
MYSQL_RES* result;
|
MYSQL_RES* result;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned long *slaves;
|
|
||||||
int nslaves = 0;
|
int nslaves = 0;
|
||||||
if(database->con)
|
if(database->con)
|
||||||
{
|
{
|
||||||
@ -540,12 +540,13 @@ static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
|||||||
if(mysql_num_rows(result) > 0)
|
if(mysql_num_rows(result) > 0)
|
||||||
{
|
{
|
||||||
ismaster = true;
|
ismaster = true;
|
||||||
while ((row = mysql_fetch_row(result)))
|
while (nslaves < MONITOR_MAX_NUM_SLAVES && (row = mysql_fetch_row(result)))
|
||||||
{
|
{
|
||||||
/* get Slave_IO_Running and Slave_SQL_Running values*/
|
/* get Slave_IO_Running and Slave_SQL_Running values*/
|
||||||
database->server->slaves[nslaves] = atol(row[0]);
|
database->server->slaves[nslaves] = atol(row[0]);
|
||||||
nslaves++;
|
nslaves++;
|
||||||
}
|
}
|
||||||
|
database->server->slaves[nslaves] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_free_result(result);
|
mysql_free_result(result);
|
||||||
@ -560,6 +561,32 @@ static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
|||||||
}
|
}
|
||||||
database = database->next;
|
database = database->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
database = mon->databases;
|
||||||
|
|
||||||
|
/** */
|
||||||
|
while(database)
|
||||||
|
{
|
||||||
|
ptr = mon->databases;
|
||||||
|
|
||||||
|
while(ptr)
|
||||||
|
{
|
||||||
|
for(int i = 0;ptr->server->slaves[i];i++)
|
||||||
|
{
|
||||||
|
if(ptr->server->slaves[i] == database->server->node_id)
|
||||||
|
{
|
||||||
|
database->server->master_id = ptr->server->node_id;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ptr = ptr->next;
|
||||||
|
}
|
||||||
|
if(database->server->master_id <= 0)
|
||||||
|
{
|
||||||
|
monitor_set_pending_status(database, SERVER_SLAVE_OF_EXTERNAL_MASTER);
|
||||||
|
}
|
||||||
|
database = database->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Monitor an individual server
|
* Monitor an individual server
|
||||||
@ -575,14 +602,12 @@ monitorDatabase(MONITOR *mon, MONITOR_SERVERS *database)
|
|||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
int isslave = 0;
|
int isslave = 0;
|
||||||
char *uname = mon->user;
|
char *uname = mon->user;
|
||||||
char *passwd = mon->password;
|
|
||||||
unsigned long int server_version = 0;
|
unsigned long int server_version = 0;
|
||||||
char *server_string;
|
char *server_string;
|
||||||
|
|
||||||
if (database->server->monuser != NULL)
|
if (database->server->monuser != NULL)
|
||||||
{
|
{
|
||||||
uname = database->server->monuser;
|
uname = database->server->monuser;
|
||||||
passwd = database->server->monpw;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uname == NULL)
|
if (uname == NULL)
|
||||||
|
Reference in New Issue
Block a user