OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cpuinfo.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef ctrlplane_cpuinfo_h
6 #define ctrlplane_cpuinfo_h
7 
8 #include <inttypes.h>
9 
10 #include <base/sandesh/cpuinfo_types.h>
11 
12 struct CpuLoad {
13  double one_min_avg;
14  double five_min_avg;
16 };
17 
19  uint32_t virt;
20  uint32_t peakvirt;
21  uint32_t res;
22 };
23 
24 struct SystemMemInfo {
25  uint32_t total;
26  uint32_t used;
27  uint32_t free;
28  uint32_t buffers;
29  uint32_t cached;
30 };
31 
32 struct CpuInfo {
33  uint32_t num_cpu;
38 };
39 
40 
41 class CpuLoadData {
42 public:
43  static void GetCpuLoadInfo(CpuInfo &info, bool system);
44  static void FillCpuInfo(CpuLoadInfo &info, bool system);
45  static void Init();
46 };
47 
48 void PopulateProcessCpuInfo(const CpuLoadInfo &cpu_load_info,
49  ProcessCpuInfo *pinfo);
50 
51 template <typename CpuInfoStatUveType, typename CpuInfoStatUveDataType>
52 void SendCpuInfoStat(const std::string &name,
53  const CpuLoadInfo &cpu_load_info) {
54  CpuInfoStatUveDataType data;
55  data.set_name(name);
56  ProcessCpuInfo pinfo;
57  PopulateProcessCpuInfo(cpu_load_info, &pinfo);
58  std::vector<ProcessCpuInfo> v_pinfo;
59  v_pinfo.push_back(pinfo);
60  data.set_cpu_info(v_pinfo);
61  CpuInfoStatUveType::Send(data);
62 }
63 
64 #endif // ctrlplane_cpuinfo_h
void PopulateProcessCpuInfo(const CpuLoadInfo &cpu_load_info, ProcessCpuInfo *pinfo)
double fifteen_min_avg
Definition: cpuinfo.h:15
static void FillCpuInfo(CpuLoadInfo &info, bool system)
static void Init()
uint32_t res
Definition: cpuinfo.h:21
double five_min_avg
Definition: cpuinfo.h:14
double one_min_avg
Definition: cpuinfo.h:13
void SendCpuInfoStat(const std::string &name, const CpuLoadInfo &cpu_load_info)
Definition: cpuinfo.h:52
CpuLoad load_avg
Definition: cpuinfo.h:36
static void GetCpuLoadInfo(CpuInfo &info, bool system)
uint32_t used
Definition: cpuinfo.h:26
uint32_t peakvirt
Definition: cpuinfo.h:20
uint32_t buffers
Definition: cpuinfo.h:28
SystemMemInfo sys_mem_info
Definition: cpuinfo.h:35
uint32_t num_cpu
Definition: cpuinfo.h:33
ProcessMemInfo mem_info
Definition: cpuinfo.h:34
uint32_t cached
Definition: cpuinfo.h:29
uint32_t total
Definition: cpuinfo.h:25
double process_cpu_share
Definition: cpuinfo.h:37
uint32_t free
Definition: cpuinfo.h:27
uint32_t virt
Definition: cpuinfo.h:19