NAME = "mysql.chart.py"
import sys
-sys.path.append("./python_modules") #FIXME it is here for debug only
-
# import 3rd party library to handle MySQL communication
try:
import MySQLdb
# https://github.com/PyMySQL/PyMySQL
sys.stderr.write(NAME + ": using pymysql\n")
except ImportError:
- sys.stderr.write(NAME + ": You need to install PyMySQL module to use mysql.chart.py plugin\n")
+ sys.stderr.write(NAME + ": You need to install MySQLdb or PyMySQL module to use mysql.chart.py plugin\n")
+ raise ImportError
from base import BaseService
# default configuration (overriden by python.d.plugin)
# FIXME change password
-config = [
- {
- 'name' : 'local',
+config = {
+ 'local': {
'user' : 'root',
- 'password' : 'a',
+ 'password' : '',
'socket' : '/var/run/mysqld/mysqld.sock',
'update_every' : 3,
- 'retries' : 4
+ 'retries' : 4,
+ 'priority' : 100
}
-]
+}
# default module values (can be overridden per job in `config`)
update_every = 3
class Service(BaseService):
def __init__(self,configuration=None,name=None):
- super().__init__(configuration)
+ super().__init__(configuration=configuration)
+ self.name = name
self.configuration = self._parse_config(configuration)
self.connection = None
self.defs = {}
- self.name = name
def _parse_config(self,configuration):
# parse configuration to collect data from mysql server
def create(self):
for name in ORDER:
- print(name)
self.defs[name] = []
for line in CHARTS[name][1]:
self.defs[name].append(line[0])
print(header + lines + "END")
return True
-
-#FIXME debug only:
-if __name__ == "__main__":
- my = Service(config[0],'loc')
- my.check()
- my.create()
- my.update(1)