CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
evf::FastMonitoringService Class Reference

#include <FastMonitoringService.h>

Inheritance diagram for evf::FastMonitoringService:
evf::MicroStateService

Classes

struct  Encoding
 

Public Member Functions

void accumulateFileSize (unsigned int lumi, unsigned long fileSize)
 
 FastMonitoringService (const edm::ParameterSet &, edm::ActivityRegistry &)
 
bool getAbortFlagForLumi (unsigned int lumi)
 
unsigned int getEventsProcessedForLumi (unsigned int lumi, bool *abortFlag=nullptr)
 
std::string getRunDirName () const
 
void jobFailure ()
 
std::string makeInputLegendaJson ()
 
std::string makeModuleLegendaJson ()
 
std::string makePathLegendaJson ()
 
void postBeginJob ()
 
void postEndJob ()
 
void postEvent (edm::StreamContext const &)
 
void postGlobalBeginRun (edm::GlobalContext const &)
 
void postGlobalEndLumi (edm::GlobalContext const &)
 
void postModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postSourceEvent (edm::StreamID)
 
void postStreamBeginLumi (edm::StreamContext const &)
 
void postStreamEndLumi (edm::StreamContext const &)
 
void preallocate (edm::service::SystemBounds const &)
 
void preBeginJob (edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &pc)
 
void preEvent (edm::StreamContext const &)
 
void preGlobalBeginLumi (edm::GlobalContext const &)
 
void preGlobalEarlyTermination (edm::GlobalContext const &, edm::TerminationOrigin)
 
void preGlobalEndLumi (edm::GlobalContext const &)
 
void preModuleBeginJob (edm::ModuleDescription const &)
 
void preModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void prePathEvent (edm::StreamContext const &, edm::PathContext const &)
 
void preSourceEarlyTermination (edm::TerminationOrigin)
 
void preSourceEvent (edm::StreamID)
 
void preStreamBeginLumi (edm::StreamContext const &)
 
void preStreamEarlyTermination (edm::StreamContext const &, edm::TerminationOrigin)
 
void preStreamEndLumi (edm::StreamContext const &)
 
void reportLockWait (unsigned int ls, double waitTime, unsigned int lockCount)
 
void setExceptionDetected (unsigned int ls)
 
void setInputSource (FedRawDataInputSource *inputSource)
 
void setInState (FastMonitoringThread::InputState inputState)
 
void setInStateSup (FastMonitoringThread::InputState inputState)
 
void setMicroState (edm::StreamID, MicroStateService::Microstate) override
 
void setMicroState (MicroStateService::Microstate) override
 
bool shouldWriteFiles (unsigned int lumi, unsigned int *proc=nullptr)
 
void startedLookingForFile ()
 
void stoppedLookingForFile (unsigned int lumi)
 
 ~FastMonitoringService () override
 
- Public Member Functions inherited from evf::MicroStateService
virtual std::string getMicroState1 ()
 
virtual const std::string & getMicroState2 ()
 
 MicroStateService (const edm::ParameterSet &, edm::ActivityRegistry &)
 
virtual ~MicroStateService ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Static Public Attributes

static const std::string inputStateNames [FastMonitoringThread::inCOUNT]
 
static const std::string macroStateNames [FastMonitoringThread::MCOUNT]
 
static const std::string nopath_ = "NoPath"
 
- Static Public Attributes inherited from evf::MicroStateService
static const edm::ModuleDescription reservedMicroStateNames [mCOUNT]
 

Private Member Functions

void doSnapshot (const unsigned int ls, const bool isGlobalEOL)
 
void doStreamEOLSnapshot (const unsigned int ls, const unsigned int streamID)
 
void dowork ()
 

Private Attributes

std::map< unsigned int, unsigned long > accuSize_
 
std::map< unsigned int, double > avgLeadTime_
 
std::vector< std::atomic< bool > * > collectedPathList_
 
Encoding encModule_
 
std::vector< EncodingencPath_
 
std::vector< ContainableAtomic< unsigned int > > eventCountForPathInit_
 
bool exception_detected_ = false
 
std::vector< unsigned int > exceptionInLS_
 
std::string fastMicrostateDefPath_
 
unsigned int fastMonIntervals_
 
std::string fastName_
 
std::string fastPath_
 
std::vector< std::string > fastPathList_
 
timeval fileLookStart_
 
timeval fileLookStop_
 
bool filePerFwkStream_
 
std::map< unsigned int, unsigned int > filesProcessedDuringLumi_
 
std::vector< unsigned long > firstEventId_
 
FastMonitoringThread fmt_
 
std::string inputLegendFileJson_
 
FedRawDataInputSourceinputSource_ = nullptr
 
std::atomic< FastMonitoringThread::InputStateinputState_ {FastMonitoringThread::InputState::inInit}
 
std::atomic< FastMonitoringThread::InputStateinputSupervisorState_ {FastMonitoringThread::InputState::inInit}
 
std::atomic< bool > isInitTransition_
 
unsigned int lastGlobalLumi_
 
std::vector< double > leadTimes_
 
std::map< unsigned int, std::pair< double, unsigned int > > lockStatsDuringLumi_
 
unsigned int lumiFromSource_
 
std::map< unsigned int, timeval > lumiStartTime_
 
std::atomic< FastMonitoringThread::Macrostatemacrostate_
 
std::vector< ContainableAtomic< const void * > > microstate_
 
std::string microstateDefPath_
 
std::vector< ContainableAtomic< const void * > > ministate_
 
std::string moduleLegendFile_
 
std::string moduleLegendFileJson_
 
std::atomic< bool > monInit_
 
unsigned int nOutputModules_ = 0
 
unsigned int nStreams_
 
unsigned int nThreads_
 
std::string pathLegendFile_
 
std::string pathLegendFileJson_
 
bool pathLegendWritten_ = false
 
std::vector< bool > pathNamesReady_
 
std::map< unsigned int, std::pair< unsigned int, bool > > processedEventsPerLumi_
 
boost::filesystem::path runDirectory_
 
int sleepTime_
 
std::string slowName_
 
unsigned int snapCounter_ = 0
 
std::vector< std::atomic< bool > * > streamCounterUpdating_
 
bool threadIDAvailable_ = false
 
std::vector< ContainableAtomic< const void * > > threadMicrostate_
 
std::atomic< unsigned long > totalEventsProcessed_
 
boost::filesystem::path workingDirectory_
 

Additional Inherited Members

- Public Types inherited from evf::MicroStateService
enum  Microstate {
  mInvalid = 0, mIdle, mFwkOvhSrc, mFwkOvhMod,
  mFwkEoL, mInput, mDqm, mBoL,
  mEoL, mGlobEoL, mCOUNT
}
 
- Static Protected Attributes inherited from evf::MicroStateService
static const std::string default_return_ = "NotImplemented"
 

Detailed Description

Definition at line 69 of file FastMonitoringService.h.

Constructor & Destructor Documentation

◆ FastMonitoringService()

evf::FastMonitoringService::FastMonitoringService ( const edm::ParameterSet iPS,
edm::ActivityRegistry reg 
)

Definition at line 112 of file FastMonitoringService.cc.

113  : MicroStateService(iPS, reg),
115  nStreams_(0) //until initialized
116  ,
117  sleepTime_(iPS.getUntrackedParameter<int>("sleepTime", 1)),
118  fastMonIntervals_(iPS.getUntrackedParameter<unsigned int>("fastMonIntervals", 2)),
119  fastName_("fastmoni"),
120  slowName_("slowmoni"),
121  filePerFwkStream_(iPS.getUntrackedParameter<bool>("filePerFwkStream", false)),
123  reg.watchPreallocate(this, &FastMonitoringService::preallocate); //receiving information on number of threads
125 
130 
134 
139 
141 
142  reg.watchPreEvent(this, &FastMonitoringService::preEvent); //stream
144 
145  reg.watchPreSourceEvent(this, &FastMonitoringService::preSourceEvent); //source (with streamID of requestor)
147 
148  reg.watchPreModuleEvent(this, &FastMonitoringService::preModuleEvent); //should be stream
150 
154 
155  //find microstate definition path (required by the module)
156  struct stat statbuf;
157  std::string microstateBaseSuffix = "src/EventFilter/Utilities/plugins/microstatedef.jsd";
158  std::string microstatePath = std::string(std::getenv("CMSSW_BASE")) + "/" + microstateBaseSuffix;
159  if (stat(microstatePath.c_str(), &statbuf)) {
160  microstatePath = std::string(std::getenv("CMSSW_RELEASE_BASE")) + "/" + microstateBaseSuffix;
161  if (stat(microstatePath.c_str(), &statbuf)) {
162  microstatePath = microstateBaseSuffix;
163  if (stat(microstatePath.c_str(), &statbuf))
164  throw cms::Exception("FastMonitoringService") << "microstate definition file not found";
165  }
166  }
167  fastMicrostateDefPath_ = microstateDefPath_ = microstatePath;
168  }

References Exception, fastMicrostateDefPath_, jobFailure(), microstateDefPath_, postBeginJob(), postEndJob(), postEvent(), postGlobalEndLumi(), postModuleEvent(), postSourceEvent(), postStreamBeginLumi(), postStreamEndLumi(), preallocate(), preBeginJob(), preEvent(), preGlobalBeginLumi(), preGlobalEarlyTermination(), preGlobalEndLumi(), preModuleBeginJob(), preModuleEvent(), prePathEvent(), preSourceEarlyTermination(), preSourceEvent(), preStreamBeginLumi(), preStreamEarlyTermination(), preStreamEndLumi(), hgcalPlots::stat, AlCaHLTBitMon_QueryRunRegistry::string, edm::ActivityRegistry::watchJobFailure(), edm::ActivityRegistry::watchPostBeginJob(), edm::ActivityRegistry::watchPostEndJob(), edm::ActivityRegistry::watchPostEvent(), edm::ActivityRegistry::watchPostGlobalEndLumi(), edm::ActivityRegistry::watchPostModuleEvent(), edm::ActivityRegistry::watchPostSourceEvent(), edm::ActivityRegistry::watchPostStreamBeginLumi(), edm::ActivityRegistry::watchPostStreamEndLumi(), edm::ActivityRegistry::watchPreallocate(), edm::ActivityRegistry::watchPreBeginJob(), edm::ActivityRegistry::watchPreEvent(), edm::ActivityRegistry::watchPreGlobalBeginLumi(), edm::ActivityRegistry::watchPreGlobalEarlyTermination(), edm::ActivityRegistry::watchPreGlobalEndLumi(), edm::ActivityRegistry::watchPreModuleBeginJob(), edm::ActivityRegistry::watchPreModuleEvent(), edm::ActivityRegistry::watchPrePathEvent(), edm::ActivityRegistry::watchPreSourceEarlyTermination(), edm::ActivityRegistry::watchPreSourceEvent(), edm::ActivityRegistry::watchPreStreamBeginLumi(), edm::ActivityRegistry::watchPreStreamEarlyTermination(), and edm::ActivityRegistry::watchPreStreamEndLumi().

◆ ~FastMonitoringService()

evf::FastMonitoringService::~FastMonitoringService ( )
override

Definition at line 170 of file FastMonitoringService.cc.

170 {}

Member Function Documentation

◆ accumulateFileSize()

void evf::FastMonitoringService::accumulateFileSize ( unsigned int  lumi,
unsigned long  fileSize 
)

Definition at line 652 of file FastMonitoringService.cc.

652  {
653  std::lock_guard<std::mutex> lock(fmt_.monlock_);
654 
655  if (accuSize_.find(lumi) == accuSize_.end())
656  accuSize_[lumi] = fileSize;
657  else
658  accuSize_[lumi] += fileSize;
659 
662  else
664  }

References accuSize_, filesProcessedDuringLumi_, fmt_, CommonMethods::lock(), BXlumiParameters_cfi::lumi, and evf::FastMonitoringThread::monlock_.

Referenced by evf::EvFDaqDirector::bumpFile().

◆ doSnapshot()

void evf::FastMonitoringService::doSnapshot ( const unsigned int  ls,
const bool  isGlobalEOL 
)
private

Definition at line 741 of file FastMonitoringService.cc.

