OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sandesh_statistics.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef __SANDESH_STATISTICS_H__
6 #define __SANDESH_STATISTICS_H__
7 
8 #include <boost/ptr_container/ptr_map.hpp>
9 #include <sandesh/sandesh_uve_types.h>
10 
12 public:
14 
15  void UpdateSend(const std::string &msg_name, uint64_t bytes);
16  void UpdateSendFailed(const std::string &msg_name, uint64_t bytes,
18  void UpdateRecv(const std::string &msg_name, uint64_t bytes);
19  void UpdateRecvFailed(const std::string &msg_name, uint64_t bytes,
21  void Clear();
22 
23  // Detail statistics
24  typedef boost::ptr_map<std::string, SandeshMessageTypeStats>
26  typedef std::vector<SandeshMessageTypeStats> DetailStatsList;
27 
28  void Get(DetailStatsList *v_detail_type_stats,
29  SandeshMessageStats *detail_agg_stats) const;
30  void Get(DetailStatsMap *m_detail_type_stats,
31  SandeshMessageStats *detail_agg_stats) const;
32 
33  // Basic statistics
34  typedef std::vector<SandeshMessageTypeBasicStats> BasicStatsList;
35 
36  void Get(BasicStatsList *v_basic_type_stats,
37  SandeshMessageBasicStats *basic_agg_stats) const;
38  void Shutdown();
39 
40 private:
41  bool deleted_;
42  void UpdateInternal(const std::string &msg_name,
43  uint64_t bytes, bool is_tx, bool dropped,
44  SandeshTxDropReason::type send_dreason,
45  SandeshRxDropReason::type recv_dreason);
46 
48  SandeshMessageStats detail_agg_stats_;
49 };
50 
52 public:
54 
55  void Update(std::string &event_name, bool enqueue, bool fail);
56  void Get(std::vector<SandeshStateMachineEvStats> *ev_stats) const;
57  void Shutdown();
58 
59  typedef boost::ptr_map<std::string, SandeshStateMachineEvStats> EventStatsMap;
61  SandeshStateMachineEvStats agg_stats_;
62 private:
63  bool deleted_;
64 };
65 
66 #endif // __SANDESH_STATISTICS_H__
void UpdateSend(const std::string &msg_name, uint64_t bytes)
void UpdateInternal(const std::string &msg_name, uint64_t bytes, bool is_tx, bool dropped, SandeshTxDropReason::type send_dreason, SandeshRxDropReason::type recv_dreason)
void UpdateSendFailed(const std::string &msg_name, uint64_t bytes, SandeshTxDropReason::type dreason)
boost::ptr_map< std::string, SandeshMessageTypeStats > DetailStatsMap
std::vector< SandeshMessageTypeBasicStats > BasicStatsList
std::vector< SandeshMessageTypeStats > DetailStatsList
void UpdateRecv(const std::string &msg_name, uint64_t bytes)
SandeshStateMachineEvStats agg_stats_
uint8_t type
Definition: load_balance.h:109
void UpdateRecvFailed(const std::string &msg_name, uint64_t bytes, SandeshRxDropReason::type dreason)
SandeshMessageStats detail_agg_stats_
boost::ptr_map< std::string, SandeshStateMachineEvStats > EventStatsMap
void Get(DetailStatsList *v_detail_type_stats, SandeshMessageStats *detail_agg_stats) const
DetailStatsMap detail_type_stats_map_
void Get(std::vector< SandeshStateMachineEvStats > *ev_stats) const
void Update(std::string &event_name, bool enqueue, bool fail)