104 lines
2.6 KiB
C
104 lines
2.6 KiB
C
|
|
#ifndef BRUSHDATATHREAD_H
|
|||
|
|
#define BRUSHDATATHREAD_H
|
|||
|
|
|
|||
|
|
#include "pub_utility_api/TimerThreadBase.h"
|
|||
|
|
#include "rdb_net_api/CRdbNetApi.h"
|
|||
|
|
#include "sigar.h"
|
|||
|
|
#include "sigar_format.h"
|
|||
|
|
#include "MonitorCommon.h"
|
|||
|
|
#include "rdb_net_api/CRdbNetApi.h"
|
|||
|
|
|
|||
|
|
#include <QMutex>
|
|||
|
|
|
|||
|
|
using namespace std;
|
|||
|
|
using namespace workBench;
|
|||
|
|
using namespace iot_dbms;
|
|||
|
|
|
|||
|
|
class BrushDataThread : public iot_public::CTimerThreadBase
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief BrushDataThread 构造函数
|
|||
|
|
*/
|
|||
|
|
BrushDataThread();
|
|||
|
|
virtual ~BrushDataThread();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief beforeExecute 执行execute函数前的处理,只会调用一次
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
virtual int beforeExecute();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief execute 业务处理函数,必须继承实现自己的业务逻辑
|
|||
|
|
*/
|
|||
|
|
virtual void execute();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief get_proc_memory 获取进程内存
|
|||
|
|
* @param pid 进程id
|
|||
|
|
* @param procName 进程名称
|
|||
|
|
* @return 进程内存
|
|||
|
|
*/
|
|||
|
|
float get_proc_memory(long long pid, const string &procName);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief get_proc_cpu 获取进程CPU
|
|||
|
|
* @param pid 进程id
|
|||
|
|
* @param procName 进程名称
|
|||
|
|
* @return 返回cpu百分比
|
|||
|
|
*/
|
|||
|
|
float get_proc_cpu(long long pid, const string &procName);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief initialize 初始化网络查询
|
|||
|
|
* @param domainId 连接域
|
|||
|
|
* @param appId 连接应用
|
|||
|
|
* @return iotSuccess-成功 iotFailed-失败
|
|||
|
|
*/
|
|||
|
|
int initialize(int domainId,int appId);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
bool queryRunInfo();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief queryAppRunInfo 查询应用信息
|
|||
|
|
* @return true-成功 false-失败
|
|||
|
|
*/
|
|||
|
|
bool queryAppRunInfo();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief queryProcRunInfo 查询进程信息
|
|||
|
|
* @return true-成功 false-失败
|
|||
|
|
*/
|
|||
|
|
bool queryProcRunInfo();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief initData 初始化数据(网络查询不到,初始化数据,设置为未知)
|
|||
|
|
*/
|
|||
|
|
void initData();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
QMutex *m_mutex; //< 锁
|
|||
|
|
|
|||
|
|
sigar_t *m_sigar; //< sigar对象
|
|||
|
|
sigar_t *sigar_mem; //< 获取内存
|
|||
|
|
SCpuAndDisk m_stNodeSigar; //< CPU和Disk
|
|||
|
|
CRdbNetApi m_objRdbNetApi; //< 网络查询对象
|
|||
|
|
|
|||
|
|
vector<SApp> m_sysRunAppInfoVec; //< 远程查询应用结果
|
|||
|
|
vector<SProcess> m_sysRunProcInfoVec; //< 远程查询进程结果
|
|||
|
|
|
|||
|
|
QString m_hostName; //< 本节点名称
|
|||
|
|
int m_domainId; //< 订阅域ID
|
|||
|
|
int m_appId; //< 订阅应用ID
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
typedef boost::shared_ptr<BrushDataThread> BrushDataThreadPtr;
|
|||
|
|
|
|||
|
|
#endif // BRUSHDATATHREAD_H
|