add option to include my.cnf
paulfantom committed
Jun 14, 2016 at 21:02 UTC
28cc64633dd36d4e01db6e2b03ab6d0ea965fbce
1 file changed
+16
-11
python.d/mysql.chart.py
+16
-11
@@ -313,6 +313,7 @@ def get_data(config):
313
stderr.write(NAME + ": reconnecting\n")
314
cnx = pymysql.connect(user=config['user'],
315
password=config['password'],
316
+ read_default_file=config['my.cnf'],
317
unix_socket=config['socket'],
318
host=config['host'],
319
port=config['port'],
@@ -341,35 +342,39 @@ def check():
342
config = cfg
343
for i in range(len(config)):
344
if 'name' not in config[i]:
344
- config[i]['name'] = "mysql_srv_"+str(i)
345
+ config[i]['name'] = "srv_"+str(i)
346
if 'user' not in config[i]:
347
config[i]['user'] = 'root'
348
if 'password' not in config[i]:
349
config[i]['password'] = None
349
- if 'socket' not in config[i]:
350
+ if 'my.cnf' in config[i]:
351
config[i]['socket'] = None
351
- if 'host' not in config[i]:
352
config[i]['host'] = None
353
- if 'port' in config[i]:
354
- config[i]['port'] = int(config[i]['port'])
355
- else:
356
- config[i]['port'] = 3306
357
- if config[i]['host'] is None:
353
config[i]['port'] = None
359
- if config[i]['host'] is None and config[i]['socket'] is None:
360
- remove.append(i)
354
+ elif 'socket' in config[i]:
355
+ config[i]['my.cnf'] = None
356
+ config[i]['host'] = None
357
+ config[i]['port'] = None
358
+ elif 'host' in config[i]:
359
+ config[i]['my.cnf'] = None
360
+ config[i]['socket'] = None
361
+ if 'port' in config[i]:
362
+ config[i]['port'] = str(config[i]['port'])
363
+ else:
364
+ config[i]['port'] = 3306
365
366
for srv in config:
367
try:
368
cnx = pymysql.connect(user=srv['user'],
369
password=srv['password'],
370
+ read_default_file=srv['my.cnf'],
371
unix_socket=srv['socket'],
372
host=srv['host'],
373
port=srv['port'],
374
connect_timeout=int(update_every))
375
cnx.close()
376
except Exception as e:
372
- stderr.write(NAME + " has problem connecting to server: "+str(e)+"\n")
377
+ stderr.write(NAME + " has problem connecting to server: "+str(e).replace("\n"," ")+"\n")
378
config.remove(srv)
379
380
if len(config) == 0: