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},