rippled
Loading...
Searching...
No Matches
JobTypeData.h
1#ifndef XRPL_CORE_JOBTYPEDATA_H_INCLUDED
2#define XRPL_CORE_JOBTYPEDATA_H_INCLUDED
3
4#include <xrpl/basics/Log.h>
5#include <xrpl/beast/insight/Collector.h>
6#include <xrpl/core/JobTypeInfo.h>
7
8namespace xrpl {
9
11{
12private:
14
15 /* Support for insight */
17
18public:
19 /* The job category which we represent */
21
22 /* The number of jobs waiting */
24
25 /* The number presently running */
27
28 /* And the number we deferred executing because of job limits */
30
31 /* Notification callbacks */
34
36 JobTypeInfo const& info_,
37 beast::insight::Collector::ptr const& collector,
38 Logs& logs) noexcept
39 : m_load(logs.journal("LoadMonitor"))
40 , m_collector(collector)
41 , info(info_)
42 , waiting(0)
43 , running(0)
44 , deferred(0)
45 {
48
49 if (!info.special())
50 {
51 dequeue = m_collector->make_event(info.name() + "_q");
52 execute = m_collector->make_event(info.name());
53 }
54 }
55
56 /* Not copy-constructible or assignable */
57 JobTypeData(JobTypeData const& other) = delete;
59 operator=(JobTypeData const& other) = delete;
60
62 name() const
63 {
64 return info.name();
65 }
66
68 type() const
69 {
70 return info.type();
71 }
72
75 {
76 return m_load;
77 }
78
81 {
82 return m_load.getStats();
83 }
84};
85
86} // namespace xrpl
87
88#endif
A metric for reporting event timing.
Definition Event.h:22
Holds all the 'static' information about a job, which does not change.
Definition JobTypeInfo.h:10
std::string const & name() const
Definition JobTypeInfo.h:51
std::chrono::milliseconds getPeakLatency() const
Definition JobTypeInfo.h:75
bool special() const
Definition JobTypeInfo.h:63
JobType type() const
Definition JobTypeInfo.h:45
std::chrono::milliseconds getAverageLatency() const
Definition JobTypeInfo.h:69
void setTargetLatency(std::chrono::milliseconds avg, std::chrono::milliseconds pk)
Manages partitions for logging.
Definition Log.h:33
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
JobType
Definition Job.h:15
JobTypeData(JobTypeData const &other)=delete
JobTypeData(JobTypeInfo const &info_, beast::insight::Collector::ptr const &collector, Logs &logs) noexcept
Definition JobTypeData.h:35
beast::insight::Event dequeue
Definition JobTypeData.h:32
beast::insight::Event execute
Definition JobTypeData.h:33
std::string name() const
Definition JobTypeData.h:62
JobType type() const
Definition JobTypeData.h:68
JobTypeInfo const & info
Definition JobTypeData.h:20
LoadMonitor::Stats stats()
Definition JobTypeData.h:80
beast::insight::Collector::ptr m_collector
Definition JobTypeData.h:16
JobTypeData & operator=(JobTypeData const &other)=delete
LoadMonitor m_load
Definition JobTypeData.h:13
LoadMonitor & load()
Definition JobTypeData.h:74