3434from queryHandler import SensorConfig
3535from __version__ import __version__
3636from messages import ERR , MSG
37+ from bridgeLogger import configureLogging
3738from confParser import getSettings
3839from collections import defaultdict
3940from timeit import default_timer as timer
@@ -82,10 +83,10 @@ def __initializeTables(self):
8283 foundItems = len (self .metaData .allParents ) - 1
8384 sensors = self .metaData .sensorsSpec .keys ()
8485 self .logger .info (MSG ['MetaSuccess' ])
85- self .logger .info (MSG ['ReceivAttrValues' ].format ('parents totally' , foundItems ))
86+ self .logger .details (MSG ['ReceivAttrValues' ].format ('parents totally' , foundItems ))
8687 self .logger .debug (MSG ['ReceivAttrValues' ].format ('parents' , ", " .join (self .metaData .allParents )))
8788 self .logger .info (MSG ['ReceivAttrValues' ].format ('sensors' , ", " .join (sensors )))
88- self .logger .info (MSG ['TimerInfo' ].format ('Metadata' , str (tend - tstart )))
89+ self .logger .details (MSG ['TimerInfo' ].format ('Metadata' , str (tend - tstart )))
8990
9091 def update (self ):
9192 '''Read the topology from ZIMon and update
@@ -98,7 +99,7 @@ def update(self):
9899 if not (self .metaData and self .metaData .topo ):
99100 self .logger .error (MSG ['NoData' ]) # Please check the pmcollector is properly configured and running.
100101 raise cherrypy .HTTPError (404 , MSG [404 ])
101- self .logger .info (MSG ['MetaSuccess' ])
102+ self .logger .details (MSG ['MetaSuccess' ])
102103 self .logger .debug (MSG ['ReceivAttrValues' ].format ('parents' , ", " .join (self .metaData .allParents )))
103104 self .logger .debug (MSG ['TimerInfo' ].format ('Metadata' , str (tend - tstart )))
104105 return ({'msg' : MSG ['MetaSuccess' ]})
@@ -252,14 +253,14 @@ def _getTimeMultiplier(self, timeunit):
252253 def _retrieveData (self , query , dsOp = None , dsInterval = None ):
253254 '''Executes zimon query and returns results'''
254255
255- self .logger .info (MSG ['RunQuery' ].format (query ))
256+ self .logger .details (MSG ['RunQuery' ].format (query ))
256257 tstart = timer ()
257258 res = self .qh .runQuery (query )
258259 tend = timer ()
259- self .logger .info (MSG ['TimerInfo' ].format ('runQuery: \" ' + str (query ) + '\" ' , str (tend - tstart )))
260+ self .logger .details (MSG ['TimerInfo' ].format ('runQuery: \" ' + str (query ) + '\" ' , str (tend - tstart )))
260261 if res is None :
261262 return
262- self .logger .info ("res.rows length: {}" .format (len (res .rows )))
263+ self .logger .details ("res.rows length: {}" .format (len (res .rows )))
263264 rows = res .rows
264265 if dsOp and dsInterval and len (res .rows ) > 1 :
265266 rows = res .downsampleResults (dsInterval , dsOp )
@@ -305,7 +306,7 @@ def _createZimonQuery(self, q, start, end):
305306 self .logger .error (MSG ['MetricErr' ].format (inMetric ))
306307 raise cherrypy .HTTPError (404 , MSG ['MetricErr' ].format (inMetric ))
307308 else :
308- self .logger .info (MSG ['ReceivedQuery' ].format (str (q ), str (start ), str (end )))
309+ self .logger .details (MSG ['ReceivedQuery' ].format (str (q ), str (start ), str (end )))
309310
310311 # add tagName or metric using the same method. There is no 'NOOP' option in openTSDB
311312 query .addMetric (inMetric , q .get ('aggregator' ))
@@ -342,13 +343,13 @@ def _createZimonQuery(self, q, start, end):
342343 dsBucketSize = self ._calc_bucketSize (q .get ('downsample' ))
343344 if not dsOp and dsBucketSize > bucketSize :
344345 bucketSize = dsBucketSize
345- self .logger .info (MSG ['BucketsizeChange' ].format (q .get ('downsample' ), bucketSize ))
346+ self .logger .details (MSG ['BucketsizeChange' ].format (q .get ('downsample' ), bucketSize ))
346347 elif dsBucketSize <= bucketSize :
347348 dsOp = dsInterval = None
348349 else :
349350 dsInterval = int (dsBucketSize / bucketSize )
350351 else :
351- self .logger .info (MSG ['BucketsizeToPeriod' ].format (bucketSize ))
352+ self .logger .details (MSG ['BucketsizeToPeriod' ].format (bucketSize ))
352353
353354 query .setBucketSize (bucketSize )
354355
@@ -534,33 +535,13 @@ def processFormJSON(entity):
534535 cherrypy .serving .request .json = json .loads ('{}' )
535536
536537
537- def configureLogging (logPath , logfile , loglevel ):
538- # create the logfile path if needed
539- if not os .path .exists (logPath ):
540- os .makedirs (logPath )
541- logfile = os .path .join (logPath , logfile )
542-
543- # prepare the logger
544- logger = logging .getLogger ('zimonGrafanaIntf' )
545- rfhandler = logging .handlers .RotatingFileHandler (logfile , 'a' , 1000000 , 5 ) # 5 x 1M files
546- formatter = logging .Formatter ('%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
547- rfhandler .setFormatter (formatter )
548- logger .addHandler (rfhandler )
549- try :
550- logger .setLevel (loglevel )
551- except (ValueError , TypeError ):
552- logger .setLevel (logging .INFO )
553- logger .propagate = False # prevent propagation to default (console) logger
554- return logger
555-
556-
557538def validateCollectorConf (args , logger ):
558539
559540 # if not (args.get('server') == 'localhost') and not (args.get('server') == '127.0.0.1'):
560541 try :
561542 s = socket .socket ()
562543 s .connect ((args .get ('server' ), args .get ('serverPort' )))
563- print (MSG ['CollectorConnInfo' ])
544+ logger . info (MSG ['CollectorConnInfo' ])
564545 finally :
565546 s .close ()
566547 # else:
@@ -570,7 +551,7 @@ def validateCollectorConf(args, logger):
570551 # raise Exception("Invalid serverPort specified. Try with: %s" % str(foundPorts))
571552 # elif foundPorts[1] and not (args.get('serverPort') == int(foundPorts[1])):
572553 # args['serverPort'] = int(foundPorts[1])
573- # logger.info (MSG['Query2port'].format(args['serverPort']))
554+ # logger.details (MSG['Query2port'].format(args['serverPort']))
574555
575556
576557def updateCherrypyConf (args ):
@@ -619,24 +600,21 @@ def main(argv):
619600
620601 # prepare metadata
621602 try :
622- print ("\n " + MSG ['BridgeVersionInfo' ].format (__version__ ))
623603 logger .info ("%s" , MSG ['BridgeVersionInfo' ].format (__version__ ))
624- logger .info ('zimonGrafanaItf invoked with parameters:\n %s' , "\n " .join ("{}={}" .format (k , v ) for k , v in args .items ()))
604+ logger .details ('zimonGrafanaItf invoked with parameters:\n %s' , "\n " .join ("{}={}" .format (k , v ) for k , v in args .items ()))
625605 validateCollectorConf (args , logger )
626606 mdHandler = MetadataHandler (logger , args .get ('server' ), args .get ('serverPort' ))
627- print (MSG ['MetaSuccess' ])
628- print (MSG ['ReceivAttrValues' ].format ('sensors' , "\n \n " + "\t " .join (mdHandler .metaData .sensorsSpec .keys ())))
629607 except (AttributeError , ValueError , TypeError ) as e :
630- logger .exception ('%s' , MSG ['IntError' ].format (str (e )))
631- print (MSG ['MetaError' ])
608+ logger .details ('%s' , MSG ['IntError' ].format (str (e )))
609+ logger . error (MSG ['MetaError' ])
632610 return
633611 except (Exception , IOError ) as e :
634- logger .exception ('%s' , MSG ['IntError' ].format (str (e )))
635- print (MSG ['CollectorErr' ])
612+ logger .details ('%s' , MSG ['IntError' ].format (str (e )))
613+ logger . errort (MSG ['CollectorErr' ])
636614 return
637615 except (OSError ) as e :
638- logger .exception ('%s' , MSG ['IntError' ].format (str (e )))
639- print ("ZiMon sensor configuration file not found" )
616+ logger .details ('%s' , MSG ['IntError' ].format (str (e )))
617+ logger . error ("ZiMon sensor configuration file not found" )
640618 return
641619
642620 ph = PostHandler (logger , mdHandler )
@@ -681,25 +659,25 @@ def main(argv):
681659 }
682660 )
683661
684- print (MSG ['sysStart' ].format (sys .version , cherrypy .__version__ ))
685662 logger .info ("%s" , MSG ['sysStart' ].format (sys .version , cherrypy .__version__ ))
686663
687664 try :
688665 cherrypy .engine .start ()
689- print ("server started" )
666+ logger .info ("server started" )
667+ logger .debug ("Server started PID: {}" .format (os .getpid ()))
690668 cherrypy .engine .block ()
691- except TypeError :
692- print ("Server request could not be proceed. Reason:" )
669+ except TypeError as e :
670+ logger . error ("Server request could not be proceed. Reason: {}" . format ( e ) )
693671 raise cherrypy .HTTPError (500 , ERR [500 ])
694- except IOError :
695- print ("STOPPING: Server request could not be proceed. Reason:" )
672+ except OSError as e :
673+ logger . error ("STOPPING: Server request could not be proceed. Reason: {}" . format ( e ) )
696674 cherrypy .engine .stop ()
697675 cherrypy .engine .exit ()
698676
699677 ph = None
700678 gh = None
701679
702- print ("server stopped" )
680+ logger . warn ("server stopped" )
703681
704682
705683if __name__ == '__main__' :
0 commit comments