Changeset 22 for trunk/daemon


Ignore:
Timestamp:
03/24/05 11:14:36 (19 years ago)
Author:
bastiaans
Message:

daemon/togad.py:

Rewrote processing style

  • XML processing will now happen in a seperate thread
  • Now XML processing really happens every ARCHIVE_INTERVAL seconds
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/togad.py

    r21 r22  
    1414# Specify debugging level here;
    1515#
    16 # >10 = metric XML
    17 # >9  = host,cluster,grid,ganglia XML
    18 # >8  = RRD activity,gmetad config parsing
     16# >=11 = metric XML
     17# >=10 = host,cluster,grid,ganglia XML
     18# >=9  = RRD activity,gmetad config parsing
     19# >=7  = daemon threading
    1920#
    2021DEBUG_LEVEL = 7
     
    3435# Amount of hours to store in one single archived .rrd
    3536#
    36 ARCHIVE_HOURS_PER_RRD = 24
     37ARCHIVE_HOURS_PER_RRD = 12
    3738
    3839# Interval at which to grab&store XML
    3940#
    4041GRAB_INTERVAL = 15
     42
     43# Wether or not to run as a daemon in background
     44#
     45DAEMONIZE = 0
    4146
    4247######################
     
    204209                self.run()
    205210
     211        def printTime( self ):
     212
     213                return time.strftime("%a, %d %b %Y %H:%M:%S")
     214
    206215        def run( self ):
    207216                "Main thread"
    208217
    209218                while ( 1 ):
    210                         self.processXML()
    211                         time.sleep( GRAB_INTERVAL )
     219
     220                        debug_msg( 7, self.printTime() + ' - mainthread() - xmlthread() started' )
     221                        pid = os.fork()
     222
     223                        if pid == 0:
     224                                # Child - XML Thread
     225                                #
     226                                # Process XML and exit
     227
     228                                debug_msg( 7, self.printTime() + ' - xmlthread()  - Start XML processing..' )
     229                                self.processXML()
     230                                debug_msg( 7, self.printTime() + ' - xmlthread()  - Done processing; exiting.' )
     231                                sys.exit(0)
     232
     233                        elif pid > 0:
     234                                # Parent - Daemon Thread
     235
     236                                debug_msg( 7, self.printTime() + ' - mainthread() - Sleep '+ str(GRAB_INTERVAL) +'s: zzzzz..' )
     237                                time.sleep( GRAB_INTERVAL )
     238                                debug_msg( 7, self.printTime() + ' - mainthread() - Awoken: waiting for XML thread..' )
     239
     240                                r = os.wait()
     241
     242                                debug_msg( 7, self.printTime() + ' - mainthread() - Done waiting.' )
    212243
    213244        def processXML( self ):
     
    391422
    392423        myProcessor = GangliaXMLProcessor()
    393         #myProcessor.processXML()
    394         myProcessor.daemon()
     424
     425        if DAEMONIZE:
     426                myProcessor.daemon()
     427        else:
     428                myProcessor.run()
    395429
    396430def check_dir( directory ):
Note: See TracChangeset for help on using the changeset viewer.