ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.TrigValSteering.CheckSteps.MessageCountStep Class Reference
Inheritance diagram for python.TrigValSteering.CheckSteps.MessageCountStep:
Collaboration diagram for python.TrigValSteering.CheckSteps.MessageCountStep:

Public Member Functions

def __init__ (self, name='MessageCount')
 
def configure (self, test)
 
def run (self, dry_run=False)
 

Public Attributes

 executable
 
 log_regex
 
 skip_logs
 
 start_pattern
 
 end_pattern
 
 print_on_fail
 
 thresholds
 
 auto_report_result
 
 depends_on_exec
 
 result
 

Detailed Description

Count messages printed inside event loop

Definition at line 621 of file CheckSteps.py.

Constructor & Destructor Documentation

◆ __init__()

def python.TrigValSteering.CheckSteps.MessageCountStep.__init__ (   self,
  name = 'MessageCount' 
)

Definition at line 624 of file CheckSteps.py.

624  def __init__(self, name='MessageCount'):
625  super(MessageCountStep, self).__init__(name)
626  self.executable = 'messageCounter.py'
627  self.log_regex = r'(athena\.(?!.*tail).*log$|athenaHLT:.*\.out$|^log\.(.*to.*|Derivation))'
628  self.skip_logs = []
629  self.start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'
630  self.end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'
631  self.print_on_fail = None
632  self.thresholds = {}
633  self.auto_report_result = True
634  self.depends_on_exec = True # skip if ExecSteps failed
635 

Member Function Documentation

◆ configure()

def python.TrigValSteering.CheckSteps.MessageCountStep.configure (   self,
  test 
)

Definition at line 636 of file CheckSteps.py.

636  def configure(self, test):
637  self.args += ' -s "{:s}"'.format(self.start_pattern)
638  self.args += ' -e "{:s}"'.format(self.end_pattern)
639  if self.print_on_fail is None:
640  self.print_on_fail = self.required
641  if self.print_on_fail:
642  self.args += ' --saveAll'
643 
644  max_events = test.exec_steps[0].max_events if isinstance(test.exec_steps[0], ExecStep) else 0
645  if 'WARNING' not in self.thresholds:
646  self.thresholds['WARNING'] = 0
647  if 'INFO' not in self.thresholds:
648  self.thresholds['INFO'] = max_events
649  if 'DEBUG' not in self.thresholds:
650  self.thresholds['DEBUG'] = 0
651  if 'VERBOSE' not in self.thresholds:
652  self.thresholds['VERBOSE'] = 0
653  if 'other' not in self.thresholds:
654  self.thresholds['other'] = max_events
655  super(MessageCountStep, self).configure(test)
656 

◆ run()

def python.TrigValSteering.CheckSteps.MessageCountStep.run (   self,
  dry_run = False 
)

Definition at line 657 of file CheckSteps.py.

657  def run(self, dry_run=False):
658  files = os.listdir('.')
659  r = re.compile(self.log_regex)
660  log_files = [f for f in filter(r.match, files) if f not in self.skip_logs]
661  if not log_files and not dry_run:
662  self.log.error('%s found no log files matching the pattern %s', self.name, self.log_regex)
663  self.result = 1
664  if self.auto_report_result:
665  self.report_result()
666  return self.result, '# (internal) {} -> failed'.format(self.name)
667  self.args += ' ' + ' '.join(log_files)
668  auto_report = self.auto_report_result
669  self.auto_report_result = False
670  ret, cmd = super(MessageCountStep, self).run(dry_run)
671  self.auto_report_result = auto_report
672  if ret != 0:
673  self.log.error('%s failed', self.name)
674  self.result = 1
675  if self.auto_report_result:
676  self.report_result()
677  return self.result, cmd
678 
679  for log_file in log_files:
680  json_file = 'MessageCount.{:s}.json'.format(log_file)
681  if self.print_on_fail:
682  all_json_file = 'Messages.{:s}.json'.format(log_file)
683  if not os.path.isfile(json_file):
684  self.log.warning('%s cannot open file %s', self.name, json_file)
685  with open(json_file) as f:
686  summary = json.load(f)
687  for level, threshold in self.thresholds.items():
688  if summary[level] > threshold:
689  self.result += 1
690  self.log.info(
691  '%s Number of %s messages %s in %s is higher than threshold %s',
692  self.name, level, summary[level], log_file, threshold)
693  if self.print_on_fail:
694  self.log.info('%s Printing all %s messages from %s', self.name, level, log_file)
695  with open(all_json_file) as af:
696  all_msg = json.load(af)
697  for msg in all_msg[level]:
698  print(msg.strip()) # noqa: ATL901
699 
700  if self.auto_report_result:
701  self.report_result()
702  return self.result, cmd
703 
704 

Member Data Documentation

◆ auto_report_result

python.TrigValSteering.CheckSteps.MessageCountStep.auto_report_result

Definition at line 633 of file CheckSteps.py.

◆ depends_on_exec

python.TrigValSteering.CheckSteps.MessageCountStep.depends_on_exec

Definition at line 634 of file CheckSteps.py.

◆ end_pattern

python.TrigValSteering.CheckSteps.MessageCountStep.end_pattern

Definition at line 630 of file CheckSteps.py.

◆ executable

python.TrigValSteering.CheckSteps.MessageCountStep.executable

Definition at line 626 of file CheckSteps.py.

◆ log_regex

python.TrigValSteering.CheckSteps.MessageCountStep.log_regex

Definition at line 627 of file CheckSteps.py.

◆ print_on_fail

python.TrigValSteering.CheckSteps.MessageCountStep.print_on_fail

Definition at line 631 of file CheckSteps.py.

◆ result

python.TrigValSteering.CheckSteps.MessageCountStep.result

Definition at line 663 of file CheckSteps.py.

◆ skip_logs

python.TrigValSteering.CheckSteps.MessageCountStep.skip_logs

Definition at line 628 of file CheckSteps.py.

◆ start_pattern

python.TrigValSteering.CheckSteps.MessageCountStep.start_pattern

Definition at line 629 of file CheckSteps.py.

◆ thresholds

python.TrigValSteering.CheckSteps.MessageCountStep.thresholds

Definition at line 632 of file CheckSteps.py.


The documentation for this class was generated from the following file:
vtune_athena.format
format
Definition: vtune_athena.py:14
configure
bool configure(asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > &tool, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronEffToolsHandles, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronSFToolsHandles, ToolHandleArray< CP::IMuonTriggerScaleFactors > &muonToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonEffToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonSFToolsHandles, const std::string &triggers, const std::map< std::string, std::string > &legsPerTool, unsigned long nToys, bool debug)
Definition: TrigGlobEffCorrValidation.cxx:514
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
covarianceTool.filter
filter
Definition: covarianceTool.py:514
run
Definition: run.py:1
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:71
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
error
Definition: IImpactPoint3dEstimator.h:70
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87