OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gendb_statistics.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
3 //
4 
5 #ifndef GENDB_GENDB_STATISTICS_H__
6 #define GENDB_GENDB_STATISTICS_H__
7 
8 #include <boost/ptr_container/ptr_map.hpp>
9 #include "gendb_types.h"
10 
11 namespace GenDb {
12 
14  public:
16  }
17  void Update(const std::string &table_name, bool write, bool fail,
18  bool back_pressure, uint64_t num);
19  void GetDiffs(std::vector<GenDb::DbTableInfo> *vdbti);
20  void GetCumulative(std::vector<GenDb::DbTableInfo> *vdbti) const;
21 
22  private:
23  struct TableStats {
25  num_reads_(0),
26  num_read_fails_(0),
27  num_writes_(0),
30  }
31  void Update(bool write, bool fail, bool back_pressure, uint64_t num);
32  void Get(const std::string &table_name,
33  GenDb::DbTableInfo *dbti) const;
34 
35  uint64_t num_reads_;
36  uint64_t num_read_fails_;
37  uint64_t num_writes_;
38  uint64_t num_write_fails_;
40  };
41 
42  typedef boost::ptr_map<const std::string, TableStats> TableStatsMap;
44  // cumulative stats for introspect purpose
46  void GetInternal(std::vector<GenDb::DbTableInfo> *vdbti,
47  bool cumulative) const;
48 };
49 
50 class IfErrors {
51  public:
60  }
61  enum Type {
70  };
71  void GetDiffs(GenDb::DbErrors *dbe);
72  void GetCumulative(GenDb::DbErrors *dbe) const;
73  void Clear();
74  void Increment(Type type);
75 
76  private:
84  void GetInternal(GenDb::DbErrors *dbe) const;
85 };
86 
87 class GenDbIfStats {
88  public:
90  }
91  enum TableOp {
98  };
100  void IncrementTableStats(TableOp op, const std::string &table_name);
101  void IncrementTableWrite(const std::string &table_name);
102  void IncrementTableWrite(const std::string &table_name, uint64_t num_writes);
103  void IncrementTableWriteFail(const std::string &table_name);
104  void IncrementTableWriteBackPressureFail(const std::string &table_name);
105  void IncrementTableWriteFail(const std::string &table_name, uint64_t num_writes);
106  void IncrementTableRead(const std::string &table_name);
107  void IncrementTableRead(const std::string &table_name, uint64_t num_reads);
108  void IncrementTableReadFail(const std::string &table_name);
109  void IncrementTableReadFail(const std::string &table_name, uint64_t num_reads);
110  void IncrementTableReadBackPressureFail(const std::string &table_name);
111  void GetDiffs(std::vector<GenDb::DbTableInfo> *vdbti, GenDb::DbErrors *dbe);
112  void GetCumulative(std::vector<GenDb::DbTableInfo> *vdbti,
113  GenDb::DbErrors *dbe) const;
114 
115  private:
116  void IncrementTableStatsInternal(const std::string &table_name, bool write,
117  bool fail, bool back_pressure, uint64_t num);
118 
122 };
123 
124 } // namespace GenDb
125 
126 #endif // GENDB_GENDB_STATISTICS_H__
void IncrementTableReadFail(const std::string &table_name)
uint64_t write_tablespace_fails_
GenDb::DbTableStatistics table_stats_
void GetCumulative(std::vector< GenDb::DbTableInfo > *vdbti) const
void IncrementTableWriteFail(const std::string &table_name)
void IncrementTableStats(TableOp op, const std::string &table_name)
uint64_t write_batch_column_fails_
void GetDiffs(GenDb::DbErrors *dbe)
uint64_t read_column_family_fails_
TableStatsMap table_stats_cumulative_map_
void IncrementErrors(IfErrors::Type type)
uint8_t type
Definition: load_balance.h:109
uint64_t write_column_family_fails_
void IncrementTableReadBackPressureFail(const std::string &table_name)
void IncrementTableRead(const std::string &table_name)
uint64_t write_column_fails_
uint64_t read_tablespace_fails_
boost::ptr_map< const std::string, TableStats > TableStatsMap
void IncrementTableStatsInternal(const std::string &table_name, bool write, bool fail, bool back_pressure, uint64_t num)
void GetInternal(GenDb::DbErrors *dbe) const
void Update(bool write, bool fail, bool back_pressure, uint64_t num)
uint64_t read_column_fails_
void GetInternal(std::vector< GenDb::DbTableInfo > *vdbti, bool cumulative) const
void GetDiffs(std::vector< GenDb::DbTableInfo > *vdbti, GenDb::DbErrors *dbe)
void Increment(Type type)
void Update(const std::string &table_name, bool write, bool fail, bool back_pressure, uint64_t num)
void GetDiffs(std::vector< GenDb::DbTableInfo > *vdbti)
TableStatsMap table_stats_map_
void GetCumulative(GenDb::DbErrors *dbe) const
void GetCumulative(std::vector< GenDb::DbTableInfo > *vdbti, GenDb::DbErrors *dbe) const
void Get(const std::string &table_name, GenDb::DbTableInfo *dbti) const
void IncrementTableWrite(const std::string &table_name)
void IncrementTableWriteBackPressureFail(const std::string &table_name)