DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
kafkaopmon
include
kafkaopmon
OpMonPublisher.hpp
Go to the documentation of this file.
1
10
11
12
#ifndef KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
13
#define KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
14
15
#include <librdkafka/rdkafkacpp.h>
16
#include <nlohmann/json.hpp>
17
#include <
ers/ers.hpp
>
18
19
#include <string>
20
#include <memory>
21
22
#include "
opmonlib/opmon_entry.pb.h
"
23
#include "
opmonlib/Utils.hpp
"
24
25
namespace
dunedaq
{
26
27
ERS_DECLARE_ISSUE
(
kafkaopmon
,
28
MissingParameter,
29
"No "
<< parameter <<
" in "
<< conf,
30
((std::string)parameter)((std::string)conf)
31
)
32
33
ERS_DECLARE_ISSUE
(
kafkaopmon
,
34
FailedConfiguration
,
35
"Invalid "
<< parameter <<
", cause: "
<< reason,
36
((std::string)parameter)((std::string)reason)
37
)
38
39
ERS_DECLARE_ISSUE
(
kafkaopmon
,
40
FailedProducerCreation,
41
"Failed creation of a Kafka producer, cause: "
<< reason,
42
((std::string)reason)
43
)
44
45
ERS_DECLARE_ISSUE
(
kafkaopmon
,
46
FailedProduce,
47
"Failed produce of message with key "
<< key <<
", cause: "
<< reason,
48
((std::string)key)((std::string)reason)
49
)
50
51
ERS_DECLARE_ISSUE
(
kafkaopmon
,
52
TimeoutReachedWhileFlushing,
53
"Publisher destroyed before all messages were completed, timeout: "
<< timeout <<
" ms"
,
54
((
int
)timeout)
55
)
56
57
58
}
// dunedaq namespace
59
60
61
62
63
namespace
dunedaq::kafkaopmon
{
64
65
class
OpMonPublisher
{
66
67
public
:
68
OpMonPublisher
(
const
nlohmann::json& conf );
69
70
OpMonPublisher
() =
delete
;
71
OpMonPublisher
(
const
OpMonPublisher
& ) =
delete
;
72
OpMonPublisher
&
operator =
(
const
OpMonPublisher
& ) =
delete
;
73
OpMonPublisher
(
OpMonPublisher
&& ) =
delete
;
74
OpMonPublisher
&
operator =
(
OpMonPublisher
&& ) =
delete
;
75
76
~OpMonPublisher
();
77
78
void
publish
(
dunedaq::opmon::OpMonEntry
&& )
const
;
79
80
protected
:
81
std::string
extract_topic
(
const
dunedaq::opmon::OpMonEntry
& )
const
noexcept
{
82
return
m_default_topic
;
83
}
84
std::string
extract_key
(
const
dunedaq::opmon::OpMonEntry
& e)
const
noexcept
{
85
return
dunedaq::opmonlib::to_string
(e.origin()) +
'/'
+ e.measurement() ;
86
}
87
88
private
:
89
std::unique_ptr<RdKafka::Producer>
m_producer
;
90
std::string
m_default_topic
=
"monitoring.opmon_stream"
;
91
92
};
93
94
}
// namespace dunedaq::kafkaopmon
95
96
#endif
//KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher(const nlohmann::json &conf)
Definition
OpMonPublisher.cpp:14
dunedaq::kafkaopmon::OpMonPublisher::m_producer
std::unique_ptr< RdKafka::Producer > m_producer
Definition
OpMonPublisher.hpp:89
dunedaq::kafkaopmon::OpMonPublisher::~OpMonPublisher
~OpMonPublisher()
Definition
OpMonPublisher.cpp:61
dunedaq::kafkaopmon::OpMonPublisher::operator=
OpMonPublisher & operator=(const OpMonPublisher &)=delete
dunedaq::kafkaopmon::OpMonPublisher::extract_key
std::string extract_key(const dunedaq::opmon::OpMonEntry &e) const noexcept
Definition
OpMonPublisher.hpp:84
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher(const OpMonPublisher &)=delete
dunedaq::kafkaopmon::OpMonPublisher::extract_topic
std::string extract_topic(const dunedaq::opmon::OpMonEntry &) const noexcept
Definition
OpMonPublisher.hpp:81
dunedaq::kafkaopmon::OpMonPublisher::publish
void publish(dunedaq::opmon::OpMonEntry &&) const
Definition
OpMonPublisher.cpp:73
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher(OpMonPublisher &&)=delete
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher()=delete
dunedaq::kafkaopmon::OpMonPublisher::m_default_topic
std::string m_default_topic
Definition
OpMonPublisher.hpp:90
dunedaq::opmon::OpMonEntry
Definition
opmon_entry.pb.h:693
ers.hpp
ERS_DECLARE_ISSUE
#define ERS_DECLARE_ISSUE( namespace_name, class_name, message_, attributes)
Definition
macro.hpp:65
dunedaq::kafkaopmon
Definition
OpMonPublisher.hpp:63
dunedaq::opmonlib::to_string
std::string to_string(const dunedaq::opmon::OpMonId &)
Definition
Utils.cpp:167
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::FailedConfiguration
FailedConfiguration
Definition
OpMonPublisher.hpp:34
kafkaopmon
Definition
__init__.py:1
opmon_entry.pb.h
Utils.hpp
Generated on
for DUNE-DAQ by
1.17.0