rippled
Loading...
Searching...
No Matches
JobTypeData.h
1#ifndef XRPL_CORE_JOBTYPEDATA_H_INCLUDED
2#define XRPL_CORE_JOBTYPEDATA_H_INCLUDED
3
4#include <xrpld/core/JobTypeInfo.h>
5
6#include <xrpl/basics/Log.h>
7#include <xrpl/beast/insight/Collector.h>
8
9namespace ripple {
10
12{
13private:
15
16 /* Support for insight */
18
19public:
20 /* The job category which we represent */
22
23 /* The number of jobs waiting */
25
26 /* The number presently running */
28
29 /* And the number we deferred executing because of job limits */
31
32 /* Notification callbacks */
35
37 JobTypeInfo const& info_,
38 beast::insight::Collector::ptr const& collector,
39 Logs& logs) noexcept
40 : m_load(logs.journal("LoadMonitor"))
41 , m_collector(collector)
42 , info(info_)
43 , waiting(0)
44 , running(0)
45 , deferred(0)
46 {
49
50 if (!info.special())
51 {
52 dequeue = m_collector->make_event(info.name() + "_q");
53 execute = m_collector->make_event(info.name());
54 }
55 }
56
57 /* Not copy-constructible or assignable */
58 JobTypeData(JobTypeData const& other) = delete;
60 operator=(JobTypeData const& other) = delete;
61
63 name() const
64 {
65 return info.name();
66 }
67
69 type() const
70 {
71 return info.type();
72 }
73
76 {
77 return m_load;
78 }
79
82 {
83 return m_load.getStats();
84 }
85};
86
87} // namespace ripple
88
89#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::chrono::milliseconds getPeakLatency() const
Definition JobTypeInfo.h:75
JobType type() const
Definition JobTypeInfo.h:45
bool special() const
Definition JobTypeInfo.h:63
std::chrono::milliseconds getAverageLatency() const
Definition JobTypeInfo.h:69
std::string const & name() const
Definition JobTypeInfo.h:51
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:16
std::string name() const
Definition JobTypeData.h:63
JobTypeData & operator=(JobTypeData const &other)=delete
LoadMonitor m_load
Definition JobTypeData.h:14
LoadMonitor & load()
Definition JobTypeData.h:75
JobTypeData(JobTypeData const &other)=delete
JobType type() const
Definition JobTypeData.h:69
JobTypeInfo const & info
Definition JobTypeData.h:21
beast::insight::Collector::ptr m_collector
Definition JobTypeData.h:17
beast::insight::Event execute
Definition JobTypeData.h:34
beast::insight::Event dequeue
Definition JobTypeData.h:33
LoadMonitor::Stats stats()
Definition JobTypeData.h:81
JobTypeData(JobTypeInfo const &info_, beast::insight::Collector::ptr const &collector, Logs &logs) noexcept
Definition JobTypeData.h:36