TARAXA
node_stats.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <json/value.h>
4 
5 #include "common/types.hpp"
6 #include "logger/logger.hpp"
8 
9 namespace taraxa {
10 class PbftChain;
11 class PbftManager;
12 class VoteManager;
13 class DagManager;
14 class TransactionManager;
15 } // namespace taraxa
16 
18 class PacketsThreadPool;
19 }
20 
21 namespace taraxa::network::tarcap {
22 
23 class TaraxaPeer;
24 class PbftSyncingState;
25 class TimePeriodPacketsStats;
26 
27 class NodeStats {
28  public:
29  NodeStats(std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
30  std::shared_ptr<PbftManager> pbft_mgr, std::shared_ptr<DagManager> dag_mgr,
31  std::shared_ptr<VoteManager> vote_mgr, std::shared_ptr<TransactionManager> trx_mgr,
32  std::shared_ptr<TimePeriodPacketsStats> packets_stats,
33  std::shared_ptr<const threadpool::PacketsThreadPool> thread_pool, const addr_t& node_addr);
34 
35  void logNodeStats(const std::vector<std::shared_ptr<network::tarcap::TaraxaPeer>>& all_peers,
36  const std::vector<std::string>& nodes);
37  uint64_t syncTimeSeconds() const;
38  Json::Value getStatus(
39  std::map<network::tarcap::TarcapVersion, std::shared_ptr<network::tarcap::TaraxaPeer>> peers) const;
40 
41  private:
42  std::shared_ptr<PbftSyncingState> pbft_syncing_state_;
43  std::shared_ptr<PbftChain> pbft_chain_;
44  std::shared_ptr<PbftManager> pbft_mgr_;
45  std::shared_ptr<DagManager> dag_mgr_;
46  std::shared_ptr<VoteManager> vote_mgr_;
47  std::shared_ptr<TransactionManager> trx_mgr_;
48  std::shared_ptr<TimePeriodPacketsStats> packets_stats_;
49  std::shared_ptr<const threadpool::PacketsThreadPool> thread_pool_;
50 
59 
60  const std::string kNodeAddress;
61 
63 };
64 
65 } // namespace taraxa::network::tarcap
Definition: FixedHash.h:35
Definition: node_stats.hpp:27
std::shared_ptr< TimePeriodPacketsStats > packets_stats_
Definition: node_stats.hpp:48
uint64_t intervals_syncing_since_launch_
Definition: node_stats.hpp:56
std::shared_ptr< DagManager > dag_mgr_
Definition: node_stats.hpp:45
std::shared_ptr< const threadpool::PacketsThreadPool > thread_pool_
Definition: node_stats.hpp:49
uint64_t local_pbft_sync_period_prev_interval_
Definition: node_stats.hpp:54
uint64_t local_chain_size_prev_interval_
Definition: node_stats.hpp:53
uint64_t local_pbft_round_prev_interval_
Definition: node_stats.hpp:52
void logNodeStats(const std::vector< std::shared_ptr< network::tarcap::TaraxaPeer >> &all_peers, const std::vector< std::string > &nodes)
Definition: node_stats.cpp:36
Json::Value getStatus(std::map< network::tarcap::TarcapVersion, std::shared_ptr< network::tarcap::TaraxaPeer >> peers) const
Definition: node_stats.cpp:239
std::shared_ptr< TransactionManager > trx_mgr_
Definition: node_stats.hpp:47
std::shared_ptr< VoteManager > vote_mgr_
Definition: node_stats.hpp:46
const std::string kNodeAddress
Definition: node_stats.hpp:60
std::shared_ptr< PbftChain > pbft_chain_
Definition: node_stats.hpp:43
std::shared_ptr< PbftSyncingState > pbft_syncing_state_
Definition: node_stats.hpp:42
uint64_t stalled_syncing_duration_seconds
Definition: node_stats.hpp:58
uint64_t syncing_duration_seconds
Definition: node_stats.hpp:57
uint64_t syncTimeSeconds() const
Definition: node_stats.cpp:34
level_t local_max_level_in_dag_prev_interval_
Definition: node_stats.hpp:51
std::shared_ptr< PbftManager > pbft_mgr_
Definition: node_stats.hpp:44
NodeStats(std::shared_ptr< PbftSyncingState > pbft_syncing_state, std::shared_ptr< PbftChain > pbft_chain, std::shared_ptr< PbftManager > pbft_mgr, std::shared_ptr< DagManager > dag_mgr, std::shared_ptr< VoteManager > vote_mgr, std::shared_ptr< TransactionManager > trx_mgr, std::shared_ptr< TimePeriodPacketsStats > packets_stats, std::shared_ptr< const threadpool::PacketsThreadPool > thread_pool, const addr_t &node_addr)
Definition: node_stats.cpp:17
uint64_t intervals_in_sync_since_launch_
Definition: node_stats.hpp:55
PacketsThreadPool for concurrent packets processing.
Definition: tarcap_thread_pool.hpp:21
#define LOG_OBJECTS_DEFINE
Definition: logger.hpp:60
Definition: vote_manager.hpp:23
unsigned TarcapVersion
Definition: tarcap_version.hpp:4
Definition: node_stats.hpp:17
Definition: config.hpp:8
uint64_t level_t
Definition: types.hpp:46