741  {
742  // update macrostate
744 
745  std::vector<const void*> microstateCopy(microstate_.begin(), microstate_.end());
746 
747  if (!isInitTransition_) {
748  auto itd = avgLeadTime_.find(ls);
749  if (itd != avgLeadTime_.end())
750  fmt_.m_data.fastAvgLeadTimeJ_ = itd->second;
751  else
753 
754  auto iti = filesProcessedDuringLumi_.find(ls);
755  if (iti != filesProcessedDuringLumi_.end())
756  fmt_.m_data.fastFilesProcessedJ_ = iti->second;
757  else
759 
760  auto itrd = lockStatsDuringLumi_.find(ls);
761  if (itrd != lockStatsDuringLumi_.end()) {
762  fmt_.m_data.fastLockWaitJ_ = itrd->second.first;
763  fmt_.m_data.fastLockCountJ_ = itrd->second.second;
764  } else {
767  }
768  }
769 
770  for (unsigned int i = 0; i < nStreams_; i++) {
772  fmt_.m_data.microstateEncoded_[i] = encModule_.encode(microstateCopy[i]);
773  }
774 
775  bool inputStatePerThread = false;
776 
778  switch (inputSupervisorState_) {
781  break;
784  break;
787  break;
790  break;
793  break;
796  break;
799  break;
802  break;
805  break;
808  break;
811  break;
814  break;
817  break;
820  break;
823  break;
824  default:
826  }
828  switch (inputSupervisorState_) {
831  break;
834  break;
837  break;
840  break;
843  break;
846  break;
849  break;
852  break;
855  break;
858  break;
861  break;
864  break;
867  break;
870  break;
873  break;
874  default:
876  }
878  inputStatePerThread = true;
879  for (unsigned int i = 0; i < nStreams_; i++) {
880  if (microstateCopy[i] == &reservedMicroStateNames[mIdle])
882  else if (microstateCopy[i] == &reservedMicroStateNames[mEoL] ||
883  microstateCopy[i] == &reservedMicroStateNames[mFwkEoL])
885  else
887  }
889  inputStatePerThread = true;
890  for (unsigned int i = 0; i < nStreams_; i++) {
891  if (microstateCopy[i] == &reservedMicroStateNames[mEoL] ||
892  microstateCopy[i] == &reservedMicroStateNames[mFwkEoL])
894  }
895  } else
897 
898  //this is same for all streams
899  if (!inputStatePerThread)
900  for (unsigned int i = 1; i < nStreams_; i++)
902 
903  if (isGlobalEOL) { //only update global variables
904  fmt_.jsonMonitor_->snapGlobal(ls);
905  } else
906  fmt_.jsonMonitor_->snap(ls);
907  }

References avgLeadTime_, encModule_, evf::FastMonitoringService::Encoding::encode(), encPath_, evf::FastMonitoringThread::MonitorData::fastAvgLeadTimeJ_, evf::FastMonitoringThread::MonitorData::fastFilesProcessedJ_, evf::FastMonitoringThread::MonitorData::fastLockCountJ_, evf::FastMonitoringThread::MonitorData::fastLockWaitJ_, evf::FastMonitoringThread::MonitorData::fastMacrostateJ_, filesProcessedDuringLumi_, fmt_, mps_fire::i, evf::FastMonitoringThread::inNewLumi, evf::FastMonitoringThread::inNoRequest, evf::FastMonitoringThread::inNoRequestWithEoLThreads, evf::FastMonitoringThread::inNoRequestWithIdleThreads, evf::FastMonitoringThread::MonitorData::inputState_, inputState_, inputSupervisorState_, evf::FastMonitoringThread::inRunEnd, evf::FastMonitoringThread::inSupBusy, evf::FastMonitoringThread::inSupFileLimit, evf::FastMonitoringThread::inSupLockPolling, evf::FastMonitoringThread::inSupLockPollingCopying, evf::FastMonitoringThread::inSupNewFile, evf::FastMonitoringThread::inSupNewFileWaitChunk, evf::FastMonitoringThread::inSupNewFileWaitChunkCopying, evf::FastMonitoringThread::inSupNewFileWaitThread, evf::FastMonitoringThread::inSupNewFileWaitThreadCopying, evf::FastMonitoringThread::inSupNoFile, evf::FastMonitoringThread::inSupWaitFreeChunk, evf::FastMonitoringThread::inSupWaitFreeChunkCopying, evf::FastMonitoringThread::inSupWaitFreeThread, evf::FastMonitoringThread::inSupWaitFreeThreadCopying, evf::FastMonitoringThread::inWaitChunk, evf::FastMonitoringThread::inWaitChunk_busy, evf::FastMonitoringThread::inWaitChunk_fileLimit, evf::FastMonitoringThread::inWaitChunk_lockPolling, evf::FastMonitoringThread::inWaitChunk_lockPollingCopying, evf::FastMonitoringThread::inWaitChunk_newFile, evf::FastMonitoringThread::inWaitChunk_newFileWaitChunk, evf::FastMonitoringThread::inWaitChunk_newFileWaitChunkCopying, evf::FastMonitoringThread::inWaitChunk_newFileWaitThread, evf::FastMonitoringThread::inWaitChunk_newFileWaitThreadCopying, evf::FastMonitoringThread::inWaitChunk_noFile, evf::FastMonitoringThread::inWaitChunk_runEnd, evf::FastMonitoringThread::inWaitChunk_waitFreeChunk, evf::FastMonitoringThread::inWaitChunk_waitFreeChunkCopying, evf::FastMonitoringThread::inWaitChunk_waitFreeThread, evf::FastMonitoringThread::inWaitChunk_waitFreeThreadCopying, evf::FastMonitoringThread::inWaitInput, evf::FastMonitoringThread::inWaitInput_busy, evf::FastMonitoringThread::inWaitInput_fileLimit, evf::FastMonitoringThread::inWaitInput_lockPolling, evf::FastMonitoringThread::inWaitInput_lockPollingCopying, evf::FastMonitoringThread::inWaitInput_newFile, evf::FastMonitoringThread::inWaitInput_newFileWaitChunk, evf::FastMonitoringThread::inWaitInput_newFileWaitChunkCopying, evf::FastMonitoringThread::inWaitInput_newFileWaitThread, evf::FastMonitoringThread::inWaitInput_newFileWaitThreadCopying, evf::FastMonitoringThread::inWaitInput_noFile, evf::FastMonitoringThread::inWaitInput_runEnd, evf::FastMonitoringThread::inWaitInput_waitFreeChunk, evf::FastMonitoringThread::inWaitInput_waitFreeChunkCopying, evf::FastMonitoringThread::inWaitInput_waitFreeThread, evf::FastMonitoringThread::inWaitInput_waitFreeThreadCopying, isInitTransition_, evf::FastMonitoringThread::jsonMonitor_, lockStatsDuringLumi_, eostools::ls(), evf::FastMonitoringThread::m_data, macrostate_, evf::MicroStateService::mEoL, evf::MicroStateService::mFwkEoL, microstate_, evf::FastMonitoringThread::MonitorData::microstateEncoded_, evf::MicroStateService::mIdle, ministate_, evf::FastMonitoringThread::MonitorData::ministateEncoded_, nStreams_, and evf::MicroStateService::reservedMicroStateNames.

Referenced by dowork(), and preGlobalEndLumi().

◆ doStreamEOLSnapshot()

void evf::FastMonitoringService::doStreamEOLSnapshot ( const unsigned int  ls,
const unsigned int  streamID 
)
inlineprivate

Definition at line 185 of file FastMonitoringService.h.

185  {
186  //pick up only event count here
187  fmt_.jsonMonitor_->snapStreamAtomic(ls, streamID);
188  }

References fmt_, evf::FastMonitoringThread::jsonMonitor_, and eostools::ls().

Referenced by preStreamEndLumi().

◆ dowork()

void evf::FastMonitoringService::dowork ( )
inlineprivate

Definition at line 190 of file FastMonitoringService.h.

190  { // the function to be called in the thread. Thread completes when function returns.
191  monInit_.exchange(true, std::memory_order_acquire);
192  while (!fmt_.m_stoprequest) {
193  edm::LogInfo("FastMonitoringService")
194  << "Current states: Ms=" << fmt_.m_data.fastMacrostateJ_.value()
195  << " ms=" << encPath_[0].encode(ministate_[0]) << " us=" << encModule_.encode(microstate_[0])
196  << " is=" << inputStateNames[inputState_] << " iss=" << inputStateNames[inputSupervisorState_] << std::endl;
197 
198  {
199  std::lock_guard<std::mutex> lock(fmt_.monlock_);
200 
201  doSnapshot(lastGlobalLumi_, false);
202 
204  if (filePerFwkStream_) {
205  std::vector<std::string> CSVv;
206  for (unsigned int i = 0; i < nStreams_; i++) {
207  CSVv.push_back(fmt_.jsonMonitor_->getCSVString((int)i));
208  }
209  fmt_.monlock_.unlock();
210  for (unsigned int i = 0; i < nStreams_; i++) {
211  if (!CSVv[i].empty())
212  fmt_.jsonMonitor_->outputCSV(fastPathList_[i], CSVv[i]);
213  }
214  } else {
215  std::string CSV = fmt_.jsonMonitor_->getCSVString();
216  //release mutex before writing out fast path file
217  fmt_.monlock_.unlock();
218  if (!CSV.empty())
219  fmt_.jsonMonitor_->outputCSV(fastPath_, CSV);
220  }
221  }
222 
223  snapCounter_++;
224  }
225  ::sleep(sleepTime_);
226  }
227  }

References doSnapshot(), relativeConstraints::empty, encModule_, evf::FastMonitoringService::Encoding::encode(), encPath_, evf::FastMonitoringThread::MonitorData::fastMacrostateJ_, fastMonIntervals_, fastPath_, fastPathList_, filePerFwkStream_, fmt_, mps_fire::i, inputState_, inputStateNames, inputSupervisorState_, evf::FastMonitoringThread::jsonMonitor_, lastGlobalLumi_, CommonMethods::lock(), evf::FastMonitoringThread::m_data, evf::FastMonitoringThread::m_stoprequest, microstate_, ministate_, monInit_, evf::FastMonitoringThread::monlock_, nStreams_, sleepTime_, snapCounter_, AlCaHLTBitMon_QueryRunRegistry::string, and jsoncollector::IntJ::value().

Referenced by preBeginJob().

◆ fillDescriptions()

void evf::FastMonitoringService::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 172 of file FastMonitoringService.cc.

172  {
174  desc.setComment("Service for File-based DAQ monitoring and event accounting");
175  desc.addUntracked<int>("sleepTime", 1)->setComment("Sleep time of the monitoring thread");
176  desc.addUntracked<unsigned int>("fastMonIntervals", 2)
177  ->setComment("Modulo of sleepTime intervals on which fastmon file is written out");
178  desc.addUntracked<bool>("filePerFwkStream", false)
179  ->setComment("Switches on monitoring output per framework stream");
180  desc.setAllowAnything();
181  descriptions.add("FastMonitoringService", desc);
182  }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addUntracked(), edm::ParameterSetDescription::setAllowAnything(), and edm::ParameterSetDescription::setComment().

◆ getAbortFlagForLumi()

bool evf::FastMonitoringService::getAbortFlagForLumi ( unsigned int  lumi)

Definition at line 726 of file FastMonitoringService.cc.

726  {
727  std::lock_guard<std::mutex> lock(fmt_.monlock_);
728 
729  auto it = processedEventsPerLumi_.find(lumi);
730  if (it != processedEventsPerLumi_.end()) {
731  unsigned int abortFlag = it->second.second;
732  return abortFlag;
733  } else {
734  throw cms::Exception("FastMonitoringService")
735  << "output module wants already deleted (or never reported by SOURCE) lumisection status for LUMI -: "
736  << lumi;
737  return false;
738  }
739  }

References Exception, fmt_, CommonMethods::lock(), BXlumiParameters_cfi::lumi, evf::FastMonitoringThread::monlock_, and processedEventsPerLumi_.

Referenced by shouldWriteFiles().

◆ getEventsProcessedForLumi()

unsigned int evf::FastMonitoringService::getEventsProcessedForLumi ( unsigned int  lumi,
bool *  abortFlag = nullptr 
)

Definition at line 708 of file FastMonitoringService.cc.

708  {
709  std::lock_guard<std::mutex> lock(fmt_.monlock_);
710 
711  auto it = processedEventsPerLumi_.find(lumi);
712  if (it != processedEventsPerLumi_.end()) {
713  unsigned int proc = it->second.first;
714  if (abortFlag)
715  *abortFlag = it->second.second;
716  return proc;
717  } else {
718  throw cms::Exception("FastMonitoringService")
719  << "output module wants already deleted (or never reported by SOURCE) lumisection event count for LUMI -: "
720  << lumi;
721  return 0;
722  }
723  }

References Exception, fmt_, CommonMethods::lock(), BXlumiParameters_cfi::lumi, evf::FastMonitoringThread::monlock_, ValidateTausOnZEEFastSim_cff::proc, and processedEventsPerLumi_.

Referenced by dqm::DQMFileSaverPB::fillJson(), dqmfilesaver::fillJson(), evf::EvFOutputModule::globalEndLuminosityBlock(), dqm::DQMFileSaverPB::saveLumi(), and shouldWriteFiles().

◆ getRunDirName()

std::string evf::FastMonitoringService::getRunDirName ( ) const
inline

Definition at line 177 of file FastMonitoringService.h.

177 { return runDirectory_.stem().string(); }

References runDirectory_.

◆ jobFailure()

void evf::FastMonitoringService::jobFailure ( )

◆ makeInputLegendaJson()

std::string evf::FastMonitoringService::makeInputLegendaJson ( )

Definition at line 213 of file FastMonitoringService.cc.

213  {
214  Json::Value legendaVector(Json::arrayValue);
215  for (int i = 0; i < FastMonitoringThread::inCOUNT; i++)
216  legendaVector.append(Json::Value(inputStateNames[i]));
217  Json::Value moduleLegend;
218  moduleLegend["names"] = legendaVector;
220  return writer.write(moduleLegend);
221  }

References Json::Value::append(), Json::arrayValue, mps_fire::i, evf::FastMonitoringThread::inCOUNT, inputStateNames, and cscNeutronWriter_cfi::writer.

Referenced by postBeginJob().

◆ makeModuleLegendaJson()

std::string evf::FastMonitoringService::makeModuleLegendaJson ( )

Definition at line 196 of file FastMonitoringService.cc.

196  {
197  Json::Value legendaVector(Json::arrayValue);
198  for (int i = 0; i < encModule_.current_; i++)
199  legendaVector.append(
200  Json::Value((static_cast<const edm::ModuleDescription*>(encModule_.decode(i)))->moduleLabel()));
201  Json::Value valReserved(nReservedModules);
202  Json::Value valSpecial(nSpecialModules);
203  Json::Value valOutputModules(nOutputModules_);
204  Json::Value moduleLegend;
205  moduleLegend["names"] = legendaVector;
206  moduleLegend["reserved"] = valReserved;
207  moduleLegend["special"] = valSpecial;
208  moduleLegend["output"] = valOutputModules;
210  return writer.write(moduleLegend);
211  }

References Json::Value::append(), Json::arrayValue, evf::FastMonitoringService::Encoding::current_, evf::FastMonitoringService::Encoding::decode(), encModule_, mps_fire::i, nOutputModules_, nReservedModules, nSpecialModules, and cscNeutronWriter_cfi::writer.

Referenced by postBeginJob().

◆ makePathLegendaJson()

std::string evf::FastMonitoringService::makePathLegendaJson ( )

Definition at line 184 of file FastMonitoringService.cc.

184  {
185  Json::Value legendaVector(Json::arrayValue);
186  for (int i = 0; i < encPath_[0].current_; i++)
187  legendaVector.append(Json::Value(*(static_cast<const std::string*>(encPath_[0].decode(i)))));
188  Json::Value valReserved(nReservedPaths);
189  Json::Value pathLegend;
190  pathLegend["names"] = legendaVector;
191  pathLegend["reserved"] = valReserved;
193  return writer.write(pathLegend);
194  }

References Json::Value::append(), Json::arrayValue, encPath_, mps_fire::i, nReservedPaths, and cscNeutronWriter_cfi::writer.

Referenced by prePathEvent().

◆ postBeginJob()

void evf::FastMonitoringService::postBeginJob ( )

◆ postEndJob()

void evf::FastMonitoringService::postEndJob ( )

◆ postEvent()

void evf::FastMonitoringService::postEvent ( edm::StreamContext const &  sc)

Definition at line 606 of file FastMonitoringService.cc.

606  {
607  microstate_[sc.streamID()] = &reservedMicroStateNames[mIdle];
608 
609  ministate_[sc.streamID()] = &nopath_;
610 
611  (*(fmt_.m_data.processed_[sc.streamID()]))++;
612  eventCountForPathInit_[sc.streamID()].m_value++;
613 
614  //fast path counter (events accumulated in a run)
615  unsigned long res = totalEventsProcessed_.fetch_add(1, std::memory_order_relaxed);
617  //fmt_.m_data.fastPathProcessedJ_ = totalEventsProcessed_.load(std::memory_order_relaxed);
618  }

References eventCountForPathInit_, evf::FastMonitoringThread::MonitorData::fastPathProcessedJ_, fmt_, evf::FastMonitoringThread::m_data, microstate_, evf::MicroStateService::mIdle, ministate_, nopath_, evf::FastMonitoringThread::MonitorData::processed_, evf::MicroStateService::reservedMicroStateNames, edm::StreamContext::streamID(), and totalEventsProcessed_.

Referenced by FastMonitoringService().

◆ postGlobalBeginRun()

void evf::FastMonitoringService::postGlobalBeginRun ( edm::GlobalContext const &  gc)

◆ postGlobalEndLumi()

void evf::FastMonitoringService::postGlobalEndLumi ( edm::GlobalContext const &  gc)

Definition at line 533 of file FastMonitoringService.cc.

533  {
534  std::lock_guard<std::mutex> lock(fmt_.monlock_);
535  unsigned int lumi = gc.luminosityBlockID().luminosityBlock();
536  //LS monitoring snapshot with input source data has been taken in previous callback
537  avgLeadTime_.erase(lumi);
539  lockStatsDuringLumi_.erase(lumi);
540 
541  //output module already used this in end lumi (this could be migrated to EvFDaqDirector as it is essential for FFF bookkeeping)
543  }

References avgLeadTime_, filesProcessedDuringLumi_, fmt_, CommonMethods::lock(), lockStatsDuringLumi_, edm::LuminosityBlockID::luminosityBlock(), edm::GlobalContext::luminosityBlockID(), evf::FastMonitoringThread::monlock_, and processedEventsPerLumi_.

Referenced by FastMonitoringService().

◆ postModuleEvent()

void evf::FastMonitoringService::postModuleEvent ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 632 of file FastMonitoringService.cc.

632  {
633  //microstate_[sc.streamID().value()] = (void*)(mcc.moduleDescription());
634  microstate_[sc.streamID().value()] = &reservedMicroStateNames[mFwkOvhMod];
635  }

References evf::MicroStateService::mFwkOvhMod, microstate_, evf::MicroStateService::reservedMicroStateNames, edm::StreamContext::streamID(), and edm::StreamID::value().

Referenced by FastMonitoringService().

◆ postSourceEvent()

void evf::FastMonitoringService::postSourceEvent ( edm::StreamID  sid)

◆ postStreamBeginLumi()

void evf::FastMonitoringService::postStreamBeginLumi ( edm::StreamContext const &  sc)

◆ postStreamEndLumi()

void evf::FastMonitoringService::postStreamEndLumi ( edm::StreamContext const &  sc)

◆ preallocate()

void evf::FastMonitoringService::preallocate ( edm::service::SystemBounds const &  bounds)

Definition at line 223 of file FastMonitoringService.cc.

223  {
224  nStreams_ = bounds.maxNumberOfStreams();
225  nThreads_ = bounds.maxNumberOfThreads();
226  //this should already be >=1
227  if (nStreams_ == 0)
228  nStreams_ = 1;
229  if (nThreads_ == 0)
230  nThreads_ = 1;
231  }

References edm::service::SystemBounds::maxNumberOfStreams(), edm::service::SystemBounds::maxNumberOfThreads(), nStreams_, and nThreads_.

Referenced by FastMonitoringService().

◆ preBeginJob()

void evf::FastMonitoringService::preBeginJob ( edm::PathsAndConsumesOfModulesBase const &  ,
edm::ProcessContext const &  pc 
)

Definition at line 233 of file FastMonitoringService.cc.

233  {
234  // FIND RUN DIRECTORY
235  // The run dir should be set via the configuration of EvFDaqDirector
236 
237  if (edm::Service<evf::EvFDaqDirector>().operator->() == nullptr) {
238  throw cms::Exception("FastMonitoringService") << "EvFDaqDirector is not present";
239  }
240  boost::filesystem::path runDirectory{edm::Service<evf::EvFDaqDirector>()->baseRunDir()};
241  workingDirectory_ = runDirectory_ = runDirectory;
242  workingDirectory_ /= "mon";
243 
244  if (!boost::filesystem::is_directory(workingDirectory_)) {
245  LogDebug("FastMonitoringService") << "<MON> DIR NOT FOUND! Trying to create -: " << workingDirectory_.string();
246  boost::filesystem::create_directories(workingDirectory_);
247  if (!boost::filesystem::is_directory(workingDirectory_))
248  edm::LogWarning("FastMonitoringService") << "Unable to create <MON> DIR -: " << workingDirectory_.string()
249  << ". No monitoring data will be written.";
250  }
251 
252  std::ostringstream fastFileName;
253 
254  fastFileName << fastName_ << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".fast";
256  fast /= fastFileName.str();
257  fastPath_ = fast.string();
258  if (filePerFwkStream_)
259  for (unsigned int i = 0; i < nStreams_; i++) {
260  std::ostringstream fastFileNameTid;
261  fastFileNameTid << fastName_ << "_pid" << std::setfill('0') << std::setw(5) << getpid() << "_tid" << i
262  << ".fast";
264  fastTid /= fastFileNameTid.str();
265  fastPathList_.push_back(fastTid.string());
266  }
267 
268  std::ostringstream moduleLegFile;
269  std::ostringstream moduleLegFileJson;
270  moduleLegFile << "microstatelegend_pid" << std::setfill('0') << std::setw(5) << getpid() << ".leg";
271  moduleLegFileJson << "microstatelegend_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn";
272  moduleLegendFile_ = (workingDirectory_ / moduleLegFile.str()).string();
273  moduleLegendFileJson_ = (workingDirectory_ / moduleLegFileJson.str()).string();
274 
275  std::ostringstream pathLegFile;
276  std::ostringstream pathLegFileJson;
277  pathLegFile << "pathlegend_pid" << std::setfill('0') << std::setw(5) << getpid() << ".leg";
278  pathLegendFile_ = (workingDirectory_ / pathLegFile.str()).string();
279  pathLegFileJson << "pathlegend_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn";
280  pathLegendFileJson_ = (workingDirectory_ / pathLegFileJson.str()).string();
281 
282  std::ostringstream inputLegFileJson;
283  inputLegFileJson << "inputlegend_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn";
284  inputLegendFileJson_ = (workingDirectory_ / inputLegFileJson.str()).string();
285 
286  LogDebug("FastMonitoringService") << "Initializing FastMonitor with microstate def path -: " << microstateDefPath_;
287  //<< encPath_.current_ + 1 << " " << encModule_.current_ + 1
288 
289  /*
290  * initialize the fast monitor with:
291  * vector of pointers to monitorable parameters
292  * path to definition
293  *
294  */
295 
297 
298  for (unsigned int i = 0; i < (mCOUNT); i++)
299  encModule_.updateReserved(static_cast<const void*>(reservedMicroStateNames + i));
301 
302  for (unsigned int i = 0; i < nStreams_; i++) {
303  ministate_.emplace_back(&nopath_);
305 
306  //for synchronization
307  streamCounterUpdating_.push_back(new std::atomic<bool>(false));
308 
309  //path (mini) state
310  encPath_.emplace_back(0);
311  encPath_[i].update(static_cast<const void*>(&nopath_));
312  eventCountForPathInit_.push_back(0);
313  firstEventId_.push_back(0);
314  collectedPathList_.push_back(new std::atomic<bool>(false));
315  }
316  //for (unsigned int i=0;i<nThreads_;i++)
317  // threadMicrostate_.push_back(&reservedMicroStateNames[mInvalid]);
318 
319  //initial size until we detect number of bins
324 
325  lastGlobalLumi_ = 0;
326  isInitTransition_ = true;
327  lumiFromSource_ = 0;
328 
329  //startup monitoring
331  fmt_.jsonMonitor_->setNStreams(nStreams_);
333  monInit_.store(false, std::memory_order_release);
335 
336  //this definition needs: #include "tbb/compat/thread"
337  //however this would results in TBB imeplementation replacing std::thread
338  //(both supposedly call pthread_self())
339  //number of threads created in process could be obtained from /proc,
340  //assuming that all posix threads are true kernel threads capable of running in parallel
341 
342  //#if TBB_IMPLEMENT_CPP0X
344  //threadIDAvailable_=true;
345  //#endif
346  }

