File: //usr/local/qcloud/monitor/barad/plugin/collector/vm/heartbeat.py
import sys
import os,time
sys.path.append(os.getcwd() + '/../../../comm/')
import constant
from plugin_base import VmBaseCollector
from utils.metric_handler import MetricHandler
class HeartBeatCollector(VmBaseCollector):
def init(self):
self.set_frequency(30)
self.handler = MetricHandler()
self.handler.namespace = 'qce/heartbeat'
self.handler.dimensions = [ 'vm_uuid', 'vmip']
self._last_report_nws_time = 0
def do_collect(self):
now = int(time.time())
vm_uuid = self.get_vm_uuid()
vmip = self.get_vmip()
dimensions = {'vm_uuid': vm_uuid, 'vmip': vmip }
batch_metric = [
{'name':'barad_agent_hb' , 'value':1},
]
self.handler.add_batch_metric(batch = batch_metric, dimensions = dimensions, timestamp = now)
if (len( self.handler.get_metrics()) > 0) :
data = {'sender':'heartbeat_sender', 'datas': self.handler.pop_metrics()}
self.put_data(data)
def main():
collector = HeartBeatCollector()
collector.init()
collector.collect()
collector.dump_data()
if __name__ == '__main__':
main()