예제 #1
0
 def start(self):
     '''
     start monitor server frontend and backend
     :return:
     '''
     reactor = data_processing.DataHandler(settings)
     reactor.looping()
예제 #2
0
def service_data_report(request):
    if request.method == 'POST':
        print("---->", request.POST)
        try:
            print('host=%s,service=%s' % (request.POST.get('client_id'),
                                          request.POST.get('service_name')))
            data = json.loads(request.POST['data'])
            client_id = request.POST.get('client_id')
            service_name = request.POST.get('service_name')
            #优化存储
            data_saveing_obj = data_optimization.DataStore(
                client_id, service_name, data, REDIS_OBJ)
            #触发监控
            host_obj = models.Host.objects.get(id=client_id)
            service_triggers = get_host_triggers(host_obj)

            trigger_handler = data_processing.DataHandler(settings,
                                                          connect_redis=False)
            for trigger in service_triggers:
                trigger_handler.load_services_data_and_calulating(
                    host_obj, trigger, REDIS_OBJ)
            print("service trigger::", service_triggers)

        except IndexError as e:
            print("---->err:", e)
    return HttpResponse(json.dumps("----report success----"))
예제 #3
0
파일: views.py 프로젝트: guolikai/mydjangos
def service_data_report(request):
    #print("Client report data--->", request.POST)
    if request.method == 'POST':
        #print("Client report data--->",request.POST)
        #REDIS_OBJ.set("test_glk",'hahaha')
        try:
            print(u'客户端监控信息: host=%s, service=%s' %
                  (request.POST.get('client_id'),
                   request.POST.get('service_name')))
            data = json.loads(request.POST['data'])
            #print(data)
            #print(type(data))
            #StatusData_1_memory_latest
            client_id = request.POST.get('client_id')
            service_name = request.POST.get('service_name')

            #客户端数据优化与存储
            data_saveing_obj = data_optimization.DataStore(
                client_id, service_name, data, REDIS_OBJ)
            redis_key_format = "StatusData_%s_%s_latest" % (client_id,
                                                            service_name)
            #data['report_time'] = time.time()
            #REDIS_OBJ.lpush(redis_key_format,json.dumps(data))

            #在这里同时触发监控
            host_obj = models.Host.objects.get(id=client_id)
            #print(host_obj)
            service_triggers = serializer.get_host_triggers(host_obj)
            #print("触发器ServiceTriggers:", service_triggers)

            trigger_handler = data_processing.DataHandler(settings,
                                                          connect_redis=False)
            for trigger in service_triggers:
                trigger_handler.load_service_data_and_calulating(
                    host_obj, trigger, REDIS_OBJ)

            #更改主机存活状态
            #host_alive_key = "HostAliveFlag_%s" % client_id
            #REDIS_OBJ.set(host_alive_key,time.time())
        except IndexError as e:
            print('-->service_data_report err:', e)
    return HttpResponse(json.dumps("---report success---"))