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