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
#ifndef KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
12
#define KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
13
14
#include <
ers/ers.hpp
>
15
#include <librdkafka/rdkafkacpp.h>
16
#include <nlohmann/json.hpp>
17
18
#include <memory>
19
#include <string>
20
21
#include "
opmonlib/Utils.hpp
"
22
#include "
opmonlib/opmon_entry.pb.h
"
23
24
namespace
dunedaq
{
25
26
ERS_DECLARE_ISSUE
(
kafkaopmon
,
27
MissingParameter,
28
"No "
<< parameter <<
" in "
<< conf,
29
((std::string)parameter)((std::string)conf))
30
31
ERS_DECLARE_ISSUE
(
kafkaopmon
,
32
FailedConfiguration
,
33
"Invalid "
<< parameter <<
", cause: "
<< reason,
34
((std::string)parameter)((std::string)reason))
35
36
ERS_DECLARE_ISSUE
(
kafkaopmon
,
37
FailedProducerCreation,
38
"Failed creation of a Kafka producer, cause: "
<< reason,
39
((std::string)reason))
40
41
ERS_DECLARE_ISSUE
(
kafkaopmon
,
42
FailedProduce,
43
"Failed produce of message with key "
<< key <<
", cause: "
<< reason,
44
((std::string)key)((std::string)reason))
45
46
ERS_DECLARE_ISSUE
(
kafkaopmon
,
47
TimeoutReachedWhileFlushing,
48
"Publisher destroyed before all messages were completed, timeout: "
<< timeout <<
" ms"
,
49
((
int
)timeout))
50
51
}
// dunedaq namespace
52
53
namespace
dunedaq::kafkaopmon
{
54
55
class
OpMonPublisher
56
{
57
58
public
:
59
OpMonPublisher
(
const
nlohmann::json& conf);
60
61
OpMonPublisher
() =
delete
;
62
OpMonPublisher
(
const
OpMonPublisher
&) =
delete
;
63
OpMonPublisher
&
operator=
(
const
OpMonPublisher
&) =
delete
;
64
OpMonPublisher
(
OpMonPublisher
&&) =
delete
;
65
OpMonPublisher
&
operator=
(
OpMonPublisher
&&) =
delete
;
66
67
~OpMonPublisher
();
68
69
void
publish
(
dunedaq::opmon::OpMonEntry
&&)
const
;
70
71
protected
:
72
std::string
extract_topic
(
const
dunedaq::opmon::OpMonEntry
&)
const
noexcept
{
return
m_default_topic
; }
73
std::string
extract_key
(
const
dunedaq::opmon::OpMonEntry
& e)
const
noexcept
74
{
75
return
dunedaq::opmonlib::to_string
(e.origin()) +
'/'
+ e.measurement();
76
}
77
78
private
:
79
std::unique_ptr<RdKafka::Producer>
m_producer
;
80
std::string
m_default_topic
=
"monitoring.opmon_stream"
;
81
};
82
83
}
// namespace dunedaq::kafkaopmon
84
85
#endif
// KAFKAOPMON_INCLUDE_KAFKAOPMON_OPMONPUBLISHER_HPP_
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher(const nlohmann::json &conf)
Definition
OpMonPublisher.cpp:13
dunedaq::kafkaopmon::OpMonPublisher::m_producer
std::unique_ptr< RdKafka::Producer > m_producer
Definition
OpMonPublisher.hpp:79
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:73
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:72
dunedaq::kafkaopmon::OpMonPublisher::publish
void publish(dunedaq::opmon::OpMonEntry &&) const
Definition
OpMonPublisher.cpp:68
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher(OpMonPublisher &&)=delete
dunedaq::kafkaopmon::OpMonPublisher::OpMonPublisher
OpMonPublisher()=delete
dunedaq::kafkaopmon::OpMonPublisher::operator=
OpMonPublisher & operator=(OpMonPublisher &&)=delete
dunedaq::kafkaopmon::OpMonPublisher::m_default_topic
std::string m_default_topic
Definition
OpMonPublisher.hpp:80
dunedaq::opmon::OpMonEntry
Definition
opmon_entry.pb.h:693
ers.hpp
dunedaq::kafkaopmon
Definition
OpMonPublisher.hpp:53
dunedaq::opmonlib::to_string
std::string to_string(const dunedaq::opmon::OpMonId &)
Definition
Utils.cpp:166
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
dunedaq::ERS_DECLARE_ISSUE
ERS_DECLARE_ISSUE(cibmodules, CIBCommunicationError, " CIB Hardware Communication Error: "<< descriptor,((std::string) descriptor)) ERS_DECLARE_ISSUE(cibmodules
dunedaq::FailedConfiguration
FailedConfiguration
Definition
OpMonPublisher.hpp:32
kafkaopmon
Definition
__init__.py:1
opmon_entry.pb.h
Utils.hpp
Generated on
for DUNE-DAQ by
1.18.0