diff --git a/algo/base/Options.cxx b/algo/base/Options.cxx index cf644326b4c523188766d8a592e196bece945276..cc1be8932090bd96c5f80e2ea1c600d649ff1075 100644 --- a/algo/base/Options.cxx +++ b/algo/base/Options.cxx @@ -79,6 +79,7 @@ Options::Options(int argc, char** argv) "comma seperated list of reconstruction steps (upack, digitrigger, localreco, ...)") ("systems,s", po::value(&fDetectors)->multitoken()->default_value({Subsystem::STS, Subsystem::TOF, Subsystem::BMON, Subsystem::MUCH, Subsystem::RICH})->value_name("<detectors>"), "comma seperated list of detectors to process (sts, mvd, ...)") + ("child-id,c", po::value(&fChildId)->default_value("00")->value_name("<id>"), "online process id on node") ("num-ts,n", po::value(&fNumTimeslices)->default_value(-1)->value_name("<num>"), "Stop after <num> timeslices (-1 = all)") ("skip-ts", po::value(&fSkipTimeslices)->default_value(0)->value_name("<num>"), diff --git a/algo/base/Options.h b/algo/base/Options.h index 711d97c7c0caa5f479ec32a8fdc9bdba434ee182..d3c387e467ec9425831a752b399e5da631dd6cb7 100644 --- a/algo/base/Options.h +++ b/algo/base/Options.h @@ -35,6 +35,7 @@ namespace cbm::algo bool CollectKernelTimes() const { return fCollectKernelTimes; } int NumTimeslices() const { return fNumTimeslices; } int SkipTimeslices() const { return fSkipTimeslices; } + const std::string& ChildId() const { return fChildId; } const std::vector<Step>& Steps() const { return fRecoSteps; } bool HasStep(Step step) const { return std::find(fRecoSteps.begin(), fRecoSteps.end(), step) != fRecoSteps.end(); } @@ -66,6 +67,7 @@ namespace cbm::algo std::vector<Step> fRecoSteps; std::vector<RecoData> fOutputTypes; std::vector<fles::Subsystem> fDetectors; + std::string fChildId = "00"; private: // serialization friend class boost::serialization::access; diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx index 97d8b4c601ffa3cc3147399a1c813a61fcfae236..3bb8db9576bda429e02f54bb8860a3ddc512be37 100644 --- a/algo/global/Reco.cxx +++ b/algo/global/Reco.cxx @@ -185,7 +185,7 @@ void Reco::QueueUnpackerMetrics(const fles::Timeslice& ts, const UnpackMonitorDa double totalExpansionFactor = static_cast<double>(nDigisTotal) / monitor.fNumBytes; - GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}}, + GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}, {"child", Opts().ChildId()}}, { {"unpackTimeTotal", monitor.fTimeUnpack}, {"unpackBytesInSts", monitor.fNumBytesInSts}, @@ -220,7 +220,7 @@ void Reco::QueueStsRecoMetrics(const sts::HitfinderMonitor& monitor) { if (!HasMonitor()) return; - GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}}, + GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}, {"child", Opts().ChildId()}}, { {"stsRecoTimeTotal", monitor.fTimeTotal}, {"stsRecoNumClusters", monitor.fNumClusterTotal},