References collectedPathList_, evf::FastMonitoringService::Encoding::completeReservedWithDummies(), dowork(), encModule_, encPath_, eventCountForPathInit_, Exception, fastMicrostateDefPath_, fastName_, fastPath_, fastPathList_, filePerFwkStream_, firstEventId_, fmt_, mps_fire::i, evf::FastMonitoringThread::inCOUNT, inputLegendFileJson_, evf::FastMonitoringThread::MonitorData::inputstateBins_, isInitTransition_, evf::FastMonitoringThread::jsonMonitor_, lastGlobalLumi_, LogDebug, lumiFromSource_, evf::FastMonitoringThread::m_data, macrostate_, evf::FastMonitoringThread::MonitorData::macrostateBins_, evf::FastMonitoringThread::MCOUNT, evf::MicroStateService::mCOUNT, microstate_, evf::FastMonitoringThread::MonitorData::microstateBins_, microstateDefPath_, ministate_, evf::FastMonitoringThread::MonitorData::ministateBins_, evf::MicroStateService::mInvalid, moduleLegendFile_, moduleLegendFileJson_, monInit_, nopath_, nStreams_, nThreads_, Utilities::operator, castor_dqm_sourceclient_file_cfg::path, pathLegendFile_, pathLegendFileJson_, evf::FastMonitoringThread::MonitorData::registerVariables(), evf::MicroStateService::reservedMicroStateNames, evf::FastMonitoringThread::resetFastMonitor(), runDirectory_, evf::FastMonitoringThread::sInit, evf::FastMonitoringThread::start(), streamCounterUpdating_, threadIDAvailable_, evf::FastMonitoringService::Encoding::updateReserved(), and workingDirectory_.

Referenced by FastMonitoringService().

◆ preEvent()

void evf::FastMonitoringService::preEvent ( edm::StreamContext const &  sc)

Definition at line 604 of file FastMonitoringService.cc.

604 {}

Referenced by FastMonitoringService().

◆ preGlobalBeginLumi()

void evf::FastMonitoringService::preGlobalBeginLumi ( edm::GlobalContext const &  gc)

Definition at line 441 of file FastMonitoringService.cc.

441  {
442  timeval lumiStartTime;
443  gettimeofday(&lumiStartTime, nullptr);
444  unsigned int newLumi = gc.luminosityBlockID().luminosityBlock();
445  lastGlobalLumi_ = newLumi;
446 
447  std::lock_guard<std::mutex> lock(fmt_.monlock_);
448  lumiStartTime_[newLumi] = lumiStartTime;
449  }

References fmt_, lastGlobalLumi_, CommonMethods::lock(), edm::LuminosityBlockID::luminosityBlock(), edm::GlobalContext::luminosityBlockID(), lumiStartTime_, and evf::FastMonitoringThread::monlock_.

Referenced by FastMonitoringService().

◆ preGlobalEarlyTermination()

void evf::FastMonitoringService::preGlobalEarlyTermination ( edm::GlobalContext const &  gc,
edm::TerminationOrigin  to 
)

Definition at line 363 of file FastMonitoringService.cc.

363  {
364  std::string context;
366  context = " FromThisContext ";
368  context = " FromAnotherContext";
370  context = " FromExternalSignal";
371  edm::LogWarning("FastMonitoringService")
372  << " GLOBAL "
373  << "earlyTermination -: LS:" << gc.luminosityBlockID().luminosityBlock() << " " << context;
374  std::lock_guard<std::mutex> lock(fmt_.monlock_);
375  exceptionInLS_.push_back(gc.luminosityBlockID().luminosityBlock());
376  }

References edm::ExceptionFromAnotherContext, edm::ExceptionFromThisContext, exceptionInLS_, edm::ExternalSignal, fmt_, CommonMethods::lock(), edm::LuminosityBlockID::luminosityBlock(), edm::GlobalContext::luminosityBlockID(), evf::FastMonitoringThread::monlock_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by FastMonitoringService().

◆ preGlobalEndLumi()

void evf::FastMonitoringService::preGlobalEndLumi ( edm::GlobalContext const &  gc)

Definition at line 451 of file FastMonitoringService.cc.

451  {
452  unsigned int lumi = gc.luminosityBlockID().luminosityBlock();
453  LogDebug("FastMonitoringService") << "Lumi ended. Writing JSON information. LUMI -: " << lumi;
454  timeval lumiStopTime;
455  gettimeofday(&lumiStopTime, nullptr);
456 
457  std::lock_guard<std::mutex> lock(fmt_.monlock_);
458 
459  // Compute throughput
460  timeval stt = lumiStartTime_[lumi];
461  lumiStartTime_.erase(lumi);
462  unsigned long usecondsForLumi = (lumiStopTime.tv_sec - stt.tv_sec) * 1000000 + (lumiStopTime.tv_usec - stt.tv_usec);
463  unsigned long accuSize = accuSize_.find(lumi) == accuSize_.end() ? 0 : accuSize_[lumi];
464  accuSize_.erase(lumi);
465  double throughput = throughputFactor() * double(accuSize) / double(usecondsForLumi);
466  //store to registered variable
467  fmt_.m_data.fastThroughputJ_.value() = throughput;
468 
469  //update
470  doSnapshot(lumi, true);
471 
472  //retrieve one result we need (todo: sanity check if it's found)
473  IntJ* lumiProcessedJptr = dynamic_cast<IntJ*>(fmt_.jsonMonitor_->getMergedIntJForLumi("Processed", lumi));
474  if (!lumiProcessedJptr)
475  throw cms::Exception("FastMonitoringService") << "Internal error: got null pointer from FastMonitor";
476  processedEventsPerLumi_[lumi] = std::pair<unsigned int, bool>(lumiProcessedJptr->value(), false);
477 
478  //checking if exception has been thrown (in case of Global/Stream early termination, for this LS)
479  bool exception_detected = exception_detected_;
480  for (auto ex : exceptionInLS_)
481  if (lumi == ex)
482  exception_detected = true;
483 
484  if (edm::shutdown_flag || exception_detected) {
485  edm::LogInfo("FastMonitoringService")
486  << "Run interrupted. Skip writing EoL information -: " << processedEventsPerLumi_[lumi].first
487  << " events were processed in LUMI " << lumi;
488  //this will prevent output modules from producing json file for possibly incomplete lumi
489  processedEventsPerLumi_[lumi].first = 0;
490  processedEventsPerLumi_[lumi].second = true;
491  //disable this exception, so service can be used standalone (will be thrown if output module asks for this information)
492  //throw cms::Exception("FastMonitoringService") << "SOURCE did not send update for lumi block. LUMI -:" << lumi;
493  return;
494  }
495 
496  if (inputSource_) {
497  auto sourceReport = inputSource_->getEventReport(lumi, true);
498  if (sourceReport.first) {
499  if (sourceReport.second != processedEventsPerLumi_[lumi].first) {
500  throw cms::Exception("FastMonitoringService") << "MISMATCH with SOURCE update. LUMI -: " << lumi
501  << ", events(processed):" << processedEventsPerLumi_[lumi].first
502  << " events(source):" << sourceReport.second;
503  }
504  }
505  }
506  edm::LogInfo("FastMonitoringService")
507  << "Statistics for lumisection -: lumi = " << lumi << " events = " << lumiProcessedJptr->value()
508  << " time = " << usecondsForLumi / 1000000 << " size = " << accuSize << " thr = " << throughput;
509  delete lumiProcessedJptr;
510 
511  //full global and stream merge&output for this lumi
512 
513  // create file name for slow monitoring file
514  if (filePerFwkStream_) {
515  std::stringstream slowFileNameStem;
516  slowFileNameStem << slowName_ << "_ls" << std::setfill('0') << std::setw(4) << lumi << "_pid" << std::setfill('0')
517  << std::setw(5) << getpid();
519  slow /= slowFileNameStem.str();
520  fmt_.jsonMonitor_->outputFullJSONs(slow.string(), ".jsn", lumi);
521  } else {
522  std::stringstream slowFileName;
523  slowFileName << slowName_ << "_ls" << std::setfill('0') << std::setw(4) << lumi << "_pid" << std::setfill('0')
524  << std::setw(5) << getpid() << ".jsn";
526  slow /= slowFileName.str();
527  fmt_.jsonMonitor_->outputFullJSON(slow.string(),
528  lumi); //full global and stream merge and JSON write for this lumi
529  }
530  fmt_.jsonMonitor_->discardCollected(lumi); //we don't do further updates for this lumi
531  }

References accuSize_, doSnapshot(), Exception, exception_detected_, exceptionInLS_, evf::FastMonitoringThread::MonitorData::fastThroughputJ_, filePerFwkStream_, fmt_, FedRawDataInputSource::getEventReport(), inputSource_, evf::FastMonitoringThread::jsonMonitor_, CommonMethods::lock(), LogDebug, BXlumiParameters_cfi::lumi, edm::LuminosityBlockID::luminosityBlock(), edm::GlobalContext::luminosityBlockID(), lumiStartTime_, evf::FastMonitoringThread::m_data, evf::FastMonitoringThread::monlock_, castor_dqm_sourceclient_file_cfg::path, processedEventsPerLumi_, edm::shutdown_flag, slowName_, throughputFactor(), jsoncollector::IntJ::value(), jsoncollector::DoubleJ::value(), and workingDirectory_.

Referenced by FastMonitoringService().

◆ preModuleBeginJob()

void evf::FastMonitoringService::preModuleBeginJob ( edm::ModuleDescription const &  desc)

Definition at line 402 of file FastMonitoringService.cc.

402  {
403  std::lock_guard<std::mutex> lock(fmt_.monlock_);
404  //std::cout << " Pre module Begin Job module: " << desc.moduleName() << std::endl;
405 
406  //build a map of modules keyed by their module description address
407  //here we need to treat output modules in a special way so they can be easily singled out
408  if (desc.moduleName() == "Stream" || desc.moduleName() == "ShmStreamConsumer" ||
409  desc.moduleName() == "EvFOutputModule" || desc.moduleName() == "EventStreamFileWriter" ||
410  desc.moduleName() == "PoolOutputModule") {
411  encModule_.updateReserved((void*)&desc);
412  nOutputModules_++;
413  } else
414  encModule_.update((void*)&desc);
415  }

References encModule_, fmt_, CommonMethods::lock(), edm::ModuleDescription::moduleName(), evf::FastMonitoringThread::monlock_, nOutputModules_, evf::FastMonitoringService::Encoding::update(), and evf::FastMonitoringService::Encoding::updateReserved().

Referenced by FastMonitoringService().

◆ preModuleEvent()

void evf::FastMonitoringService::preModuleEvent ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 628 of file FastMonitoringService.cc.

628  {
629  microstate_[sc.streamID().value()] = (void*)(mcc.moduleDescription());
630  }

References microstate_, edm::ModuleCallingContext::moduleDescription(), edm::StreamContext::streamID(), and edm::StreamID::value().

Referenced by FastMonitoringService().

◆ prePathEvent()

void evf::FastMonitoringService::prePathEvent ( edm::StreamContext const &  sc,
edm::PathContext const &  pc 
)

Definition at line 576 of file FastMonitoringService.cc.

