• 05-python进阶-简单监控程序开发


    #!/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()
    

      

  • 相关阅读:
    Fusion access
    组网架构
    DHCP中继
    Vxlan配置
    redis多实例
    ansible实现redis角色
    ansible如何ssh免密链接(基于key验证)
    MySQL主从复制
    MySQL范例
    Ubuntu2004安装
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/7215930.html
Copyright © 2020-2023  润新知