<?xml version="1.0" ?>
<!-- 
     SAMPLE Configuration file for CIT Status Daemon

     $Id: csdaemon.conf.SAMPLE.xml 2572 2004-08-05 20:25:03Z nwdauch $
  -->
<config>

  <!-- Configuration for the server -->
  <server>
    <!-- Port for the daemon to listen on.

         Must be 1024 or higher.
      -->
    <port>2009</port>
  
    <!-- File to store PID of main process in -->
    <pid_file>/var/run/csdaemon.pid</pid_file>
  
    <!-- Where to write the log file

         This lists the directory where the log file, named
         csdaemon.err, will be written.
      -->
    <daemon_log_dir>/var/tmp</daemon_log_dir>

    <!-- Level to log things at:
  	0 - Error
  	1 - Warning
  	2 - Notice
  	3 - Info
  	4 - Debug

      Activites will be logged either to a log file or STDERR at
      this level, as set below.  The Debug setting produces a lot
      of output.  Generally, logging at 1 or 2 is more than sufficient.
      -->
    <log_level>2</log_level>
   
    <!-- What directory should persistant files be created in? 

         If you are storing trends (next option), the round robin
         database files will also be stored in a subdirectory under
         here.  This only matters on the top level daemon.
     -->
    <admin_log_dir>/var/tmp</admin_log_dir>
   
    <!-- Trends should be stored in an RRD... true/false 

         Tests may specify trends to store.  If this option is set to
         'true' (and rrdtool is built and can be located by the daemon),
         then trends will be stored.  
      -->
    <trending>true</trending>

    <!-- Tests should be run from this machine... true/false

         Most people will want 'true' here.  Otherwise, you're not
         really testing anything!  You would only use 'false' if
         you want to just forward status along a chain, or log items 
         to disk without running any tests.
      -->
    <check_status>true</check_status>
  
    <!-- Delay (seconds) between reporting info to either
         your leader or (for the admin node) disk
      -->
    <report_delay>300</report_delay>
  
    <!-- Default regular expression indicating children to ignore 

         Sometimes there are devices you don't care to try and status,
         and you don't want cluttering the ouput.  Below, all devices 
         with 'power' or 'ts' in their name are ignored.  If you want
         to ignore all your children, setting this option to '.*' will
         accomplish that.

         Your children are determined by information in the configuration
         database.  The parent of a device for the purposes of monitoring
         is defined by the 'monitor' attribute of a device.  If the device
         has no 'monitor' attribute, the the 'leader' attribute is used.
         If the device has no 'leader' attribute either, then the highest
         daemon in the system becomes its parent.
      -->
    <ignore_child_regex>power|ts</ignore_child_regex>
  
    <!-- Run in the background...  
	 true  - background sending everything to log file
	 false - keep in foreground sending all messages to STDERR
	 init  - keep in forground but log everything to file,
		 useful for restarting out of inittab
      -->
    <background>false</background>

  <!-- End server configuration -->
  </server>




  <!-- Configure which tests will run -->
  <checks>
    <!-- allow tests not listed here to be run (they will
         pick up all the default settings)...  true/false
      -->
    <allow_unlisted>true</allow_unlisted>

    <!-- Default delay (seconds) between tests.  This value 
         will be used for unlisted tests or listed tests
         with delay <= 0.
      -->
    <default_delay>60</default_delay>

    <!-- Maximum delay before starting a test after daemon
         start.  Daemon tries to evenly distribute all tests
         over this period (or the defalt delay, whichever is
         smaller).

         It is possible for a test to take longer than this to run
         initially, but only in the case where the node is under a
         high load, and the status tests need to be throttled back.
      -->
    <max_start_delay>120</max_start_delay>

    <!-- How long (in seconds) to wait when we have to throttle
         becuase too many processes have forked and not finished.
         Allowable values: 1..20

         You might have to wait multiples of this value, if the 
         condition causing you to throttle doesn't clear up in the
         time you waited.  Don't want to set this too high or too low.
      -->
    <throttle_delay>5</throttle_delay>

    <!-- Define groups of nodes and the tests that should/shouldn't
         run on them.  You can define up to 100 groups right now,
         though that limi is somewhat artificial and could be increased.
      -->
    <group>

      <!-- Every group starts with a regular exression.  All device
           names that match that regular expression ar part of the
           group.  All test directives that follow will be applied
           to  all memebers.
        -->
      <regex>admin</regex>

      <!-- Every group has one or more tests defined -->
      <test>

        <!-- Give the name of the test... -->
        <name>la</name>

        <!-- ...and the test type.  Together with the name, these
             should point to a tests at:
             /cluster/lib/StatusDaemon/Status/TYPE/NAME
          -->
        <type>local</type>

        <!-- Delay between runs of the test.  0 means use the default
             above.
          -->
        <delay>0</delay>
      </test>
      <test>
        <name>df</name>
        <type>local</type>
        <delay>0</delay>
      </test>
      <test>
        <name>ps</name>
        <type>local</type>
        <delay>0</delay>

        <!-- You can add arguments if you want. -->
        <arg>admin</arg>
      </test>
    </group>

    <group>
      <regex>node.*</regex>
      <test>
        <name>la</name>
        <type>local</type>

        <!-- Or disable tests completely -->
        <disable/>
      </test>
      <test>
        <name>df</name>
        <type>local</type>
        <disable/>
      </test>
      <test>
        <name>temp</name>
        <type>remote</type>
        <disable/>
      </test>
      <test>
        <name>ps</name>
        <type>local</type>
        <delay>0</delay>
        <arg>leader</arg>
      </test>
    </group>
 
    <!-- These check cplant stuff... not needed here -->
    <group>
      <regex>.*</regex>
<!--      <test>
        <name>queues</name>
        <type>local</type>
        <disable/>
      </test>  -->
      <test>
        <name>io_mount</name>
        <type>rlogin</type>
        <disable/>
      </test>
      <test>
        <name>queues</name>
        <type>local</type>
        <disable/>
      </test>
      <test>
        <name>cplant_info</name>
        <type>local</type>
        <disable/>
      </test>
    </group>

  <!-- Done with test configuration -->
  </checks>

<!-- Done with all configuration -->
</config>

