@cryptotaxi247 / netdata-1 / commits / a8204a0e8

enabled option "trace" to get python traces on errors

Costa Tsaousis (ktsaou) committed Nov 12, 2016 at 14:17 UTC a8204a0e864b4e0226ee07243adeb61f007fedf1
2 files changed +21 -2
plugins.d/python.d.plugin
+16 -2
@@ -28,6 +28,7 @@ sys.path.append(MODULES_DIR + "python_modules")
28
29 PROGRAM = os.path.basename(__file__).replace(".plugin", "")
30 DEBUG_FLAG = False
31 +TRACE_FLAG = False
32 OVERRIDE_UPDATE_EVERY = False
33
34 # -----------------------------------------------------------------------------
@@ -435,7 +436,7 @@ def parse_cmdline(directory, *commands):
436 :param commands: list of str
437 :return: dict
438 """
438 - global DEBUG_FLAG
439 + global DEBUG_FLAG, TRACE_FLAG
440 global OVERRIDE_UPDATE_EVERY
441 global BASE_CONFIG
442
@@ -447,6 +448,8 @@ def parse_cmdline(directory, *commands):
448 elif cmd == "debug" or cmd == "all":
449 DEBUG_FLAG = True
450 # redirect stderr to stdout?
451 + elif cmd == "trace" or cmd == "all":
452 + TRACE_FLAG = True
453 elif os.path.isfile(directory + cmd + ".chart.py") or os.path.isfile(directory + cmd):
454 #DEBUG_FLAG = True
455 mods.append(cmd.replace(".chart.py", ""))
@@ -470,7 +473,7 @@ def run():
473 """
474 Main program.
475 """
473 - global DEBUG_FLAG, BASE_CONFIG
476 + global DEBUG_FLAG, TRACE_FLAG, BASE_CONFIG
477
478 # read configuration file
479 disabled = []
@@ -488,23 +491,33 @@ def run():
491 msg.fatal('disabled in configuration file.\n')
492 except (KeyError, TypeError):
493 pass
494 +
495 try:
496 for param in BASE_CONFIG:
497 BASE_CONFIG[param] = conf[param]
498 except (KeyError, TypeError):
499 pass # use default update_every from NETDATA_UPDATE_EVERY
500 +
501 try:
502 DEBUG_FLAG = conf['debug']
503 except (KeyError, TypeError):
504 pass
505 +
506 + try:
507 + TRACE_FLAG = conf['trace']
508 + except (KeyError, TypeError):
509 + pass
510 +
511 try:
512 log_throttle = conf['logs_per_interval']
513 except (KeyError, TypeError):
514 pass
515 +
516 try:
517 log_interval = conf['log_interval']
518 except (KeyError, TypeError):
519 pass
520 +
521 for k, v in conf.items():
522 if k in ("update_every", "debug", "enabled"):
523 continue
@@ -514,6 +527,7 @@ def run():
527 # parse passed command line arguments
528 modules = parse_cmdline(MODULES_DIR, *sys.argv)
529 msg.DEBUG_FLAG = DEBUG_FLAG
530 + msg.TRACE_FLAG = TRACE_FLAG
531 msg.LOG_THROTTLE = log_throttle
532 msg.LOG_INTERVAL = log_interval
533 msg.LOG_COUNTER = 0
python.d/python_modules/msg.py
+5
@@ -1,10 +1,12 @@
1 # -*- coding: utf-8 -*-
2 # Description: logging for netdata python.d modules
3
4 +import traceback
5 import sys
6 from time import time, strftime
7
8 DEBUG_FLAG = False
9 +TRACE_FLAG = False
10 PROGRAM = ""
11 LOG_COUNTER = 0
12 LOG_THROTTLE = 10000 # has to be too big during init
@@ -51,6 +53,9 @@ def log_msg(msg_type, *args):
53 LOG_NEXT_CHECK = now - (now % LOG_INTERVAL) + LOG_INTERVAL
54 LOG_COUNTER = 0
55
56 + if TRACE_FLAG:
57 + if msg_type == "FATAL" or msg_type == "ERROR" or msg_type == "ALERT":
58 + traceback.print_exc()
59
60
61 def debug(*args):