X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fmysql.c;h=822c6cce7ece8a0c68d5bf78d49e97b7249279d2;hb=d68f1b428fd794fae3e909c65396289f14c6f99b;hp=8400a56cc141d4f9b7f8014ab46e03a3346b24ae;hpb=7cfd65af5400d1944bb981827d6811b3732f54a5;p=collectd.git diff --git a/src/mysql.c b/src/mysql.c index 8400a56c..822c6cce 100644 --- a/src/mysql.c +++ b/src/mysql.c @@ -60,42 +60,43 @@ static char *traffic_file = "traffic-mysql.rrd"; static char *commands_ds_def[] = { - "DS:value:COUNTER:25:0:U", + "DS:value:COUNTER:"COLLECTD_HEARTBEAT":0:U", NULL }; static int commands_ds_num = 1; static char *handler_ds_def[] = { - "DS:value:COUNTER:25:0:U", + "DS:value:COUNTER:"COLLECTD_HEARTBEAT":0:U", NULL }; static int handler_ds_num = 1; static char *qcache_ds_def[] = { - "DS:hits:COUNTER:25:0:U", - "DS:inserts:COUNTER:25:0:U", - "DS:not_cached:COUNTER:25:0:U", - "DS:queries_in_cache:GAUGE:25:0:U", + "DS:hits:COUNTER:"COLLECTD_HEARTBEAT":0:U", + "DS:inserts:COUNTER:"COLLECTD_HEARTBEAT":0:U", + "DS:not_cached:COUNTER:"COLLECTD_HEARTBEAT":0:U", + "DS:lowmem_prunes:COUNTER:"COLLECTD_HEARTBEAT":0:U", + "DS:queries_in_cache:GAUGE:"COLLECTD_HEARTBEAT":0:U", NULL }; -static int qcache_ds_num = 4; +static int qcache_ds_num = 5; static char *threads_ds_def[] = { - "DS:running:GAUGE:25:0:U", - "DS:connected:GAUGE:25:0:U", - "DS:cached:GAUGE:25:0:U", - "DS:created:COUNTER:25:0:u", + "DS:running:GAUGE:"COLLECTD_HEARTBEAT":0:U", + "DS:connected:GAUGE:"COLLECTD_HEARTBEAT":0:U", + "DS:cached:GAUGE:"COLLECTD_HEARTBEAT":0:U", + "DS:created:COUNTER:"COLLECTD_HEARTBEAT":0:U", NULL }; static int threads_ds_num = 4; static char *traffic_ds_def[] = { - "DS:incoming:COUNTER:25:0:U", - "DS:outgoing:COUNTER:25:0:U", + "DS:incoming:COUNTER:"COLLECTD_HEARTBEAT":0:U", + "DS:outgoing:COUNTER:"COLLECTD_HEARTBEAT":0:U", NULL }; static int traffic_ds_num = 2; @@ -201,6 +202,12 @@ static void handler_write (char *host, char *inst, char *val) rrd_update_file (host, buf, val, handler_ds_def, handler_ds_num); } +static void qcache_write (char *host, char *inst, char *val) +{ + rrd_update_file (host, qcache_file, val, + qcache_ds_def, qcache_ds_num); +} + static void threads_write (char *host, char *inst, char *val) { rrd_update_file (host, threads_file, val, @@ -213,12 +220,6 @@ static void traffic_write (char *host, char *inst, char *val) traffic_ds_def, traffic_ds_num); } -static void qcache_write (char *host, char *inst, char *val) -{ - rrd_update_file (host, qcache_file, val, - qcache_ds_def, qcache_ds_num); -} - #if MYSQL_HAVE_READ static void commands_submit (char *inst, unsigned long long value) { @@ -263,14 +264,15 @@ static void handler_submit (char *inst, unsigned long long value) } static void qcache_submit (unsigned long long hits, unsigned long long inserts, - unsigned long long not_cached, int queries_in_cache) + unsigned long long not_cached, unsigned long long lowmem_prunes, + int queries_in_cache) { char buf[BUFSIZE]; int status; - status = snprintf (buf, BUFSIZE, "%u:%llu:%llu:%llu:%i", + status = snprintf (buf, BUFSIZE, "%u:%llu:%llu:%llu:%llu:%i", (unsigned int) curtime, hits, inserts, not_cached, - queries_in_cache); + lowmem_prunes, queries_in_cache); if (status < 0) { @@ -342,9 +344,10 @@ static void mysql_read (void) int query_len; int field_num; - unsigned long long qcache_hits = 0ULL; - unsigned long long qcache_inserts = 0ULL; - unsigned long long qcache_not_cached = 0ULL; + unsigned long long qcache_hits = 0ULL; + unsigned long long qcache_inserts = 0ULL; + unsigned long long qcache_not_cached = 0ULL; + unsigned long long qcache_lowmem_prunes = 0ULL; int qcache_queries_in_cache = -1; int threads_running = -1; @@ -363,6 +366,9 @@ static void mysql_read (void) return; query = "SHOW STATUS"; + if (mysql_get_server_version (con) >= 50002) + query = "SHOW GLOBAL STATUS"; + query_len = strlen (query); if (mysql_real_query (con, query, query_len)) @@ -412,6 +418,8 @@ static void mysql_read (void) qcache_inserts = val; else if (strcmp (key, "Qcache_not_cached") == 0) qcache_not_cached = val; + else if (strcmp (key, "Qcache_lowmem_prunes") == 0) + qcache_lowmem_prunes = val; else if (strcmp (key, "Qcache_queries_in_cache") == 0) qcache_queries_in_cache = (int) val; } @@ -438,9 +446,10 @@ static void mysql_read (void) if ((qcache_hits != 0ULL) || (qcache_inserts != 0ULL) - || (qcache_not_cached != 0ULL)) + || (qcache_not_cached != 0ULL) + || (qcache_lowmem_prunes != 0ULL)) qcache_submit (qcache_hits, qcache_inserts, qcache_not_cached, - qcache_queries_in_cache); + qcache_lowmem_prunes, qcache_queries_in_cache); if (threads_created != 0ULL) threads_submit (threads_running, threads_connected,