576  {
577  //make sure that all path names are retrieved before allowing ministate to change
578  //hack: assume memory is synchronized after ~50 events seen by each stream
579  if (UNLIKELY(eventCountForPathInit_[sc.streamID()] < 50) &&
580  false == collectedPathList_[sc.streamID()]->load(std::memory_order_acquire)) {
581  //protection between stream threads, as well as the service monitoring thread
582  std::lock_guard<std::mutex> lock(fmt_.monlock_);
583 
584  if (firstEventId_[sc.streamID()] == 0)
585  firstEventId_[sc.streamID()] = sc.eventID().event();
586  if (sc.eventID().event() == firstEventId_[sc.streamID()]) {
587  encPath_[sc.streamID()].update((void*)&pc.pathName());
588  return;
589  } else {
590  //finished collecting path names
591  collectedPathList_[sc.streamID()]->store(true, std::memory_order_seq_cst);
592  fmt_.m_data.ministateBins_ = encPath_[sc.streamID()].vecsize();
593  if (!pathLegendWritten_) {
594  std::string pathLegendStrJson = makePathLegendaJson();
595  FileIO::writeStringToFile(pathLegendFileJson_, pathLegendStrJson);
596  pathLegendWritten_ = true;
597  }
598  }
599  } else {
600  ministate_[sc.streamID()] = &(pc.pathName());
601  }
602  }

References collectedPathList_, encPath_, edm::EventID::event(), eventCountForPathInit_, edm::StreamContext::eventID(), firstEventId_, fmt_, CommonMethods::lock(), evf::FastMonitoringThread::m_data, makePathLegendaJson(), ministate_, evf::FastMonitoringThread::MonitorData::ministateBins_, evf::FastMonitoringThread::monlock_, pathLegendFileJson_, pathLegendWritten_, edm::PathContext::pathName(), edm::StreamContext::streamID(), AlCaHLTBitMon_QueryRunRegistry::string, and UNLIKELY.

Referenced by FastMonitoringService().

◆ preSourceEarlyTermination()

void evf::FastMonitoringService::preSourceEarlyTermination ( edm::TerminationOrigin  to)

Definition at line 378 of file FastMonitoringService.cc.

378  {
379  std::string context;
381  context = " FromThisContext ";
383  context = " FromAnotherContext";
385  context = " FromExternalSignal";
386  edm::LogWarning("FastMonitoringService") << " SOURCE "
387  << "earlyTermination -: " << context;
388  std::lock_guard<std::mutex> lock(fmt_.monlock_);
389  exception_detected_ = true;
390  }

References exception_detected_, edm::ExceptionFromAnotherContext, edm::ExceptionFromThisContext, edm::ExternalSignal, fmt_, CommonMethods::lock(), evf::FastMonitoringThread::monlock_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by FastMonitoringService().

◆ preSourceEvent()

void evf::FastMonitoringService::preSourceEvent ( edm::StreamID  sid)

◆ preStreamBeginLumi()

void evf::FastMonitoringService::preStreamBeginLumi ( edm::StreamContext const &  sc)

◆ preStreamEarlyTermination()

void evf::FastMonitoringService::preStreamEarlyTermination ( edm::StreamContext const &  sc,
edm::TerminationOrigin  to 
)

Definition at line 348 of file FastMonitoringService.cc.

348  {
349  std::string context;
351  context = " FromThisContext ";
353  context = " FromAnotherContext";
355  context = " FromExternalSignal";
356  edm::LogWarning("FastMonitoringService")
357  << " STREAM " << sc.streamID().value() << " earlyTermination -: ID:" << sc.eventID()
358  << " LS:" << sc.eventID().luminosityBlock() << " " << context;
359  std::lock_guard<std::mutex> lock(fmt_.monlock_);
360  exceptionInLS_.push_back(sc.eventID().luminosityBlock());
361  }

