Skip to content

Commit 46c5745

Browse files
ktfdavidrohr
authored andcommitted
DPL: send consumed-timeframes metric on a channel metric-feedback if it exists
1 parent 12282d5 commit 46c5745

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

Framework/Core/src/CommonDataProcessors.cxx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "Framework/InputSpec.h"
2828
#include "Framework/Logger.h"
2929
#include "Framework/OutputSpec.h"
30+
#include "Framework/RawDeviceService.h"
3031
#include "Framework/Variant.h"
3132
#include "../../../Algorithm/include/Algorithm/HeaderStack.h"
3233
#include "Framework/OutputObjHeader.h"
@@ -44,6 +45,8 @@
4445
#include <ROOT/RDataFrame.hxx>
4546
#include <ROOT/RArrowDS.hxx>
4647
#include <ROOT/RVec.hxx>
48+
49+
#include <FairMQDevice.h>
4750
#include <chrono>
4851
#include <fstream>
4952
#include <functional>
@@ -506,6 +509,15 @@ DataProcessorSpec CommonDataProcessors::getDummySink(std::vector<InputSpec> cons
506509
.algorithm = AlgorithmSpec{adaptStateful([](CallbackService& callbacks) {
507510
auto dataConsumed = [](ServiceRegistry& services) {
508511
services.get<DataProcessingStats>().consumedTimeframes++;
512+
auto device = services.get<RawDeviceService>().device();
513+
auto channel = device->fChannels.find("metric-feedback");
514+
if (channel != device->fChannels.end()) {
515+
FairMQMessagePtr payload(device->NewMessage());
516+
int64_t* consumed = (int64_t*)malloc(sizeof(int64_t));
517+
*consumed = services.get<DataProcessingStats>().consumedTimeframes;
518+
payload->Rebuild(consumed, sizeof(int64_t), nullptr, nullptr);
519+
channel->second[0].Send(payload);
520+
}
509521
};
510522
callbacks.set(CallbackService::Id::DataConsumed, dataConsumed);
511523

0 commit comments

Comments
 (0)