/**
* collectd - src/mysql.c
* Copyright (C) 2006-2009 Florian octo Forster
- * Copyright (C) 2009 Doug MacEachern
- * Copyright (C) 2009 Sebastian tokkee Harl
+ * Copyright (C) 2008 Mirko Buffoni
+ * Copyright (C) 2009 Doug MacEachern
+ * Copyright (C) 2009 Sebastian tokkee Harl
+ * Copyright (C) 2009 Rodolphe QuiƩdeville
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Mirko Buffoni <briareos at eswat.org>
* Doug MacEachern <dougm at hyperic.com>
* Sebastian tokkee Harl <sh at tokkee.org>
+ * Rodolphe QuiƩdeville <rquiedeville at bearstech.com>
**/
#include "collectd.h"
return (status);
}
assert (db->instance != NULL);
- db->database = strdup (db->instance);
}
else
{
db->port);
status = -1;
}
- if (db->database == NULL)
- {
- ERROR ("mysql plugin: No `Database' configured");
- status = -1;
- }
break;
} /* while (status == 0) */
user_data_t ud;
char cb_name[DATA_MAX_NAME_LEN];
- DEBUG ("mysql plugin: Registering new read callback: %s", db->database);
+ DEBUG ("mysql plugin: Registering new read callback: %s",
+ (db->database != NULL) ? db->database : "<default>");
memset (&ud, 0, sizeof (ud));
ud.data = (void *) db;
int err;
if ((err = mysql_ping (db->con)) != 0)
{
- WARNING ("mysql_ping failed: %s", mysql_error (db->con));
+ WARNING ("mysql_ping failed for %s: %s",
+ (db->instance != NULL)
+ ? db->instance
+ : "<legacy>",
+ mysql_error (db->con));
db->state = 0;
}
else
key = row[0];
val = atoll (row[1]);
- if (strncmp (key, "Com_", 4) == 0)
+ if (strncmp (key, "Com_",
+ strlen ("Com_")) == 0)
{
if (val == 0ULL)
continue;
/* Ignore `prepared statements' */
- if (strncmp (key, "Com_stmt_", 9) != 0)
- counter_submit ("mysql_commands", key + 4, val, db);
+ if (strncmp (key, "Com_stmt_", strlen ("Com_stmt_")) != 0)
+ counter_submit ("mysql_commands",
+ key + strlen ("Com_"),
+ val, db);
}
- else if (strncmp (key, "Handler_", 8) == 0)
+ else if (strncmp (key, "Handler_",
+ strlen ("Handler_")) == 0)
{
if (val == 0ULL)
continue;
- counter_submit ("mysql_handler", key + 8, val, db);
+ counter_submit ("mysql_handler",
+ key + strlen ("Handler_"),
+ val, db);
}
- else if (strncmp (key, "Qcache_", 7) == 0)
+ else if (strncmp (key, "Qcache_",
+ strlen ("Qcache_")) == 0)
{
if (strcmp (key, "Qcache_hits") == 0)
qcache_hits = val;
else if (strcmp (key, "Qcache_queries_in_cache") == 0)
qcache_queries_in_cache = (int) val;
}
- else if (strncmp (key, "Bytes_", 6) == 0)
+ else if (strncmp (key, "Bytes_",
+ strlen ("Bytes_")) == 0)
{
if (strcmp (key, "Bytes_received") == 0)
traffic_incoming += val;
else if (strcmp (key, "Bytes_sent") == 0)
traffic_outgoing += val;
}
- else if (strncmp (key, "Threads_", 8) == 0)
+ else if (strncmp (key, "Threads_",
+ strlen ("Threads_")) == 0)
{
if (strcmp (key, "Threads_running") == 0)
threads_running = (int) val;
else if (strcmp (key, "Threads_created") == 0)
threads_created = val;
}
+ else if (strncmp (key, "Table_locks_",
+ strlen ("Table_locks_")) == 0)
+ {
+ counter_submit ("mysql_locks",
+ key + strlen ("Table_locks_"),
+ val, db);
+ }
}
mysql_free_result (res); res = NULL;