#include <FWCore/MessageLogger/interface/JobReport.h>
Public Types | |
typedef unsigned int | RunNumber |
typedef std::size_t | Token |
Public Member Functions | |
std::string | dumpFiles (void) |
debug/test util | |
void | eventReadFromFile (Token fileToken, unsigned int run, unsigned int event) |
Report that the event with the given id has been read from the file identified by the given Token. | |
void | eventWrittenToFile (Token fileToken, unsigned int run, unsigned int event) |
Report that the event with the given id has been written to the file identified by the given Token. | |
void | inputFileClosed (Token fileToken) |
Report that the input file identified by the given Token has been closed. | |
Token | inputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &inputSourceClassName, std::string const &moduleLabel, std::vector< std::string > const &branchNames) |
Token | inputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &inputSourceClassName, std::string const &moduleLabel, std::string const &guid, std::vector< std::string > const &branchNames) |
Report that an input file has been opened. | |
JobReport (std::ostream *outputStream) | |
JobReport () | |
void | outputFileClosed (Token fileToken) |
Report that the output file identified by the given Token has been closed. | |
Token | outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::vector< std::string > const &branchNames) |
Token | outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::string const &guid, std::vector< std::string > const &branchNames) |
Token | outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::string const &guid, std::string const &dataType, std::vector< std::string > const &branchNames) |
Token | outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::string const &guid, std::string const &dataType, std::string const &branchHash, std::vector< std::string > const &branchNames) |
Report that an output file has been opened. | |
void | overrideContributingInputs (Token outputToken, std::vector< Token > const &inputTokens) |
Override the list of input files seen by an output file for use with EdmFastMerge. | |
void | overrideEventsRead (Token fileToken, const int eventsRead) |
For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events read count for an input file before reporting it closed. | |
void | overrideEventsWritten (Token fileToken, const int eventsWritten) |
For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events written count for an output file before reporting it closed. | |
void | reportAnalysisFile (std::string const &fileName, std::map< std::string, std::string > const &fileData) |
void | reportDataType (Token fileToken, std::string const &dataType) |
Report the data type of a file after it has been opened Needed since the data type isnt known until an event has been read. | |
void | reportError (std::string const &shortDesc, std::string const &longDesc, int const &exitCode) |
void | reportError (std::string const &shortDesc, std::string const &longDesc) |
Report an exception, providing details of the problem as a short description (Eg "XXXError") and a long description (Eg "XXX crashed because...") Also overload this method to accept an optional standard exit code. | |
void | reportGeneratorInfo (std::string const &name, std::string const &value) |
Report key/value style generator/lumi information Eg: reportGeneratorInfo("CrossSection" , "ValueHere") No special chars in the value string. | |
void | reportInputLumiSection (unsigned int run, unsigned int lumiSectId) |
API for reporting a Lumi Section to the job report. | |
void | reportInputRunNumber (unsigned int run) |
API to report a run read from input. | |
void | reportLumiSection (unsigned int run, unsigned int lumiSectId) |
API for reporting a Lumi Section to the job report. | |
void | reportMemoryInfo (std::vector< std::string > const &memoryData) |
Report Memory statistics ALTERNATE FORM - USING THIS MAY NECESSITATE CHANGES IN PARSING XML! Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report. | |
void | reportMemoryInfo (std::map< std::string, double > const &memoryData) |
Report Memory statistics Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report. | |
void | reportMessageInfo (std::map< std::string, double > const &messageData) |
Report Message statistics Invoked by the MessageLogger service to send an end of job summary about numbers of various categories messages issued for inclusion in the job report. | |
void | reportPerformanceForModule (std::string const &metricClass, std::string const &moduleName, std::map< std::string, std::string > const &metrics) |
void | reportPerformanceSummary (std::string const &metricClass, std::map< std::string, std::string > const &metrics) |
Performance Reports. | |
void | reportPSetHash (std::string const &hashValue) |
Report PSetHash. | |
void | reportRandomStateFile (std::string const &name) |
Report the name of the random engine persistency file. | |
void | reportRunNumber (unsigned int run) |
API to report the a run written to output. | |
void | reportSkippedEvent (unsigned int run, unsigned int event) |
void | reportSkippedFile (std::string const &pfn, std::string const &lfn) |
Report Skipped File. | |
void | reportStorageStats (std::string const &data) |
Report Storage Statistics. | |
void | reportTimingInfo (std::map< std::string, double > const &timingData) |
Report Timing statistics Invoked by the Timing service to send an end of job summary about time taken for inclusion in the job report. | |
~JobReport () | |
Protected Member Functions | |
boost::scoped_ptr < JobReportImpl > & | impl () |
Private Attributes | |
boost::scoped_ptr< JobReportImpl > | impl_ |
Classes | |
struct | InputFile |
Description: Holds information about an InputFile. More... | |
struct | JobReportImpl |
struct | LumiSectionReport |
Description: Holds information about a Lumi section associated to a file. More... | |
struct | OutputFile |
Description: Holds information about an OutputFile. More... | |
struct | RunReport |
Definition at line 37 of file JobReport.h.
typedef unsigned int edm::JobReport::RunNumber |
Definition at line 39 of file JobReport.h.
typedef std::size_t edm::JobReport::Token |
Definition at line 40 of file JobReport.h.
JobReport::JobReport | ( | ) |
JobReport::JobReport | ( | std::ostream * | outputStream | ) |
JobReport::~JobReport | ( | ) |
Definition at line 424 of file JobReport.cc.
References flush().
00424 { 00425 impl_->writeGeneratorInfo(); 00426 impl_->flushFiles(); 00427 if(impl_->ost_) { 00428 *(impl_->ost_)<<"</FrameworkJobReport>\n"<<std::flush; 00429 } 00430 }
std::string JobReport::dumpFiles | ( | void | ) |
debug/test util
Definition at line 935 of file JobReport.cc.
References f, edm::JobReport::InputFile::logicalFileName, alivecheck_mergeAndRegister::msg, and edm::JobReport::InputFile::physicalFileName.
00935 { 00936 00937 std::ostringstream msg; 00938 00939 std::vector<JobReport::OutputFile>::iterator f; 00940 00941 for (f = impl_->outputFiles_.begin(); 00942 f != impl_->outputFiles_.end(); f++){ 00943 00944 msg << "\n<File>"; 00945 msg << *f; 00946 00947 msg << "\n<LumiSections>"; 00948 //std::vector<JobReport::LumiSectionReport>::iterator iLumi; 00949 //for (iLumi = f->lumiSections.begin(); 00950 // iLumi != f->lumiSections.end(); iLumi++){ 00951 // msg << *iLumi; 00952 //} 00953 //msg << "\n</LumiSections>\n"; 00954 msg << "\n<Inputs>"; 00955 std::vector<JobReport::Token>::iterator iInput; 00956 for (iInput = f->contributingInputs.begin(); 00957 iInput != f->contributingInputs.end(); iInput++) { 00958 JobReport::InputFile inpFile = impl_->inputFiles_[*iInput]; 00959 msg <<"\n<Input>"; 00960 msg <<"\n <LFN>" << inpFile.logicalFileName << "</LFN>"; 00961 msg <<"\n <PFN>" << inpFile.physicalFileName << "</PFN>"; 00962 msg <<"\n</Input>"; 00963 } 00964 msg << "\n</Inputs>"; 00965 msg << "\n</File>"; 00966 00967 } 00968 00969 return msg.str(); 00970 00971 }
void JobReport::eventReadFromFile | ( | JobReport::Token | fileToken, | |
unsigned int | run, | |||
unsigned int | event | |||
) |
Report that the event with the given id has been read from the file identified by the given Token.
Definition at line 494 of file JobReport.cc.
References f, and edm::JobReport::InputFile::numEventsRead.
00495 { 00496 JobReport::InputFile& f = impl_->getInputFileForToken(fileToken); 00497 f.numEventsRead++; 00498 //f.runsSeen.insert(run); 00499 }
void JobReport::eventWrittenToFile | ( | JobReport::Token | fileToken, | |
unsigned int | run, | |||
unsigned int | event | |||
) |
Report that the event with the given id has been written to the file identified by the given Token.
Definition at line 620 of file JobReport.cc.
References f, and edm::JobReport::OutputFile::numEventsWritten.
00621 { 00622 JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); 00623 f.numEventsWritten++; 00624 //f.runsSeen.insert(run); 00625 }
boost::scoped_ptr<JobReportImpl>& edm::JobReport::impl | ( | ) | [inline, protected] |
void JobReport::inputFileClosed | ( | JobReport::Token | fileToken | ) |
Report that the input file identified by the given Token has been closed.
An exception will be thrown if the given Token was not obtained from inputFileOpened.
Definition at line 509 of file JobReport.cc.
References f, and edm::JobReport::InputFile::fileHasBeenClosed.
00510 { 00511 JobReport::InputFile& f = impl_->getInputFileForToken(fileToken); 00512 // Dump information to the MessageLogger's JobSummary 00513 // about this file. 00514 // After setting the file to 'closed', we will no longer be able 00515 // to reference it by ID. 00516 f.fileHasBeenClosed = true; 00517 impl_->writeInputFile(f); 00518 }
JobReport::Token JobReport::inputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | inputSourceClassName, | |||
std::string const & | moduleLabel, | |||
std::vector< std::string > const & | branchNames | |||
) |
Definition at line 477 of file JobReport.cc.
00483 { 00484 return this->inputFileOpened(physicalFileName, 00485 logicalFileName, 00486 catalog, 00487 inputSourceClassName, 00488 moduleLabel, 00489 "", 00490 branchNames); 00491 }
JobReport::Token JobReport::inputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | inputSourceClassName, | |||
std::string const & | moduleLabel, | |||
std::string const & | guid, | |||
std::vector< std::string > const & | branchNames | |||
) |
Report that an input file has been opened.
The returned Token should be used for later identification of this file.
Definition at line 444 of file JobReport.cc.
References edm::JobReport::InputFile::branchNames, edm::JobReport::InputFile::catalog, edm::JobReport::InputFile::fileHasBeenClosed, edm::JobReport::InputFile::guid, edm::JobReport::InputFile::inputSourceClassName, edm::JobReport::InputFile::logicalFileName, edm::JobReport::InputFile::moduleLabel, edm::JobReport::InputFile::numEventsRead, edm::JobReport::InputFile::physicalFileName, and r.
00451 { 00452 // Do we have to worry about thread safety here? Or is this 00453 // service used in a way to make this safe? 00454 impl_->inputFiles_.push_back(JobReport::InputFile()); 00455 JobReport::InputFile& r = impl_->inputFiles_.back(); 00456 00457 r.logicalFileName = logicalFileName; 00458 r.physicalFileName = physicalFileName; 00459 r.catalog = catalog; 00460 r.inputSourceClassName = inputSourceClassName; 00461 r.moduleLabel = moduleLabel; 00462 r.guid = guid; 00463 // r.runsSeen is not modified 00464 r.numEventsRead = 0; 00465 r.branchNames = branchNames; 00466 r.fileHasBeenClosed = false; 00467 00468 JobReport::Token newToken = impl_->inputFiles_.size()-1; 00469 // 00470 // Add the new input file token to all output files 00471 // currently open. 00472 impl_->insertInputForOutputs(newToken); 00473 return newToken; 00474 }
void JobReport::outputFileClosed | ( | JobReport::Token | fileToken | ) |
Report that the output file identified by the given Token has been closed.
An exception will be thrown if the given Token was not obtained from outputFileOpened.
Definition at line 629 of file JobReport.cc.
References f, and edm::JobReport::OutputFile::fileHasBeenClosed.
00630 { 00631 JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); 00632 // Dump information to the MessageLogger's JobSummary 00633 // about this file. 00634 // After setting the file to 'closed', we will no longer be able 00635 // to reference it by ID. 00636 f.fileHasBeenClosed = true; 00637 impl_->writeOutputFile(f); 00638 00639 }
JobReport::Token JobReport::outputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | outputModuleClassName, | |||
std::string const & | moduleLabel, | |||
std::vector< std::string > const & | branchNames | |||
) |
Definition at line 599 of file JobReport.cc.
00605 { 00606 00607 return this->outputFileOpened(physicalFileName, 00608 logicalFileName, 00609 catalog, 00610 outputModuleClassName, 00611 moduleLabel, 00612 "", 00613 "", 00614 branchNames); 00615 }
JobReport::Token JobReport::outputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | outputModuleClassName, | |||
std::string const & | moduleLabel, | |||
std::string const & | guid, | |||
std::vector< std::string > const & | branchNames | |||
) |
Definition at line 577 of file JobReport.cc.
00584 { 00585 return this->outputFileOpened(physicalFileName, 00586 logicalFileName, 00587 catalog, 00588 outputModuleClassName, 00589 moduleLabel, 00590 guid, 00591 "", 00592 branchNames); 00593 00594 }
JobReport::Token JobReport::outputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | outputModuleClassName, | |||
std::string const & | moduleLabel, | |||
std::string const & | guid, | |||
std::string const & | dataType, | |||
std::vector< std::string > const & | branchNames | |||
) |
Definition at line 554 of file JobReport.cc.
00562 { 00563 return this->outputFileOpened(physicalFileName, 00564 logicalFileName, 00565 catalog, 00566 outputModuleClassName, 00567 moduleLabel, 00568 guid, 00569 "", 00570 "NO_BRANCH_HASH", 00571 branchNames); 00572 00573 00574 }
JobReport::Token JobReport::outputFileOpened | ( | std::string const & | physicalFileName, | |
std::string const & | logicalFileName, | |||
std::string const & | catalog, | |||
std::string const & | outputModuleClassName, | |||
std::string const & | moduleLabel, | |||
std::string const & | guid, | |||
std::string const & | dataType, | |||
std::string const & | branchHash, | |||
std::vector< std::string > const & | branchNames | |||
) |
Report that an output file has been opened.
The returned Token should be used for later identification of this file.
Definition at line 521 of file JobReport.cc.
References edm::JobReport::OutputFile::branchHash, edm::JobReport::OutputFile::branchNames, edm::JobReport::OutputFile::catalog, edm::JobReport::OutputFile::contributingInputs, edm::JobReport::OutputFile::dataType, edm::JobReport::OutputFile::fileHasBeenClosed, edm::JobReport::OutputFile::guid, edm::JobReport::OutputFile::logicalFileName, edm::JobReport::OutputFile::moduleLabel, edm::JobReport::OutputFile::numEventsWritten, edm::JobReport::OutputFile::outputModuleClassName, edm::JobReport::OutputFile::physicalFileName, and r.
00530 { 00531 impl_->outputFiles_.push_back(JobReport::OutputFile()); 00532 JobReport::OutputFile& r = impl_->outputFiles_.back(); 00533 00534 r.logicalFileName = logicalFileName; 00535 r.physicalFileName = physicalFileName; 00536 r.catalog = catalog; 00537 r.outputModuleClassName = outputModuleClassName; 00538 r.moduleLabel = moduleLabel; 00539 r.guid = guid; 00540 r.dataType = dataType; 00541 r.branchHash = branchHash; 00542 // r.runsSeen is not modified 00543 r.numEventsWritten = 0; 00544 r.branchNames = branchNames; 00545 r.fileHasBeenClosed = false; 00546 // 00547 // Init list of contributors to list of open input file Tokens 00548 // 00549 r.contributingInputs = std::vector<JobReport::Token>(impl_->openInputFiles()); 00550 return impl_->outputFiles_.size()-1; 00551 }
void JobReport::overrideContributingInputs | ( | Token | outputToken, | |
std::vector< Token > const & | inputTokens | |||
) |
Override the list of input files seen by an output file for use with EdmFastMerge.
Definition at line 662 of file JobReport.cc.
References edm::JobReport::OutputFile::contributingInputs, and f.
00664 { 00665 // Get the required output file instance using the token 00666 JobReport::OutputFile& f = impl_->getOutputFileForToken(outputToken); 00667 // override its contributing inputs data 00668 f.contributingInputs = inputTokens; 00669 }
For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events read count for an input file before reporting it closed.
Definition at line 652 of file JobReport.cc.
References f, and edm::JobReport::InputFile::numEventsRead.
00653 { 00654 // Get the required input file instance using the token 00655 JobReport::InputFile& f = impl_->getInputFileForToken(fileToken); 00656 // set the events read parameter to the provided value 00657 f.numEventsRead = eventsRead; 00658 00659 }
For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events written count for an output file before reporting it closed.
Definition at line 642 of file JobReport.cc.
References f, and edm::JobReport::OutputFile::numEventsWritten.
00643 { 00644 // Get the required output file instance using the token 00645 JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); 00646 // set the eventsWritten parameter to the provided value 00647 f.numEventsWritten = eventsWritten; 00648 00649 }
void JobReport::reportAnalysisFile | ( | std::string const & | fileName, | |
std::map< std::string, std::string > const & | fileData | |||
) |
Definition at line 718 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00718 { 00719 00720 if(impl_->ost_) { 00721 std::ostream& msg = *(impl_->ost_); 00722 //std::ostringstream msg; 00723 msg << "<AnalysisFile>\n" 00724 << " <FileName>" << fileName <<"</FileName>\n"; 00725 00726 std::map<std::string, std::string>::const_iterator pos; 00727 for (pos = fileData.begin(); pos != fileData.end(); ++pos){ 00728 msg << " <" << pos->first 00729 << " Value=\"" << pos->second << "\" />" 00730 << "\n"; 00731 } 00732 00733 msg << "</AnalysisFile>\n"; 00734 //LogError("FwkJob") << msg.str(); 00735 msg <<std::flush; 00736 } 00737 00738 00739 }
Report the data type of a file after it has been opened Needed since the data type isnt known until an event has been read.
Definition at line 502 of file JobReport.cc.
References edm::JobReport::OutputFile::dataType, and f.
00503 { 00504 JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); 00505 f.dataType = dataType; 00506 }
void JobReport::reportError | ( | std::string const & | shortDesc, | |
std::string const & | longDesc, | |||
int const & | exitCode | |||
) |
Definition at line 743 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00746 { 00747 if(impl_->ost_) { 00748 std::ostream& msg = *(impl_->ost_); 00749 //std::ostringstream msg; 00750 msg << "<FrameworkError ExitStatus=\""<< exitCode 00751 <<"\" Type=\"" << shortDesc <<"\" >\n"; 00752 msg << "<![CDATA[\n" << longDesc << "\n]]>\n"; 00753 msg << "</FrameworkError>\n"; 00754 //LogError("FwkJob") << msg.str(); 00755 msg <<std::flush; 00756 } 00757 }
void JobReport::reportError | ( | std::string const & | shortDesc, | |
std::string const & | longDesc | |||
) |
Report an exception, providing details of the problem as a short description (Eg "XXXError") and a long description (Eg "XXX crashed because...") Also overload this method to accept an optional standard exit code.
Definition at line 703 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
Referenced by edm::printBadAllocException(), edm::printCmsException(), edm::printStdException(), and edm::printUnknownException().
00705 { 00706 if(impl_->ost_) { 00707 std::ostream& msg =*(impl_->ost_); 00708 msg << "<FrameworkError ExitStatus=\"1\" Type=\"" << shortDesc <<"\" >\n"; 00709 msg << "<![CDATA[\n" << longDesc << "\n]]>\n"; 00710 msg << "</FrameworkError>\n"; 00711 //LogError("FwkJob") << msg.str(); 00712 msg << std::flush; 00713 } 00714 }
void JobReport::reportGeneratorInfo | ( | std::string const & | name, | |
std::string const & | value | |||
) |
Report key/value style generator/lumi information Eg: reportGeneratorInfo("CrossSection" , "ValueHere") No special chars in the value string.
Definition at line 854 of file JobReport.cc.
API for reporting a Lumi Section to the job report.
for output files, call only if lumi section is written to the output file
Definition at line 684 of file JobReport.cc.
void JobReport::reportMemoryInfo | ( | std::vector< std::string > const & | memoryData | ) |
Report Memory statistics ALTERNATE FORM - USING THIS MAY NECESSITATE CHANGES IN PARSING XML! Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report.
Definition at line 809 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00809 { 00810 00811 if(impl_->ost_) { 00812 std::ostream& msg=*(impl_->ost_); 00813 msg << "<MemoryService>\n"; 00814 00815 std::vector<std::string>::const_iterator pos; 00816 for (pos = memoryData.begin(); pos != memoryData.end(); ++pos){ 00817 msg << *pos << "\n"; 00818 } 00819 msg << "</MemoryService>\n"; 00820 msg << std::flush; 00821 } 00822 }
void JobReport::reportMemoryInfo | ( | std::map< std::string, double > const & | memoryData | ) |
Report Memory statistics Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report.
Definition at line 792 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00792 { 00793 00794 if(impl_->ost_) { 00795 std::ostream& msg=*(impl_->ost_); 00796 msg << "<MemoryService>\n"; 00797 std::map<std::string, double>::const_iterator pos; 00798 for (pos = memoryData.begin(); pos != memoryData.end(); ++pos){ 00799 msg << " <" << pos->first 00800 << " Value=\"" << pos->second << "\" />" 00801 << "\n"; 00802 } 00803 msg << "</MemoryService>\n"; 00804 msg << std::flush; 00805 } 00806 }
void JobReport::reportMessageInfo | ( | std::map< std::string, double > const & | messageData | ) |
Report Message statistics Invoked by the MessageLogger service to send an end of job summary about numbers of various categories messages issued for inclusion in the job report.
Definition at line 825 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00825 { 00826 00827 if(impl_->ost_) { 00828 std::ostream& msg=*(impl_->ost_); 00829 msg << "<MessageSummary>\n"; 00830 std::map<std::string, double>::const_iterator pos; 00831 for (pos = messageData.begin(); pos != messageData.end(); ++pos){ 00832 msg << " <" << pos->first 00833 << " Value=\"" << pos->second << "\" />" 00834 << "\n"; 00835 } 00836 msg << "</MessageSummary>\n"; 00837 msg << std::flush; 00838 } 00839 }
void JobReport::reportPerformanceForModule | ( | std::string const & | metricClass, | |
std::string const & | moduleName, | |||
std::map< std::string, std::string > const & | metrics | |||
) |
Definition at line 910 of file JobReport.cc.
References flush(), iter, and alivecheck_mergeAndRegister::msg.
00913 { 00914 if(impl_->ost_){ 00915 std::ostream& msg =*(impl_->ost_); 00916 msg << "<PerformanceReport>\n" 00917 << " <PerformanceModule Metric=\"" << metricClass << "\" " 00918 << " Module=\""<< moduleName << "\" >\n"; 00919 00920 std::map<std::string, std::string>::const_iterator iter; 00921 for( iter = metrics.begin(); iter != metrics.end(); ++iter ) { 00922 msg << " <Metric Name=\"" << iter->first << "\" " 00923 <<"Value=\"" << iter->second << "\"/>\n"; 00924 } 00925 00926 msg << " </PerformanceModule>\n" 00927 << "</PerformanceReport>\n"; 00928 msg << std::flush; 00929 //LogInfo("FwkJob") << msg.str(); 00930 } 00931 }
void JobReport::reportPerformanceSummary | ( | std::string const & | metricClass, | |
std::map< std::string, std::string > const & | metrics | |||
) |
Performance Reports.
Two categories: Summary for entire job and module for a specific module Each one requires a performance metric class such as Timing, Memory, CPU, Trigger etc.
Definition at line 888 of file JobReport.cc.
References flush(), iter, and alivecheck_mergeAndRegister::msg.
00890 { 00891 if(impl_->ost_){ 00892 std::ostream& msg =*(impl_->ost_); 00893 msg << "<PerformanceReport>\n" 00894 << " <PerformanceSummary Metric=\"" << metricClass << "\">\n"; 00895 00896 std::map<std::string, std::string>::const_iterator iter; 00897 for( iter = metrics.begin(); iter != metrics.end(); ++iter ) { 00898 msg << " <Metric Name=\"" << iter->first << "\" " 00899 <<"Value=\"" << iter->second << "\"/>\n"; 00900 } 00901 00902 msg << " </PerformanceSummary>\n" 00903 << "</PerformanceReport>\n"; 00904 msg << std::flush; 00905 //LogInfo("FwkJob") << msg.str(); 00906 } 00907 }
void JobReport::reportPSetHash | ( | std::string const & | hashValue | ) |
Report PSetHash.
Definition at line 874 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00875 { 00876 if(impl_->ost_){ 00877 std::ostream& msg =*(impl_->ost_); 00878 msg << "<PSetHash>" 00879 << hashValue 00880 << "</PSetHash>\n"; 00881 //LogInfo("FwkJob") << msg.str(); 00882 msg << std::flush; 00883 } 00884 }
void JobReport::reportRandomStateFile | ( | std::string const & | name | ) |
Report the name of the random engine persistency file.
Definition at line 861 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00862 { 00863 if(impl_->ost_) { 00864 std::ostream& msg = *(impl_->ost_); 00865 msg << "<RandomServiceStateFile>\n" 00866 << name << "\n" 00867 << "</RandomServiceStateFile>\n"; 00868 //LogInfo("FwkJob") << msg.str(); 00869 msg << std::flush; 00870 } 00871 }
Definition at line 672 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00673 { 00674 if(impl_->ost_) { 00675 std::ostream& msg = *(impl_->ost_); 00676 msg << "<SkippedEvent Run=\"" << run << "\""; 00677 msg << " Event=\"" << event << "\" />\n"; 00678 msg <<std::flush; 00679 //LogInfo("FwkJob") << msg.str(); 00680 } 00681 }
void JobReport::reportSkippedFile | ( | std::string const & | pfn, | |
std::string const & | lfn | |||
) |
Report Skipped File.
Report that a file has been skipped due to it not being found.
Definition at line 760 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00761 { 00762 00763 if(impl_->ost_) { 00764 std::ostream& msg = *(impl_->ost_); 00765 msg << "<SkippedFile Pfn=\"" << pfn << "\""; 00766 msg << " Lfn=\"" << lfn << "\" />\n"; 00767 msg <<std::flush; 00768 //LogInfo("FwkJob") << msg.str(); 00769 00770 } 00771 }
void JobReport::reportStorageStats | ( | std::string const & | data | ) |
Report Storage Statistics.
Definition at line 842 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00843 { 00844 if(impl_->ost_) { 00845 std::ostream& msg = *(impl_->ost_); 00846 msg << "<StorageStatistics>\n" 00847 << data << "\n" 00848 << "</StorageStatistics>\n"; 00849 //LogInfo("FwkJob") << msg.str(); 00850 msg << std::flush; 00851 } 00852 }
void JobReport::reportTimingInfo | ( | std::map< std::string, double > const & | timingData | ) |
Report Timing statistics Invoked by the Timing service to send an end of job summary about time taken for inclusion in the job report.
Definition at line 774 of file JobReport.cc.
References flush(), and alivecheck_mergeAndRegister::msg.
00774 { 00775 00776 if(impl_->ost_) { 00777 std::ostream& msg=*(impl_->ost_); 00778 msg << "<TimingService>\n"; 00779 std::map<std::string, double>::const_iterator pos; 00780 for (pos = timingData.begin(); pos != timingData.end(); ++pos){ 00781 msg << " <" << pos->first 00782 << " Value=\"" << pos->second << "\" />" 00783 << "\n"; 00784 } 00785 msg << "</TimingService>\n"; 00786 //LogInfo("FwkJob") << msg.str(); 00787 msg << std::flush; 00788 } 00789 }
boost::scoped_ptr<JobReportImpl> edm::JobReport::impl_ [private] |