diff --git a/EventFilter/Utilities/interface/FastMonitoringService.h b/EventFilter/Utilities/interface/FastMonitoringService.h index b20a1107d37d8..347eb77a33923 100644 --- a/EventFilter/Utilities/interface/FastMonitoringService.h +++ b/EventFilter/Utilities/interface/FastMonitoringService.h @@ -262,6 +262,7 @@ namespace evf{ std::string pathLegendFile_; std::string pathLegendFileJson_; bool pathLegendWritten_ = false; + unsigned int nOutputModules_ =0; std::atomic monInit_; bool exception_detected_ = false; diff --git a/EventFilter/Utilities/src/FastMonitoringService.cc b/EventFilter/Utilities/src/FastMonitoringService.cc index a476ad61f26cd..71ca199c96220 100644 --- a/EventFilter/Utilities/src/FastMonitoringService.cc +++ b/EventFilter/Utilities/src/FastMonitoringService.cc @@ -21,6 +21,7 @@ constexpr double throughputFactor() {return (1000000)/double(1024*1024);} #define NRESERVEDMODULES 33 +#define NSPECIALMODULES 7 #define NRESERVEDPATHS 1 namespace evf{ @@ -100,9 +101,13 @@ namespace evf{ for(int i = 0; i < encModule_.current_; i++) legendaVector.append(Json::Value(((const edm::ModuleDescription *)(encModule_.decode(i)))->moduleLabel())); Json::Value valReserved(NRESERVEDMODULES); + Json::Value valSpecial(NSPECIALMODULES); + Json::Value valOutputModules(nOutputModules_); Json::Value moduleLegend; moduleLegend["names"]=legendaVector; moduleLegend["reserved"]=valReserved; + moduleLegend["special"]=valSpecial; + moduleLegend["output"]=valOutputModules; Json::StyledWriter writer; return writer.write(moduleLegend); } @@ -279,8 +284,10 @@ namespace evf{ //build a map of modules keyed by their module description address //here we need to treat output modules in a special way so they can be easily singled out if(desc.moduleName() == "Stream" || desc.moduleName() == "ShmStreamConsumer" || desc.moduleName() == "EvFOutputModule" || - desc.moduleName() == "EventStreamFileWriter" || desc.moduleName() == "PoolOutputModule") + desc.moduleName() == "EventStreamFileWriter" || desc.moduleName() == "PoolOutputModule") { encModule_.updateReserved((void*)&desc); + nOutputModules_++; + } else encModule_.update((void*)&desc); }