#!/usr/bin/env python #coding:utf-8 ''' 监控监控程序 ''' import json import urllib import inspect import os,time,socket '''conf''' userDefine_check_time = 0 userDefine_json = [] class mon(object): def __init__(self): #初始化一个字典,讲下面获取到的数据放在地点里面 self.data = {} def gettime(self): ''' tips:我们在监控系统中,获取系统数据的时候,千万不能调取系统命令, 这样进程开销会非常大 我们通常优先考虑的的是有没有系统调用能获取到的值 比如我这里的 time.time()这样不会有开进程的开销 如果没有 我们则退而求其次 通过获取proc的值 proc的系统里面也会有非常多的性能指标 如果proc里面没有,我们在开启进程去获取 ''' return time.time() def Run_All_Get(self): for fun in inspect.getmembers(self,predicate=inspect.ismethod): # 通过这个方法获取类里面所有的方法 #print(fun[0][:3]) if fun[0] == 'userDefineMon': self.data.update(fun[1]()) elif fun[0][:3] == 'get': #把方法前缀为get的函数执行并且存到字典里,key为方法名 print 'start task :', fun[0] self.data[fun[0][3:]] = fun[1]() return self.data if __name__ == '__main__': print mon().Run_All_Get()