Skip to content

Commit

Permalink
Merge pull request #9614 from smorovic/fixes-jsonmonitoring-75X
Browse files Browse the repository at this point in the history
Fixes to JSONMonotoring (75X)
  • Loading branch information
cmsbuild committed Jun 16, 2015
2 parents cfa9f3c + 33260eb commit 8f70a00
Showing 1 changed file with 51 additions and 50 deletions.
101 changes: 51 additions & 50 deletions HLTrigger/JSONMonitoring/plugins/TriggerJSONMonitoring.cc
Expand Up @@ -17,6 +17,8 @@
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "EventFilter/Utilities/interface/FastMonitoringService.h"

#include <fstream>

TriggerJSONMonitoring::TriggerJSONMonitoring(const edm::ParameterSet& ps)
Expand Down Expand Up @@ -460,7 +462,18 @@ TriggerJSONMonitoring::endLuminosityBlockSummary(const edm::LuminosityBlock& iLu
void
TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBlock& iLumi, const edm::EventSetup& iSetup, const LuminosityBlockContext* iContext, hltJson::lumiVars* iSummary)
{
if (iSummary->processed->value().at(0)!=0) {

unsigned int iLs = iLumi.luminosityBlock();
unsigned int iRun = iLumi.run();

bool writeFiles=true;
if (edm::Service<evf::MicroStateService>().isAvailable()) {
evf::FastMonitoringService * fms = (evf::FastMonitoringService *)(edm::Service<evf::MicroStateService>().operator->());
if (fms)
writeFiles = fms->getEventsProcessedForLumi(iLs)>0;
}

if (iSummary->processed->value().at(0)!=0 && writeFiles) {
Json::StyledWriter writer;

char hostname[33];
Expand All @@ -473,9 +486,6 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc
std::stringstream sOutDef;
sOutDef << monPath << "output_" << getpid() << ".jsd";

unsigned int iLs = iLumi.luminosityBlock();
unsigned int iRun = iLumi.run();

//Write the .jsndata files which contain the actual rates
//HLT .jsndata file
Json::Value hltJsnData;
Expand All @@ -502,6 +512,14 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc
outHltJsnData<<result;
outHltJsnData.close();

//HLT jsn entries
StringJ hltJsnFilelist;
hltJsnFilelist.update(ssHltJsnData.str());
IntJ hltJsnFilesize = result.size();
IntJ hltJsnFileAdler32 = cms::Adler32(result.c_str(),result.size());
StringJ hltJsnInputFiles;
hltJsnInputFiles.update("");

//L1 .jsndata file
Json::Value l1JsnData;
l1JsnData[DataPoint::SOURCE] = sourceHost;
Expand All @@ -521,40 +539,34 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc
outL1JsnData<<result;
outL1JsnData.close();

StringJ l1JsnFilelist;
l1JsnFilelist.update(ssL1JsnData.str());
IntJ l1JsnFilesize = result.size();
IntJ l1JsnFileAdler32 = cms::Adler32(result.c_str(), result.size());
StringJ l1JsnInputFiles;
l1JsnInputFiles.update("");

//Create special DAQ JSON file for L1 and HLT rates pseudo-streams
//Only three variables are different between the files:
//the file list, the file size and the Adler32 value
IntJ daqJsnProcessed_ = iSummary->processed->value().at(0);
IntJ daqJsnAccepted_ = daqJsnProcessed_;
IntJ daqJsnErrorEvents_ = 0;
IntJ daqJsnRetCodeMask_ = 0;

struct stat st;

//HLT
StringJ hltJsnFilelist_;
hltJsnFilelist_.update(ssHltJsnData.str());

const char* cName = (monPath+ssHltJsnData.str()).c_str();
stat(cName, &st);

IntJ hltJsnFilesize_ = st.st_size;
StringJ hltJsnInputFiles_;
hltJsnInputFiles_.update("");
IntJ hltJsnFileAdler32_ = cms::Adler32(cName, st.st_size);
IntJ daqJsnProcessed = iSummary->processed->value().at(0);
IntJ daqJsnAccepted = daqJsnProcessed;
IntJ daqJsnErrorEvents = 0;
IntJ daqJsnRetCodeMask = 0;

//write out HLT metadata jsn
Json::Value hltDaqJsn;
hltDaqJsn[DataPoint::SOURCE] = sourceHost;
hltDaqJsn[DataPoint::DEFINITION] = sOutDef.str();

hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask_.value());
hltDaqJsn[DataPoint::DATA].append(hltJsnFilelist_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFilesize_.value());
hltDaqJsn[DataPoint::DATA].append(hltJsnInputFiles_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFileAdler32_.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask.value());
hltDaqJsn[DataPoint::DATA].append(hltJsnFilelist.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFilesize.value());
hltDaqJsn[DataPoint::DATA].append(hltJsnInputFiles.value());
hltDaqJsn[DataPoint::DATA].append((unsigned int)hltJsnFileAdler32.value());
hltDaqJsn[DataPoint::DATA].append(iSummary->streamHLTDestination);

result = writer.write(hltDaqJsn);
Expand All @@ -567,30 +579,19 @@ TriggerJSONMonitoring::globalEndLuminosityBlockSummary(const edm::LuminosityBloc
outHltDaqJsn<<result;
outHltDaqJsn.close();

//L1
StringJ l1JsnFilelist_;
l1JsnFilelist_.update(ssL1JsnData.str());

cName = (monPath+ssL1JsnData.str()).c_str();
stat(cName, &st);

IntJ l1JsnFilesize_ = st.st_size;
StringJ l1JsnInputFiles_;
l1JsnInputFiles_.update("");
IntJ l1JsnFileAdler32_ = cms::Adler32(cName, st.st_size);

//write out HLT metadata jsn
Json::Value l1DaqJsn;
l1DaqJsn[DataPoint::SOURCE] = sourceHost;
l1DaqJsn[DataPoint::DEFINITION] = sOutDef.str();

l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask_.value());
l1DaqJsn[DataPoint::DATA].append(l1JsnFilelist_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)l1JsnFilesize_.value());
l1DaqJsn[DataPoint::DATA].append(l1JsnInputFiles_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)l1JsnFileAdler32_.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnProcessed.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnAccepted.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnErrorEvents.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)daqJsnRetCodeMask.value());
l1DaqJsn[DataPoint::DATA].append(l1JsnFilelist.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)l1JsnFilesize.value());
l1DaqJsn[DataPoint::DATA].append(l1JsnInputFiles.value());
l1DaqJsn[DataPoint::DATA].append((unsigned int)l1JsnFileAdler32.value());
l1DaqJsn[DataPoint::DATA].append(iSummary->streamL1Destination);

result = writer.write(l1DaqJsn);
Expand Down

0 comments on commit 8f70a00

Please sign in to comment.