References edm::StreamContext::eventID(), edm::ExceptionFromAnotherContext, edm::ExceptionFromThisContext, exceptionInLS_, edm::ExternalSignal, fmt_, CommonMethods::lock(), edm::EventID::luminosityBlock(), evf::FastMonitoringThread::monlock_, edm::StreamContext::streamID(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::StreamID::value().

Referenced by FastMonitoringService().

◆ preStreamEndLumi()

void evf::FastMonitoringService::preStreamEndLumi ( edm::StreamContext const &  sc)

Definition at line 562 of file FastMonitoringService.cc.

562  {
563  unsigned int sid = sc.streamID().value();
564  std::lock_guard<std::mutex> lock(fmt_.monlock_);
565 
566  //update processed count to be complete at this time
567  doStreamEOLSnapshot(sc.eventID().luminosityBlock(), sid);
568  //reset this in case stream does not get notified of next lumi (we keep processed events only)
569  ministate_[sid] = &nopath_;
571  }

References doStreamEOLSnapshot(), edm::StreamContext::eventID(), fmt_, CommonMethods::lock(), edm::EventID::luminosityBlock(), evf::MicroStateService::mEoL, microstate_, ministate_, evf::FastMonitoringThread::monlock_, nopath_, evf::MicroStateService::reservedMicroStateNames, edm::StreamContext::streamID(), and edm::StreamID::value().

Referenced by FastMonitoringService().

◆ reportLockWait()

void evf::FastMonitoringService::reportLockWait ( unsigned int  ls,
double  waitTime,
unsigned int  lockCount 
)

Definition at line 702 of file FastMonitoringService.cc.

702  {
703  std::lock_guard<std::mutex> lock(fmt_.monlock_);
704  lockStatsDuringLumi_[ls] = std::pair<double, unsigned int>(waitTime, lockCount);
705  }

References fmt_, CommonMethods::lock(), lockStatsDuringLumi_, eostools::ls(), and evf::FastMonitoringThread::monlock_.

Referenced by FedRawDataInputSource::readSupervisor().

◆ setExceptionDetected()

void evf::FastMonitoringService::setExceptionDetected ( unsigned int  ls)

Definition at line 392 of file FastMonitoringService.cc.

392  {
393  if (!ls)
394  exception_detected_ = true;
395  else
396  exceptionInLS_.push_back(ls);
397  }

References exception_detected_, exceptionInLS_, and eostools::ls().

Referenced by FedRawDataInputSource::getNextEvent().

◆ setInputSource()

void evf::FastMonitoringService::setInputSource ( FedRawDataInputSource inputSource)
inline

Definition at line 178 of file FastMonitoringService.h.

178 { inputSource_ = inputSource; }

References inputSource_.

Referenced by FedRawDataInputSource::FedRawDataInputSource().

◆ setInState()

void evf::FastMonitoringService::setInState ( FastMonitoringThread::InputState  inputState)
inline

◆ setInStateSup()

void evf::FastMonitoringService::setInStateSup ( FastMonitoringThread::InputState  inputState)
inline

◆ setMicroState() [1/2]

void evf::FastMonitoringService::setMicroState ( edm::StreamID  sid,
MicroStateService::Microstate  m 
)
overridevirtual

◆ setMicroState() [2/2]

void evf::FastMonitoringService::setMicroState ( MicroStateService::Microstate  m)
overridevirtual

◆ shouldWriteFiles()

bool evf::FastMonitoringService::shouldWriteFiles ( unsigned int  lumi,
unsigned int *  proc = nullptr 
)
inline

◆ startedLookingForFile()

void evf::FastMonitoringService::startedLookingForFile ( )

Definition at line 666 of file FastMonitoringService.cc.

666  {
667  gettimeofday(&fileLookStart_, nullptr);
668  /*
669  std::cout << "Started looking for .raw file at: s=" << fileLookStart_.tv_sec << ": ms = "
670  << fileLookStart_.tv_usec / 1000.0 << std::endl;
671  */
672  }

References fileLookStart_.

Referenced by FedRawDataInputSource::readSupervisor().

◆ stoppedLookingForFile()

void evf::FastMonitoringService::stoppedLookingForFile ( unsigned int  lumi)

Definition at line 674 of file FastMonitoringService.cc.

674  {
675  gettimeofday(&fileLookStop_, nullptr);
676  /*
677  std::cout << "Stopped looking for .raw file at: s=" << fileLookStop_.tv_sec << ": ms = "
678  << fileLookStop_.tv_usec / 1000.0 << std::endl;
679  */
680  std::lock_guard<std::mutex> lock(fmt_.monlock_);
681 
682  if (lumi > lumiFromSource_) {
684  leadTimes_.clear();
685  }
686  unsigned long elapsedTime = (fileLookStop_.tv_sec - fileLookStart_.tv_sec) * 1000000 // sec to us
687  + (fileLookStop_.tv_usec - fileLookStart_.tv_usec); // us
688  // add this to lead times for this lumi
689  leadTimes_.push_back((double)elapsedTime);
690 
691  // recompute average lead time for this lumi
692  if (leadTimes_.size() == 1)
694  else {
695  double totTime = 0;
696  for (unsigned int i = 0; i < leadTimes_.size(); i++)
697  totTime += leadTimes_[i];
698  avgLeadTime_[lumi] = 0.001 * (totTime / leadTimes_.size());
699  }
700  }

References avgLeadTime_, fileLookStart_, fileLookStop_, fmt_, mps_fire::i, leadTimes_, CommonMethods::lock(), BXlumiParameters_cfi::lumi, lumiFromSource_, and evf::FastMonitoringThread::monlock_.

Referenced by FedRawDataInputSource::readSupervisor().

Member Data Documentation

◆ accuSize_

std::map<unsigned int, unsigned long> evf::FastMonitoringService::accuSize_
private

Definition at line 268 of file FastMonitoringService.h.

Referenced by accumulateFileSize(), and preGlobalEndLumi().

◆ avgLeadTime_

std::map<unsigned int, double> evf::FastMonitoringService::avgLeadTime_
private

Definition at line 265 of file FastMonitoringService.h.

Referenced by doSnapshot(), postGlobalEndLumi(), and stoppedLookingForFile().

◆ collectedPathList_

std::vector<std::atomic<bool>*> evf::FastMonitoringService::collectedPathList_
private

Definition at line 280 of file FastMonitoringService.h.

Referenced by preBeginJob(), and prePathEvent().

◆ encModule_

Encoding evf::FastMonitoringService::encModule_
private

◆ encPath_

std::vector<Encoding> evf::FastMonitoringService::encPath_
private

◆ eventCountForPathInit_

std::vector<ContainableAtomic<unsigned int> > evf::FastMonitoringService::eventCountForPathInit_
private

Definition at line 281 of file FastMonitoringService.h.

Referenced by postEvent(), preBeginJob(), and prePathEvent().

◆ exception_detected_

bool evf::FastMonitoringService::exception_detected_ = false
private

◆ exceptionInLS_

std::vector<unsigned int> evf::FastMonitoringService::exceptionInLS_
private

◆ fastMicrostateDefPath_

std::string evf::FastMonitoringService::fastMicrostateDefPath_
private

Definition at line 242 of file FastMonitoringService.h.

Referenced by FastMonitoringService(), and preBeginJob().

◆ fastMonIntervals_

unsigned int evf::FastMonitoringService::fastMonIntervals_
private

Definition at line 240 of file FastMonitoringService.h.

Referenced by dowork().

◆ fastName_

std::string evf::FastMonitoringService::fastName_
private

Definition at line 243 of file FastMonitoringService.h.

Referenced by preBeginJob().

◆ fastPath_

std::string evf::FastMonitoringService::fastPath_
private

Definition at line 243 of file FastMonitoringService.h.

Referenced by dowork(), and preBeginJob().

◆ fastPathList_

std::vector<std::string> evf::FastMonitoringService::fastPathList_
private

Definition at line 301 of file FastMonitoringService.h.

Referenced by dowork(), and preBeginJob().

◆ fileLookStart_

timeval evf::FastMonitoringService::fileLookStart_
private

Definition at line 249 of file FastMonitoringService.h.

Referenced by startedLookingForFile(), and stoppedLookingForFile().

◆ fileLookStop_

timeval evf::FastMonitoringService::fileLookStop_
private

Definition at line 249 of file FastMonitoringService.h.

Referenced by stoppedLookingForFile().

◆ filePerFwkStream_

bool evf::FastMonitoringService::filePerFwkStream_
private

Definition at line 244 of file FastMonitoringService.h.

Referenced by dowork(), preBeginJob(), and preGlobalEndLumi().

◆ filesProcessedDuringLumi_

std::map<unsigned int, unsigned int> evf::FastMonitoringService::filesProcessedDuringLumi_
private

Definition at line 266 of file FastMonitoringService.h.

Referenced by accumulateFileSize(), doSnapshot(), and postGlobalEndLumi().

◆ firstEventId_

std::vector<unsigned long> evf::FastMonitoringService::firstEventId_
private

Definition at line 279 of file FastMonitoringService.h.

Referenced by preBeginJob(), and prePathEvent().

◆ fmt_

FastMonitoringThread evf::FastMonitoringService::fmt_
private

◆ inputLegendFileJson_

std::string evf::FastMonitoringService::inputLegendFileJson_
private

Definition at line 294 of file FastMonitoringService.h.

Referenced by postBeginJob(), and preBeginJob().

◆ inputSource_

FedRawDataInputSource* evf::FastMonitoringService::inputSource_ = nullptr
private

Definition at line 233 of file FastMonitoringService.h.

Referenced by preGlobalEndLumi(), and setInputSource().

◆ inputState_

std::atomic<FastMonitoringThread::InputState> evf::FastMonitoringService::inputState_ {FastMonitoringThread::InputState::inInit}
private

Definition at line 234 of file FastMonitoringService.h.

Referenced by doSnapshot(), dowork(), and setInState().

◆ inputStateNames

const std::string evf::FastMonitoringService::inputStateNames
static

Definition at line 120 of file FastMonitoringService.h.

Referenced by dowork(), and makeInputLegendaJson().

◆ inputSupervisorState_

std::atomic<FastMonitoringThread::InputState> evf::FastMonitoringService::inputSupervisorState_ {FastMonitoringThread::InputState::inInit}
private

Definition at line 235 of file FastMonitoringService.h.

Referenced by doSnapshot(), dowork(), and setInStateSup().

◆ isInitTransition_

std::atomic<bool> evf::FastMonitoringService::isInitTransition_
private

Definition at line 252 of file FastMonitoringService.h.

Referenced by doSnapshot(), postGlobalBeginRun(), and preBeginJob().

◆ lastGlobalLumi_

unsigned int evf::FastMonitoringService::lastGlobalLumi_
private

Definition at line 251 of file FastMonitoringService.h.

Referenced by dowork(), preBeginJob(), and preGlobalBeginLumi().

◆ leadTimes_

std::vector<double> evf::FastMonitoringService::leadTimes_
private

Definition at line 269 of file FastMonitoringService.h.

Referenced by stoppedLookingForFile().

◆ lockStatsDuringLumi_

std::map<unsigned int, std::pair<double, unsigned int> > evf::FastMonitoringService::lockStatsDuringLumi_
private

Definition at line 270 of file FastMonitoringService.h.

Referenced by doSnapshot(), postGlobalEndLumi(), and reportLockWait().

◆ lumiFromSource_

unsigned int evf::FastMonitoringService::lumiFromSource_
private

Definition at line 253 of file FastMonitoringService.h.

Referenced by preBeginJob(), and stoppedLookingForFile().

◆ lumiStartTime_

std::map<unsigned int, timeval> evf::FastMonitoringService::lumiStartTime_
private

Definition at line 248 of file FastMonitoringService.h.

Referenced by preGlobalBeginLumi(), and preGlobalEndLumi().

◆ macrostate_

std::atomic<FastMonitoringThread::Macrostate> evf::FastMonitoringService::macrostate_
private

◆ macroStateNames

const std::string evf::FastMonitoringService::macroStateNames
static
Initial value:
= {"Init",
"JobReady",
"RunGiven",
"Running",
"Stopping",
"Done",
"JobEnded",
"Error",
"ErrorEnded",
"End",
"Invalid"}

Definition at line 119 of file FastMonitoringService.h.

◆ microstate_

std::vector<ContainableAtomic<const void*> > evf::FastMonitoringService::microstate_
private

◆ microstateDefPath_

std::string evf::FastMonitoringService::microstateDefPath_
private

Definition at line 242 of file FastMonitoringService.h.

Referenced by FastMonitoringService(), and preBeginJob().

◆ ministate_

std::vector<ContainableAtomic<const void*> > evf::FastMonitoringService::ministate_
private

◆ moduleLegendFile_

std::string evf::FastMonitoringService::moduleLegendFile_
private

Definition at line 290 of file FastMonitoringService.h.

Referenced by preBeginJob().

◆ moduleLegendFileJson_

std::string evf::FastMonitoringService::moduleLegendFileJson_
private

Definition at line 291 of file FastMonitoringService.h.

Referenced by postBeginJob(), and preBeginJob().

◆ monInit_

std::atomic<bool> evf::FastMonitoringService::monInit_
private

Definition at line 298 of file FastMonitoringService.h.

Referenced by dowork(), and preBeginJob().

◆ nopath_

const std::string evf::FastMonitoringService::nopath_ = "NoPath"
static

◆ nOutputModules_

unsigned int evf::FastMonitoringService::nOutputModules_ = 0
private

Definition at line 296 of file FastMonitoringService.h.

Referenced by makeModuleLegendaJson(), and preModuleBeginJob().

◆ nStreams_

unsigned int evf::FastMonitoringService::nStreams_
private

Definition at line 237 of file FastMonitoringService.h.

Referenced by doSnapshot(), dowork(), preallocate(), preBeginJob(), and setMicroState().

◆ nThreads_

unsigned int evf::FastMonitoringService::nThreads_
private

Definition at line 238 of file FastMonitoringService.h.

Referenced by preallocate(), and preBeginJob().

◆ pathLegendFile_

std::string evf::FastMonitoringService::pathLegendFile_
private

Definition at line 292 of file FastMonitoringService.h.

Referenced by preBeginJob().

◆ pathLegendFileJson_

std::string evf::FastMonitoringService::pathLegendFileJson_
private

Definition at line 293 of file FastMonitoringService.h.

Referenced by preBeginJob(), and prePathEvent().

◆ pathLegendWritten_

bool evf::FastMonitoringService::pathLegendWritten_ = false
private

Definition at line 295 of file FastMonitoringService.h.

Referenced by prePathEvent().

◆ pathNamesReady_

std::vector<bool> evf::FastMonitoringService::pathNamesReady_
private

Definition at line 282 of file FastMonitoringService.h.

◆ processedEventsPerLumi_

std::map<unsigned int, std::pair<unsigned int, bool> > evf::FastMonitoringService::processedEventsPerLumi_
private

◆ runDirectory_

boost::filesystem::path evf::FastMonitoringService::runDirectory_
private

Definition at line 284 of file FastMonitoringService.h.

Referenced by getRunDirName(), and preBeginJob().

◆ sleepTime_

int evf::FastMonitoringService::sleepTime_
private

Definition at line 239 of file FastMonitoringService.h.

Referenced by dowork().

◆ slowName_

std::string evf::FastMonitoringService::slowName_
private

Definition at line 243 of file FastMonitoringService.h.

Referenced by preGlobalEndLumi().

◆ snapCounter_

unsigned int evf::FastMonitoringService::snapCounter_ = 0
private

Definition at line 241 of file FastMonitoringService.h.

Referenced by dowork().

◆ streamCounterUpdating_

std::vector<std::atomic<bool>*> evf::FastMonitoringService::streamCounterUpdating_
private

Definition at line 277 of file FastMonitoringService.h.

Referenced by preBeginJob().

◆ threadIDAvailable_

bool evf::FastMonitoringService::threadIDAvailable_ = false
private

Definition at line 286 of file FastMonitoringService.h.

Referenced by preBeginJob().

◆ threadMicrostate_

std::vector<ContainableAtomic<const void*> > evf::FastMonitoringService::threadMicrostate_
private

Definition at line 261 of file FastMonitoringService.h.

◆ totalEventsProcessed_

std::atomic<unsigned long> evf::FastMonitoringService::totalEventsProcessed_
private

Definition at line 288 of file FastMonitoringService.h.

Referenced by postEvent().

◆ workingDirectory_

boost::filesystem::path evf::FastMonitoringService::workingDirectory_
private

Definition at line 284 of file FastMonitoringService.h.

Referenced by preBeginJob(), and preGlobalEndLumi().

evf::FastMonitoringService::preGlobalEndLumi
void preGlobalEndLumi(edm::GlobalContext const &)
Definition: FastMonitoringService.cc:451
evf::FastMonitoringThread::MonitorData::microstateEncoded_
std::vector< unsigned int > microstateEncoded_
Definition: FastMonitoringThread.h:116
evf::FastMonitoringThread::inWaitChunk_newFile
Definition: FastMonitoringThread.h:95
eostools.ls
def ls(path, rec=False)
Definition: eostools.py:349
evf::MicroStateService::mCOUNT
Definition: MicroStateService.h:32
edm::ActivityRegistry::watchPostStreamEndLumi
void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:392
edm::ActivityRegistry::watchPreSourceEarlyTermination
void watchPreSourceEarlyTermination(PreSourceEarlyTermination::slot_type const &iSlot)
Definition: ActivityRegistry.h:443
evf::FastMonitoringThread::MonitorData::processed_
std::vector< jsoncollector::AtomicMonUInt * > processed_
Definition: FastMonitoringThread.h:118
evf::FastMonitoringService::exception_detected_
bool exception_detected_
Definition: FastMonitoringService.h:299
evf::FastMonitoringThread::monlock_
std::mutex monlock_
Definition: FastMonitoringThread.h:221
edm::TerminationOrigin::ExceptionFromThisContext
mps_fire.i
i
Definition: mps_fire.py:355
evf::FastMonitoringService::eventCountForPathInit_
std::vector< ContainableAtomic< unsigned int > > eventCountForPathInit_
Definition: FastMonitoringService.h:281
evf::FastMonitoringService::lockStatsDuringLumi_
std::map< unsigned int, std::pair< double, unsigned int > > lockStatsDuringLumi_
Definition: FastMonitoringService.h:270
evf::FastMonitoringService::preStreamEndLumi
void preStreamEndLumi(edm::StreamContext const &)
Definition: FastMonitoringService.cc:562
evf::MicroStateService::mFwkOvhSrc
Definition: MicroStateService.h:24
evf::FastMonitoringThread::inSupFileLimit
Definition: FastMonitoringThread.h:54
evf::FastMonitoringService::fastMonIntervals_
unsigned int fastMonIntervals_
Definition: FastMonitoringService.h:240
evf::FastMonitoringService::doSnapshot
void doSnapshot(const unsigned int ls, const bool isGlobalEOL)
Definition: FastMonitoringService.cc:741
evf::FastMonitoringService::encPath_
std::vector< Encoding > encPath_
Definition: FastMonitoringService.h:232
evf::FastMonitoringService::preSourceEvent
void preSourceEvent(edm::StreamID)
Definition: FastMonitoringService.cc:620
evf::FastMonitoringThread::MonitorData::fastAvgLeadTimeJ_
jsoncollector::DoubleJ fastAvgLeadTimeJ_
Definition: FastMonitoringThread.h:107
evf::FastMonitoringThread::MonitorData::fastLockWaitJ_
jsoncollector::DoubleJ fastLockWaitJ_
Definition: FastMonitoringThread.h:109
evf::FastMonitoringService::getEventsProcessedForLumi
unsigned int getEventsProcessedForLumi(unsigned int lumi, bool *abortFlag=nullptr)
Definition: FastMonitoringService.cc:708
evf::FastMonitoringThread::inSupWaitFreeChunk
Definition: FastMonitoringThread.h:55
evf::FastMonitoringThread::inWaitInput_waitFreeChunkCopying
Definition: FastMonitoringThread.h:71
evf::FastMonitoringService::processedEventsPerLumi_
std::map< unsigned int, std::pair< unsigned int, bool > > processedEventsPerLumi_
Definition: FastMonitoringService.h:273
evf::FastMonitoringService::Encoding::current_
int current_
Definition: FastMonitoringService.h:112
Json::arrayValue
array value (ordered list)
Definition: value.h:30
evf::FastMonitoringService::encModule_
Encoding encModule_
Definition: FastMonitoringService.h:231
evf::FastMonitoringThread::MonitorData::inputstateBins_
unsigned int inputstateBins_
Definition: FastMonitoringThread.h:130
edm::TerminationOrigin::ExternalSignal
evf::FastMonitoringService::inputLegendFileJson_
std::string inputLegendFileJson_
Definition: FastMonitoringService.h:294
evf::FastMonitoringService::collectedPathList_
std::vector< std::atomic< bool > * > collectedPathList_
Definition: FastMonitoringService.h:280
edm::ActivityRegistry::watchPostGlobalEndLumi
void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:352
edm::ActivityRegistry::watchJobFailure
void watchJobFailure(JobFailure::slot_type const &iSlot)
convenience function for attaching to signal
Definition: ActivityRegistry.h:176
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
evf::FastMonitoringThread::inRunEnd
Definition: FastMonitoringThread.h:41
evf::FastMonitoringService::Encoding::update
void update(const void *add)
Definition: FastMonitoringService.h:102
to
evf::FastMonitoringService::moduleLegendFileJson_
std::string moduleLegendFileJson_
Definition: FastMonitoringService.h:291
evf::FastMonitoringThread::sRunning
Definition: FastMonitoringThread.h:22
evf::FastMonitoringThread::inWaitChunk_newFileWaitThread
Definition: FastMonitoringThread.h:97
cscNeutronWriter_cfi.writer
writer
Definition: cscNeutronWriter_cfi.py:6
evf::FastMonitoringService::fastPath_
std::string fastPath_
Definition: FastMonitoringService.h:243
evf::FastMonitoringThread::sJobReady
Definition: FastMonitoringThread.h:20
evf::FastMonitoringService::preSourceEarlyTermination
void preSourceEarlyTermination(edm::TerminationOrigin)
Definition: FastMonitoringService.cc:378
evf::FastMonitoringService::exceptionInLS_
std::vector< unsigned int > exceptionInLS_
Definition: FastMonitoringService.h:300
nReservedModules
static const int nReservedModules
Definition: FastMonitoringService.cc:28
throughputFactor
constexpr double throughputFactor()
Definition: FastMonitoringService.cc:26
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::StreamID::value
unsigned int value() const
Definition: StreamID.h:42
evf::FastMonitoringThread::inWaitChunk_newFileWaitThreadCopying
Definition: FastMonitoringThread.h:96
evf::MicroStateService::mInput
Definition: MicroStateService.h:27
evf::FastMonitoringService::postBeginJob
void postBeginJob()
Definition: FastMonitoringService.cc:417
evf::FastMonitoringThread::resetFastMonitor
void resetFastMonitor(std::string const &microStateDefPath, std::string const &fastMicroStateDefPath)
Definition: FastMonitoringThread.h:200
evf::MicroStateService::mFwkEoL
Definition: MicroStateService.h:26
evf::FastMonitoringThread::sJobEnded
Definition: FastMonitoringThread.h:26
evf::FastMonitoringService::Encoding::vecsize
unsigned int vecsize()
Definition: FastMonitoringService.h:108
evf::FastMonitoringService::macrostate_
std::atomic< FastMonitoringThread::Macrostate > macrostate_
Definition: FastMonitoringService.h:256
evf::MicroStateService::mEoL
Definition: MicroStateService.h:30
evf::FastMonitoringThread::inWaitChunk
Definition: FastMonitoringThread.h:43
evf::FastMonitoringService::firstEventId_
std::vector< unsigned long > firstEventId_
Definition: FastMonitoringService.h:279
FedRawDataInputSource::getEventReport
std::pair< bool, unsigned int > getEventReport(unsigned int lumi, bool erase)
Definition: FedRawDataInputSource.cc:1508
evf::FastMonitoringThread::inWaitChunk_fileLimit
Definition: FastMonitoringThread.h:85
evf::MicroStateService::mInvalid
Definition: MicroStateService.h:22
Utilities.operator
operator
Definition: Utilities.py:24
evf::FastMonitoringService::nThreads_
unsigned int nThreads_
Definition: FastMonitoringService.h:238
evf::FastMonitoringThread::inSupWaitFreeChunkCopying
Definition: FastMonitoringThread.h:56
evf::FastMonitoringService::nStreams_
unsigned int nStreams_
Definition: FastMonitoringService.h:237
evf::FastMonitoringThread::MonitorData::fastFilesProcessedJ_
jsoncollector::IntJ fastFilesProcessedJ_
Definition: FastMonitoringThread.h:108
edm::ActivityRegistry::watchPostSourceEvent
void watchPostSourceEvent(PostSourceEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:188
evf::FastMonitoringThread::m_data
MonitorData m_data
Definition: FastMonitoringThread.h:220
evf::FastMonitoringThread::inWaitInput_lockPolling
Definition: FastMonitoringThread.h:75
evf::FastMonitoringThread::sInit
Definition: FastMonitoringThread.h:19
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
BXlumiParameters_cfi.lumi
lumi
Definition: BXlumiParameters_cfi.py:6
evf::FastMonitoringService::Encoding::updateReserved
void updateReserved(const void *add)
Definition: FastMonitoringService.h:94
evf::FastMonitoringService::inputSource_
FedRawDataInputSource * inputSource_
Definition: FastMonitoringService.h:233
evf::FastMonitoringService::postStreamBeginLumi
void postStreamBeginLumi(edm::StreamContext const &)
Definition: FastMonitoringService.cc:558
evf::FastMonitoringService::fastPathList_
std::vector< std::string > fastPathList_
Definition: FastMonitoringService.h:301
edm::ActivityRegistry::watchPostEndJob
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
Definition: ActivityRegistry.h:168
edm::ActivityRegistry::watchPreStreamBeginLumi
void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:373
evf::FastMonitoringService::fastName_
std::string fastName_
Definition: FastMonitoringService.h:243
evf::MicroStateService::mIdle
Definition: MicroStateService.h:23
hgcalPlots.stat
stat
Definition: hgcalPlots.py:1111
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
evf::FastMonitoringService::lumiStartTime_
std::map< unsigned int, timeval > lumiStartTime_
Definition: FastMonitoringService.h:248
evf::FastMonitoringService::preGlobalBeginLumi
void preGlobalBeginLumi(edm::GlobalContext const &)
Definition: FastMonitoringService.cc:441
evf::FastMonitoringThread::inWaitChunk_newFileWaitChunkCopying
Definition: FastMonitoringThread.h:98
evf::FastMonitoringThread::inWaitChunk_waitFreeThreadCopying
Definition: FastMonitoringThread.h:89
edm::ActivityRegistry::watchPreBeginJob
void watchPreBeginJob(PreBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
Definition: ActivityRegistry.h:149
evf::FastMonitoringThread::MonitorData::inputState_
std::vector< unsigned int > inputState_
Definition: FastMonitoringThread.h:121
evf::FastMonitoringService::microstate_
std::vector< ContainableAtomic< const void * > > microstate_
Definition: FastMonitoringService.h:260
evf::FastMonitoringThread::inSupWaitFreeThread
Definition: FastMonitoringThread.h:57
evf::FastMonitoringThread::inWaitInput
Definition: FastMonitoringThread.h:37
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
evf::FastMonitoringThread::inWaitChunk_noFile
Definition: FastMonitoringThread.h:94
edm::ActivityRegistry::watchPreEvent
void watchPreEvent(PreEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:400
evf::FastMonitoringService::fileLookStart_
timeval fileLookStart_
Definition: FastMonitoringService.h:249
evf::FastMonitoringThread::inWaitInput_lockPollingCopying
Definition: FastMonitoringThread.h:76
evf::FastMonitoringService::preStreamBeginLumi
void preStreamBeginLumi(edm::StreamContext const &)
Definition: FastMonitoringService.cc:545
evf::FastMonitoringService::postModuleEvent
void postModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastMonitoringService.cc:632
evf::FastMonitoringThread::stop
void stop()
Definition: FastMonitoringThread.h:211
evf::FastMonitoringThread::MonitorData::fastThroughputJ_
jsoncollector::DoubleJ fastThroughputJ_
Definition: FastMonitoringThread.h:106
edm::ActivityRegistry::watchPostBeginJob
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
Definition: ActivityRegistry.h:156
evf::FastMonitoringService::workingDirectory_
boost::filesystem::path workingDirectory_
Definition: FastMonitoringService.h:284
evf::FastMonitoringService::dowork
void dowork()
Definition: FastMonitoringService.h:190
evf::FastMonitoringThread::inNoRequestWithEoLThreads
Definition: FastMonitoringThread.h:52
Json::StyledWriter
Writes a Value in JSON format in a human friendly way.
Definition: writer.h:63
evf::FastMonitoringThread::inNewLumi
Definition: FastMonitoringThread.h:38
evf::FastMonitoringThread::inSupNewFileWaitThreadCopying
Definition: FastMonitoringThread.h:64
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
evf::FastMonitoringService::postGlobalEndLumi
void postGlobalEndLumi(edm::GlobalContext const &)
Definition: FastMonitoringService.cc:533
evf::MicroStateService::MicroStateService
MicroStateService(const edm::ParameterSet &, edm::ActivityRegistry &)
Definition: MicroStateService.cc:19
evf::FastMonitoringThread::sError
Definition: FastMonitoringThread.h:27
evf::FastMonitoringService::inputSupervisorState_
std::atomic< FastMonitoringThread::InputState > inputSupervisorState_
Definition: FastMonitoringService.h:235
evf::FastMonitoringService::getAbortFlagForLumi
bool getAbortFlagForLumi(unsigned int lumi)
Definition: FastMonitoringService.cc:726
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
evf::FastMonitoringThread::inWaitInput_runEnd
Definition: FastMonitoringThread.h:77
edm::ActivityRegistry::watchPostEvent
void watchPostEvent(PostEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:406
edm::ParameterSetDescription::setComment
void setComment(std::string const &value)
Definition: ParameterSetDescription.cc:33
ValidateTausOnZEEFastSim_cff.proc
proc
Definition: ValidateTausOnZEEFastSim_cff.py:6
evf::FastMonitoringService::streamCounterUpdating_
std::vector< std::atomic< bool > * > streamCounterUpdating_
Definition: FastMonitoringService.h:277
evf::FastMonitoringThread::MonitorData::microstateBins_
unsigned int microstateBins_
Definition: FastMonitoringThread.h:129
evf::FastMonitoringService::preModuleEvent
void preModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastMonitoringService.cc:628
evf::FastMonitoringThread::m_stoprequest
std::atomic< bool > m_stoprequest
Definition: FastMonitoringThread.h:218
CommonMethods.lock
def lock()
Definition: CommonMethods.py:82
evf::MicroStateService::mFwkOvhMod
Definition: MicroStateService.h:25
edm::ActivityRegistry::watchPreStreamEndLumi
void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:387
edm::shutdown_flag
volatile std::atomic< bool > shutdown_flag
Definition: UnixSignalHandlers.cc:22
evf::FastMonitoringService::lumiFromSource_
unsigned int lumiFromSource_
Definition: FastMonitoringService.h:253
evf::FastMonitoringThread::MonitorData::streamLumi_
std::vector< unsigned int > streamLumi_
Definition: FastMonitoringThread.h:124
edm::ActivityRegistry::watchPreStreamEarlyTermination
void watchPreStreamEarlyTermination(PreStreamEarlyTermination::slot_type const &iSlot)
Definition: ActivityRegistry.h:425
evf::FastMonitoringService::pathLegendFile_
std::string pathLegendFile_
Definition: FastMonitoringService.h:292
evf::MicroStateService::mBoL
Definition: MicroStateService.h:29
evf::FastMonitoringThread::inWaitChunk_lockPolling
Definition: FastMonitoringThread.h:91
nSpecialModules
static const int nSpecialModules
Definition: FastMonitoringService.cc:29
evf::FastMonitoringService::avgLeadTime_
std::map< unsigned int, double > avgLeadTime_
Definition: FastMonitoringService.h:265
evf::FastMonitoringService::postSourceEvent
void postSourceEvent(edm::StreamID)
Definition: FastMonitoringService.cc:624
jsoncollector::DoubleJ::value
double & value()
Definition: JsonMonitorable.h:128
evf::FastMonitoringThread::inWaitInput_newFileWaitChunkCopying
Definition: FastMonitoringThread.h:82
evf::FastMonitoringThread::MCOUNT
Definition: FastMonitoringThread.h:31
edm::Service
Definition: Service.h:30
evf::FastMonitoringThread::inSupNewFileWaitChunk
Definition: FastMonitoringThread.h:67
evf::FastMonitoringThread::MonitorData::registerVariables
void registerVariables(jsoncollector::FastMonitor *fm, unsigned int nStreams, unsigned int nThreads)
Definition: FastMonitoringThread.h:153
evf::FastMonitoringService::monInit_
std::atomic< bool > monInit_
Definition: FastMonitoringService.h:298
evf::FastMonitoringThread::inSupNewFile
Definition: FastMonitoringThread.h:63
evf::FastMonitoringThread::MonitorData::macrostateBins_
unsigned int macrostateBins_
Definition: FastMonitoringThread.h:127
evf::FastMonitoringThread::inWaitChunk_newFileWaitChunk
Definition: FastMonitoringThread.h:99
evf::FastMonitoringService::preModuleBeginJob
void preModuleBeginJob(edm::ModuleDescription const &)
Definition: FastMonitoringService.cc:402
evf::FastMonitoringService::lastGlobalLumi_
unsigned int lastGlobalLumi_
Definition: FastMonitoringService.h:251
evf::FastMonitoringService::runDirectory_
boost::filesystem::path runDirectory_
Definition: FastMonitoringService.h:284
evf::FastMonitoringService::jobFailure
void jobFailure()
Definition: FastMonitoringService.cc:399
evf::FastMonitoringService::prePathEvent
void prePathEvent(edm::StreamContext const &, edm::PathContext const &)
Definition: FastMonitoringService.cc:576
evf::FastMonitoringService::nOutputModules_
unsigned int nOutputModules_
Definition: FastMonitoringService.h:296
edm::ParameterSetDescription::setAllowAnything
void setAllowAnything()
allow any parameter label/value pairs
Definition: ParameterSetDescription.cc:37
evf::FastMonitoringThread::inSupNewFileWaitThread
Definition: FastMonitoringThread.h:65
res
Definition: Electron.h:6
evf::FastMonitoringService::slowName_
std::string slowName_
Definition: FastMonitoringService.h:243
evf::FastMonitoringThread::inSupLockPolling
Definition: FastMonitoringThread.h:60
evf::FastMonitoringService::preEvent
void preEvent(edm::StreamContext const &)
Definition: FastMonitoringService.cc:604
jsoncollector::IntJ::value
long & value()
Definition: JsonMonitorable.h:88
evf::FastMonitoringService::postEvent
void postEvent(edm::StreamContext const &)
Definition: FastMonitoringService.cc:606
evf::FastMonitoringService::isInitTransition_
std::atomic< bool > isInitTransition_
Definition: FastMonitoringService.h:252
edm::ActivityRegistry::watchPreGlobalEndLumi
void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:347
edm::ActivityRegistry::watchPreallocate
void watchPreallocate(Preallocate::slot_type const &iSlot)
Definition: ActivityRegistry.h:142
edm::ActivityRegistry::watchPreGlobalEarlyTermination
void watchPreGlobalEarlyTermination(PreGlobalEarlyTermination::slot_type const &iSlot)
Definition: ActivityRegistry.h:434
edm::ActivityRegistry::watchPostStreamBeginLumi
void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:380
evf::FastMonitoringService::nopath_
static const std::string nopath_
Definition: FastMonitoringService.h:123
evf::FastMonitoringService::fileLookStop_
timeval fileLookStop_
Definition: FastMonitoringService.h:249
evf::FastMonitoringThread::inWaitInput_noFile
Definition: FastMonitoringThread.h:78
edm::ActivityRegistry::watchPreGlobalBeginLumi
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
Definition: ActivityRegistry.h:333
evf::FastMonitoringService::makeInputLegendaJson
std::string makeInputLegendaJson()
Definition: FastMonitoringService.cc:213
evf::FastMonitoringThread::MonitorData::fastPathProcessedJ_
jsoncollector::IntJ fastPathProcessedJ_
Definition: FastMonitoringThread.h:119
edm::TerminationOrigin::ExceptionFromAnotherContext
edm::ActivityRegistry::watchPreModuleBeginJob
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
Definition: ActivityRegistry.h:627
evf::FastMonitoringService::preGlobalEarlyTermination
void preGlobalEarlyTermination(edm::GlobalContext const &, edm::TerminationOrigin)
Definition: FastMonitoringService.cc:363
evf::FastMonitoringService::Encoding::encode
int encode(const void *add)
Definition: FastMonitoringService.h:81
edm::ActivityRegistry::watchPostModuleEvent
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:677
evf::FastMonitoringThread::inNoRequest
Definition: FastMonitoringThread.h:49
evf::FastMonitoringThread::inWaitChunk_busy
Definition: FastMonitoringThread.h:90
evf::FastMonitoringThread::inWaitInput_newFileWaitThread
Definition: FastMonitoringThread.h:81
evf::FastMonitoringThread::jsonMonitor_
std::unique_ptr< jsoncollector::FastMonitor > jsonMonitor_
Definition: FastMonitoringThread.h:223
evf::FastMonitoringService::accuSize_
std::map< unsigned int, unsigned long > accuSize_
Definition: FastMonitoringService.h:268
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
evf::FastMonitoringService::makePathLegendaJson
std::string makePathLegendaJson()
Definition: FastMonitoringService.cc:184
Exception
Definition: hltDiff.cc:246
evf::FastMonitoringThread::inSupBusy
Definition: FastMonitoringThread.h:59
edm::ActivityRegistry::watchPreSourceEvent
void watchPreSourceEvent(PreSourceEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:182
evf::FastMonitoringService::threadIDAvailable_
bool threadIDAvailable_
Definition: FastMonitoringService.h:286
evf::FastMonitoringService::inputStateNames
static const std::string inputStateNames[FastMonitoringThread::inCOUNT]
Definition: FastMonitoringService.h:120
evf::FastMonitoringService::filePerFwkStream_
bool filePerFwkStream_
Definition: FastMonitoringService.h:244
evf::FastMonitoringThread::MonitorData::fastLockCountJ_
jsoncollector::IntJ fastLockCountJ_
Definition: FastMonitoringThread.h:110
evf::FastMonitoringThread::MonitorData::fastMacrostateJ_
jsoncollector::IntJ fastMacrostateJ_
Definition: FastMonitoringThread.h:105
evf::FastMonitoringThread::inWaitChunk_waitFreeChunk
Definition: FastMonitoringThread.h:86
evf::FastMonitoringService::makeModuleLegendaJson
std::string makeModuleLegendaJson()
Definition: FastMonitoringService.cc:196
evf::FastMonitoringThread::inNoRequestWithIdleThreads
Definition: FastMonitoringThread.h:50
evf::FastMonitoringThread::inSupNoFile
Definition: FastMonitoringThread.h:62
evf::FastMonitoringService::preallocate
void preallocate(edm::service::SystemBounds const &)
Definition: FastMonitoringService.cc:223
jsoncollector::IntJ
Definition: JsonMonitorable.h:66
evf::FastMonitoringThread::inSupLockPollingCopying
Definition: FastMonitoringThread.h:61
evf::FastMonitoringThread::inWaitInput_waitFreeChunk
Definition: FastMonitoringThread.h:70
evf::FastMonitoringService::pathLegendFileJson_
std::string pathLegendFileJson_
Definition: FastMonitoringService.h:293
evf::FastMonitoringService::totalEventsProcessed_
std::atomic< unsigned long > totalEventsProcessed_
Definition: FastMonitoringService.h:288
evf::FastMonitoringThread::inSupNewFileWaitChunkCopying
Definition: FastMonitoringThread.h:66
evf::FastMonitoringThread::inWaitChunk_runEnd
Definition: FastMonitoringThread.h:93
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
evf::FastMonitoringService::fastMicrostateDefPath_
std::string fastMicrostateDefPath_
Definition: FastMonitoringService.h:242
evf::FastMonitoringService::ministate_
std::vector< ContainableAtomic< const void * > > ministate_
Definition: FastMonitoringService.h:259
evf::FastMonitoringService::leadTimes_
std::vector< double > leadTimes_
Definition: FastMonitoringService.h:269
evf::FastMonitoringService::microstateDefPath_
std::string microstateDefPath_
Definition: FastMonitoringService.h:242
edm::ActivityRegistry::watchPrePathEvent
void watchPrePathEvent(PrePathEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:412
evf::FastMonitoringService::doStreamEOLSnapshot
void doStreamEOLSnapshot(const unsigned int ls, const unsigned int streamID)
Definition: FastMonitoringService.h:185
evf::FastMonitoringService::moduleLegendFile_
std::string moduleLegendFile_
Definition: FastMonitoringService.h:290
evf::FastMonitoringThread::inWaitInput_waitFreeThread
Definition: FastMonitoringThread.h:72
evf::FastMonitoringService::postStreamEndLumi
void postStreamEndLumi(edm::StreamContext const &)
Definition: FastMonitoringService.cc:572
evf::FastMonitoringService::filesProcessedDuringLumi_
std::map< unsigned int, unsigned int > filesProcessedDuringLumi_
Definition: FastMonitoringService.h:266
evf::FastMonitoringThread::inWaitInput_newFileWaitThreadCopying
Definition: FastMonitoringThread.h:80
evf::FastMonitoringService::preStreamEarlyTermination
void preStreamEarlyTermination(edm::StreamContext const &, edm::TerminationOrigin)
Definition: FastMonitoringService.cc:348
evf::FastMonitoringService::snapCounter_
unsigned int snapCounter_
Definition: FastMonitoringService.h:241
evf::FastMonitoringService::postEndJob
void postEndJob()
Definition: FastMonitoringService.cc:431
evf::FastMonitoringService::preBeginJob
void preBeginJob(edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &pc)
Definition: FastMonitoringService.cc:233
evf::FastMonitoringThread::inSupWaitFreeThreadCopying
Definition: FastMonitoringThread.h:58
evf::FastMonitoringThread::inCOUNT
Definition: FastMonitoringThread.h:100
evf::FastMonitoringService::pathLegendWritten_
bool pathLegendWritten_
Definition: FastMonitoringService.h:295
evf::FastMonitoringThread::inWaitInput_fileLimit
Definition: FastMonitoringThread.h:69
evf::FastMonitoringThread::inWaitChunk_waitFreeChunkCopying
Definition: FastMonitoringThread.h:87
evf::FastMonitoringThread::inWaitChunk_lockPollingCopying
Definition: FastMonitoringThread.h:92
evf::FastMonitoringThread::inWaitInput_newFile
Definition: FastMonitoringThread.h:79
lumi
Definition: LumiSectionData.h:20
evf::FastMonitoringThread::inWaitInput_newFileWaitChunk
Definition: FastMonitoringThread.h:83
evf::FastMonitoringThread::MonitorData::ministateBins_
unsigned int ministateBins_
Definition: FastMonitoringThread.h:128
evf::FastMonitoringThread::MonitorData::ministateEncoded_
std::vector< unsigned int > ministateEncoded_
Definition: FastMonitoringThread.h:117
evf::FastMonitoringThread::inWaitChunk_waitFreeThread
Definition: FastMonitoringThread.h:88
evf::FastMonitoringThread::inWaitInput_waitFreeThreadCopying
Definition: FastMonitoringThread.h:73
evf::FastMonitoringService::Encoding::completeReservedWithDummies
void completeReservedWithDummies()
Definition: FastMonitoringService.h:98
evf::FastMonitoringService::sleepTime_
int sleepTime_
Definition: FastMonitoringService.h:239
nReservedPaths
static const int nReservedPaths
Definition: FastMonitoringService.cc:30
edm::ActivityRegistry::watchPreModuleEvent
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
Definition: ActivityRegistry.h:671
evf::FastMonitoringThread::inWaitInput_busy
Definition: FastMonitoringThread.h:74
Json::Value
Represents a JSON value.
Definition: value.h:99
evf::FastMonitoringService::inputState_
std::atomic< FastMonitoringThread::InputState > inputState_
Definition: FastMonitoringService.h:234
evf::FastMonitoringService::Encoding::decode
const void * decode(unsigned int index)
Definition: FastMonitoringService.h:85
evf::MicroStateService::reservedMicroStateNames
static const edm::ModuleDescription reservedMicroStateNames[mCOUNT]
Definition: MicroStateService.h:35
evf::FastMonitoringThread::start
void start(void(FastMonitoringService::*fp)(), FastMonitoringService *cp)
Definition: FastMonitoringThread.h:207
evf::FastMonitoringService::fmt_
FastMonitoringThread fmt_
Definition: FastMonitoringService.h:230