rippled
Loading...
Searching...
No Matches
TxMetrics.h
1#ifndef XRPL_OVERLAY_TXMETRICS_H_INCLUDED
2#define XRPL_OVERLAY_TXMETRICS_H_INCLUDED
3
4#include <xrpl/json/json_value.h>
5#include <xrpl/protocol/messages.h>
6
7#include <boost/circular_buffer.hpp>
8
9#include <chrono>
10#include <mutex>
11
12namespace ripple {
13
14namespace metrics {
15
23{
28 SingleMetrics(bool ptu = true) : perTimeUnit(ptu)
29 {
30 }
32 clock_type::time_point intervalStart{clock_type::now()};
36 bool perTimeUnit{true};
37 boost::circular_buffer<std::uint64_t> rollingAvgAggreg{30, 0ull};
41 void
43};
44
48{
49 MultipleMetrics(bool ptu1 = true, bool ptu2 = true) : m1(ptu1), m2(ptu2)
50 {
51 }
52
58 void
64 void
66};
67
70{
72 // TMTransaction bytes and count per second
74 // TMHaveTransactions bytes and count per second
76 // TMGetLedger bytes and count per second
78 // TMLedgerData bytes and count per second
80 // TMTransactions bytes and count per second
82 // Peers selected to relay in each transaction sample average
84 // Peers suppressed to relay in each transaction sample average
86 // Peers with tx reduce-relay feature not enabled
88 // TMTransactions number of transactions count per second
94 void
95 addMetrics(protocol::MessageType type, std::uint32_t val);
101 void
103 std::uint32_t selected,
104 std::uint32_t suppressed,
109 void
110 addMetrics(std::uint32_t missing);
115 json() const;
116};
117
118} // namespace metrics
119
120} // namespace ripple
121
122#endif
Represents a JSON value.
Definition json_value.h:130
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void addMetrics(std::uint32_t val2)
Add metrics to m2.
Definition TxMetrics.cpp:61
MultipleMetrics(bool ptu1=true, bool ptu2=true)
Definition TxMetrics.h:49
Run single metrics rolling average.
Definition TxMetrics.h:23
boost::circular_buffer< std::uint64_t > rollingAvgAggreg
Definition TxMetrics.h:37
clock_type::time_point intervalStart
Definition TxMetrics.h:32
SingleMetrics(bool ptu=true)
Class constructor.
Definition TxMetrics.h:28
void addMetrics(std::uint32_t val)
Add metrics value.
Definition TxMetrics.cpp:74
Run transaction reduce-relay feature related metrics.
Definition TxMetrics.h:70
SingleMetrics missingTx
Definition TxMetrics.h:89
SingleMetrics suppressedPeers
Definition TxMetrics.h:85
MultipleMetrics haveTx
Definition TxMetrics.h:75
MultipleMetrics transactions
Definition TxMetrics.h:81
MultipleMetrics getLedger
Definition TxMetrics.h:77
void addMetrics(protocol::MessageType type, std::uint32_t val)
Add protocol message metrics.
Definition TxMetrics.cpp:12
SingleMetrics selectedPeers
Definition TxMetrics.h:83
MultipleMetrics ledgerData
Definition TxMetrics.h:79
SingleMetrics notEnabled
Definition TxMetrics.h:87
Json::Value json() const
Get json representation of the metrics.
Definition TxMetrics.cpp:99