Skip to content

Commit 736839b

Browse files
authored
[OMON-584] Modify example to write SOR and EOR times for each run (#293)
1 parent 0c09906 commit 736839b

File tree

3 files changed

+11
-18
lines changed

3 files changed

+11
-18
lines changed

examples/12-KafkaToInfluxDb.cxx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
/// \file 12-KafkaToInfluxDb.cxx
33
/// \author Adam Wegrzynek <[email protected]>
44
///
5-
65
#include "../src/Transports/KafkaConsumer.h"
76
#include "../src/Backends/InfluxDB.h"
87
#include "../src/Transports/HTTP.h"
@@ -23,7 +22,6 @@ int main(int argc, char* argv[])
2322
boost::program_options::options_description desc("Program options");
2423
desc.add_options()
2524
("kafka-host", boost::program_options::value<std::string>()->required(), "Kafka broker hostname")
26-
("kafka-topics", boost::program_options::value<std::vector<std::string>>()->multitoken()->required(), "Kafka topics")
2725
("influxdb-host", boost::program_options::value<std::string>()->required(), "InfluxDB hostname")
2826
("influxdb-token", boost::program_options::value<std::string>()->required(), "InfluxDB token")
2927
("influxdb-org", boost::program_options::value<std::string>()->default_value("cern"), "InfluxDB organisation")
@@ -32,8 +30,8 @@ int main(int argc, char* argv[])
3230
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
3331
boost::program_options::notify(vm);
3432

35-
std::vector<std::string> topics = vm["kafka-topics"].as<std::vector<std::string>>();
36-
auto kafkaConsumer = std::make_unique<transports::KafkaConsumer>(vm["kafka-host"].as<std::string>() + ":9092", topics, "kafka-to-influxdb");
33+
std::vector<std::string> topics = {"aliecs.env_leave_state.RUNNING"};
34+
auto kafkaConsumer = std::make_unique<transports::KafkaConsumer>(vm["kafka-host"].as<std::string>() + ":9092", topics, "aliecs-run-times");
3735
auto httpTransport = std::make_unique<transports::HTTP>(
3836
"http://" + vm["influxdb-host"].as<std::string>() + ":8086/api/v2/write?" +
3937
"org=" + vm["influxdb-org"].as<std::string>() + "&" +
@@ -50,19 +48,14 @@ int main(int argc, char* argv[])
5048
if (stateChange.envinfo().state().empty()) {
5149
continue;
5250
}
53-
std::cout << stateChange.envinfo().environmentid() << " => " << stateChange.envinfo().state()
54-
<< " (" << stateChange.envinfo().runnumber() << ")" << std::endl;
55-
auto metric = Metric{"env_info"}.addValue(stateChange.envinfo().state(), "state");
56-
auto detectorsProto = stateChange.envinfo().detectors();
57-
std::vector<std::string> detectors(detectorsProto.begin(), detectorsProto.end());
58-
if (detectors.size() > 0) {
59-
metric.addValue(boost::algorithm::join(detectors, " "), "detectors");
60-
}
51+
std::cout << stateChange.envinfo().environmentid() << " (" << stateChange.envinfo().runnumber() << ") EOR: from " <<stateChange.envinfo().enterstatetimestamp() << " to " << stateChange.timestamp() << std::endl;
52+
auto metric = Metric{"run_times"}
53+
.addValue(stateChange.envinfo().enterstatetimestamp(), "sor")
54+
.addValue(stateChange.timestamp(), "eor");
6155
int run = stateChange.envinfo().runnumber();
6256
if (run > 1) {
63-
metric.addValue(run, "run");
57+
influxdbBackend->sendWithRun(metric, stateChange.envinfo().environmentid(), std::to_string(run));
6458
}
65-
influxdbBackend->sendWithId(metric, stateChange.envinfo().environmentid());
6659
}
6760
}
6861
std::this_thread::sleep_for(std::chrono::milliseconds(1000));

src/Backends/InfluxDB.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ void InfluxDB::send(const Metric& metric)
7878
mTransport->send(toInfluxLineProtocol(metric));
7979
}
8080

81-
void InfluxDB::sendWithId(const Metric& metric, const std::string& id)
81+
void InfluxDB::sendWithRun(const Metric& metric, const std::string& envId, const std::string& run)
8282
{
8383
auto serialized = toInfluxLineProtocol(metric);
84-
serialized.insert(serialized.find(',') + 1, "id=" + id);
84+
serialized.insert(serialized.find(',') + 1, "run=" + run + ",envId=" + envId);
8585
mTransport->send(std::move(serialized));
8686
}
8787

src/Backends/InfluxDB.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ class InfluxDB final : public Backend
5454
/// \param metric reference to metric object
5555
void send(const Metric& metric) override;
5656

57-
/// Sends metric with ID tag
57+
/// Sends metric with run tag
5858
/// \param metric reference to metric object
5959
/// \param id ID tag value
60-
void sendWithId(const Metric& metric, const std::string& id);
60+
void sendWithRun(const Metric& metric, const std::string& envId, const std::string& run);
6161

6262
/// Sends multiple metrics not related to each other
6363
/// \@param metrics vector of metrics

0 commit comments

Comments
 (0)