Esempio n. 1
0
def main():
    timer=Timer()
    config=agentConfig.get_config()
    print(config)
    server = ServerPlugin()
    data = server.check()
    print(data)
    sender=Sender(port=config['recv_port'])
    sender.emit(data)
    print("send finished total cost time:"+str(timer.total()))
    return 0
Esempio n. 2
0
    def run(self):
        global monitor_data_past

        timer = Timer()

        plugins={}

        count={}

        for pluginName in self.basic_plugin:
            Plugin=get_plugin_class(pluginName)
            plugin=Plugin()
            plugins[pluginName]=plugin
            count[pluginName]=plugin.frequency/self.check_frequency

        for pluginName in self.get_run_plugins():
            Plugin=get_plugin_class(pluginName)
            plugin=Plugin()
            plugins[pluginName]=plugin
            count[pluginName]=plugin.frequency/self.check_frequency

        while(self.run_forever):
            timer.start()

            #do check
            for name,plugin in plugins.items():
                if count[name] != 1:
                    count[name] = count[name] - 1
                else:
                    count[name] = plugin.frequency/self.check_frequency
                    if name == 'LibvirtPlugin':
                        monitor_data_cur,data=plugin.check(monitorData=monitor_data_past)
                        monitor_data_past = monitor_data_cur
                    else:
                        data=plugin.check()
                    log.debug("check "+name+" get:"+str(data))

                    if isinstance(data, list):
                        for datanode in data:
                            self.sender.emit(datanode)
                    else:
                        self.sender.emit(data)

            cost=timer.total()
            if cost > self.check_frequency:
                log.warn("collect metrics cost time {0} is longer than check_frequency {1}".format(cost, self.check_frequency))
            else:
                log.debug("sleep {0}s for next loop".format(self.check_frequency - cost))
                time.sleep(self.check_frequency - cost)