new monitor routines

new monitor routines
This commit is contained in:
MassimilianoPinto
2014-05-28 15:44:51 +02:00
parent d0a30748ab
commit fe0fcd75e4
5 changed files with 36 additions and 4 deletions

View File

@ -245,9 +245,24 @@ monitorSetId(MONITOR *mon, unsigned long id)
* @param mon The monitor instance * @param mon The monitor instance
* @param interval The sampling interval in milliseconds * @param interval The sampling interval in milliseconds
*/ */
void
monitorSetInterval (MONITOR *mon, unsigned long interval) monitorSetInterval (MONITOR *mon, unsigned long interval)
{ {
if (mon->module->setInterval != NULL) { if (mon->module->setInterval != NULL) {
mon->module->setInterval(mon->handle, interval); mon->module->setInterval(mon->handle, interval);
} }
} }
/**
* Enable Replication Heartbeat support in monitor.
*
* @param mon The monitor instance
* @param interval The sampling interval in milliseconds
*/
void
monitorSetReplicationHeartbeat(MONITOR *mon, int replication_heartbeat)
{
if (mon->module->replicationHeartbeat != NULL) {
mon->module->replicationHeartbeat(mon->handle, replication_heartbeat);
}
}

View File

@ -69,6 +69,7 @@ typedef struct {
void (*diagnostics)(DCB *, void *); void (*diagnostics)(DCB *, void *);
void (*setInterval)(void *, unsigned long); void (*setInterval)(void *, unsigned long);
void (*defaultId)(void *, unsigned long); void (*defaultId)(void *, unsigned long);
void (*replicationHeartbeat)(void *, int);
} MONITOR_OBJECT; } MONITOR_OBJECT;
/** /**

View File

@ -49,7 +49,7 @@ extern int lm_enabled_logfiles_bitmask;
static void monitorMain(void *); static void monitorMain(void *);
static char *version_str = "V1.1.1"; static char *version_str = "V1.2.0";
static void *startMonitor(void *); static void *startMonitor(void *);
static void stopMonitor(void *); static void stopMonitor(void *);
@ -59,7 +59,7 @@ static void defaultUsers(void *, char *, char *);
static void diagnostics(DCB *, void *); static void diagnostics(DCB *, void *);
static void setInterval(void *, unsigned long); static void setInterval(void *, unsigned long);
static MONITOR_OBJECT MyObject = { startMonitor, stopMonitor, registerServer, unregisterServer, defaultUsers, diagnostics, setInterval, NULL }; static MONITOR_OBJECT MyObject = { startMonitor, stopMonitor, registerServer, unregisterServer, defaultUsers, diagnostics, setInterval, NULL, NULL };
/** /**
* Implementation of the mandatory version entry point * Implementation of the mandatory version entry point

View File

@ -53,7 +53,7 @@ extern int lm_enabled_logfiles_bitmask;
static void monitorMain(void *); static void monitorMain(void *);
static char *version_str = "V1.1.1"; static char *version_str = "V1.2.0";
static void *startMonitor(void *); static void *startMonitor(void *);
static void stopMonitor(void *); static void stopMonitor(void *);
@ -63,8 +63,9 @@ static void defaultUser(void *, char *, char *);
static void diagnostics(DCB *, void *); static void diagnostics(DCB *, void *);
static void setInterval(void *, unsigned long); static void setInterval(void *, unsigned long);
static void defaultId(void *, unsigned long); static void defaultId(void *, unsigned long);
static void replicationHeartbeat(void *, int);
static MONITOR_OBJECT MyObject = { startMonitor, stopMonitor, registerServer, unregisterServer, defaultUser, diagnostics, setInterval, defaultId }; static MONITOR_OBJECT MyObject = { startMonitor, stopMonitor, registerServer, unregisterServer, defaultUser, diagnostics, setInterval, defaultId, replicationHeartbeat };
/** /**
* Implementation of the mandatory version entry point * Implementation of the mandatory version entry point
@ -505,3 +506,16 @@ setInterval(void *arg, unsigned long interval)
MYSQL_MONITOR *handle = (MYSQL_MONITOR *)arg; MYSQL_MONITOR *handle = (MYSQL_MONITOR *)arg;
memcpy(&handle->interval, &interval, sizeof(unsigned long)); memcpy(&handle->interval, &interval, sizeof(unsigned long));
} }
/**
* Enable/Disable the MySQL Replication hearbeat, detecting slave lag behind master.
*
* @param arg The handle allocated by startMonitor
* @param replicationHeartbeat To enable it 1, disable it with 0
*/
static void
replicationHeartbeat(void *arg, int replicationHeartbeat)
{
MYSQL_MONITOR *handle = (MYSQL_MONITOR *)arg;
memcpy(&handle->replicationHeartbeat, &replicationHeartbeat, sizeof(int));
}

View File

@ -58,6 +58,8 @@ typedef struct {
char *defaultPasswd; /**< Default password for monitoring */ char *defaultPasswd; /**< Default password for monitoring */
unsigned long interval; /**< Monitor sampling interval */ unsigned long interval; /**< Monitor sampling interval */
unsigned long id; /**< Monitor ID */ unsigned long id; /**< Monitor ID */
int replicationHeartbeat; /**< Monitor flag for MySQL replication heartbeat */
int master_id; /**< Master server-id for MySQL Master/Slave replication */
MONITOR_SERVERS *databases; /**< Linked list of servers to monitor */ MONITOR_SERVERS *databases; /**< Linked list of servers to monitor */
} MYSQL_MONITOR; } MYSQL_MONITOR;