How to run DMT Loop Test via SeqInsert

In an engineering run, the actual dmt triggers are sent via a ligotools program SeqInsert via an http like process. This test exercises the method to make sure ldas is compatible with actual dmt process; the test objectives are the same as simulated DMT:

The LDAS APIs affected by this test are:

Setup

Choose a directory to install the tests scripts.

Running the test

The test should be run from your local platform, and run in directory one level above scripts directory. Usage: rundmt.tcl [options] >& rundmt.log &

Option Description
<site> ldas site [ dev | test | lho | llo | mit ]

or <mycomputer>:10001

Test Verification:

The test should be monitored initially to make sure data is flowing in a steady pace and that the insertions are successful impling that data is inserted in the correct sequence.

  1. Monitoring dmt

    All output from script SeqInsert is captured to stdout which can be redirected to a file at startup e.g. cit.log.

    A putMetaData user command is generated for each of the dmt files and sent to the managerAPI. The insertions can be monitored via cmonClient for the number of jobs and the database insertions for the specified database.

  2. Analysis

    When all the xmls are sent to LDAS, the logs can be extracted via cmonClient Log page; enter the gpstime ranges recorded in insertTrigs.log for logs in managerAPI, ligolwAPI and metadataAPI. Validate the following is true for successful insertions:

    • Number of files finish by SeqInsert should trail closely to number of jobs submitted.
       grep -c submit < insertTrigs log file > 
       grep -c finish < insertTrigs log file >  
    • Jobs statistics page should report the number sent by SeqInsert.
    • Database statistics page should report the total number of insertions sent by SeqInsert.
    • Number of gds_triggers inserted in database = number of gds_triggers in xml files

      use guild query

      select count(*) from gds_trigger where process_id in 
      (select process_id from process where program
      in ('glitchMon', 'PSLmon','LockLoss','BitTest','SegGener'))
      to confirm this is the case.
    • Other records inserted include process and segments. Also confirm this number in the database is the same as in xml files.

      Expected number of insertions per round with the current set of dmt files:

      Number of process records = 9 ( 1 BitTest 2 glitchMon 1 LockLoss 3 PSLmon 2 SegGener )

      Number of gds_trigger records = 34450

      Number of segments records = 489

    Notes on SeqInsert:

    1. Check SeqInsert state by typing 'SeqInsert check'. Possible returns:

                                      State is run   or 
      				State is idle  or 
      				State is error
                  
      If state is idle or error, examine the dmt log for errors; the test has to be restarted.
    2. To shutdown the test, type
      SeqInsert shutdown & 
      and kill off the tcl script.

    If there is a discrepancy search the logs for red balls to account for missing records.

    Also examine the ldas database web page for the number of processes, segments and gds_triggers inserted to make sure they match the expected number.

    If all the process and trigger data are inserted, the test passes. If not, the test fails and the errors in the logs should account for all data received at LDAS.