Exemplo n.º 1
0
class rabbitmonitor(threading.Thread):
	def __init__(self):
		threading.Thread.__init__ (self)
		self.scheduler = sched.scheduler(time.time,time.sleep)
		self.cl = Client("localhost:55672","guest","guest")

	def rabbit_stats(self):
		rabbit_data={}	
		try:
			exchanges = self.cl.get_exchanges()	
			queues = self.cl.get_queues()
			binding = self.cl.get_bindings()
			rabbit_data['time'] = time.time()
			rabbit_data['exchanges'] = exchanges
			rabbit_data['queues'] = queues
			for q in rabbit_data['queues']:
				## delete a tmp query with no consumer
				## zombie queue
				if "amq" in q['name'] and q['consumers'] == 0: 
					vhost = q['vhost']					
					self.cl.delete_queue(vhost,q['name']) 
					print 'deleting queue'
		except:
			print 'error'
			pass; 
	def run(self):
		while(1):	
			self.scheduler.enter(400,1,self.rabbit_stats,());	
			self.scheduler.run()
Exemplo n.º 2
0
    def get_bindings(self):
        client = Client("localhost:15672", "guest", "guest")
        bindings = client.get_bindings()
        bindings_result = []

        for b in bindings:
            if b["source"] == "exchange_baby_monitor":
                bindings_result.append(b)

        return bindings_result
Exemplo n.º 3
0
async def monitor(request):
    #data loaded for the first time from the function call
    global refresh
    db = request.app['db']
    await db.collection.drop()
    
    if refresh == 0:
        
        #Client creation
        try:
            client = Client('localhost:15672', 'guest', 'guest')
        except:
            return {"result":"Client not created"}

        #get all the bindings()
        try:
            bindings = client.get_bindings()
            n = len(bindings)
        except:
            return {"result":"binding error"}   

        #final list of all the rows 
        result_list = []
        for i in range(n):
            #dict for storing values for each connection
            try:
                dict_each = {}
                vhost_name = bindings[i]['vhost']
                dict_each['vhost_name'] = vhost_name
                dict_each['exchange_name'] = bindings[i]['source']
                queue_name = bindings[i]['destination']
                dict_each['queue_name'] = queue_name
                dict_each['queue_size'] = client.get_queue_depth(vhost=vhost_name, name=queue_name)  
                result_list.append(dict_each)
            except:
                return {"result" : "data not found"}

        #insert data in the db
        try:
            await db.collection.insert_many(i for i in result_list)

        except:
            return {'result': "data not stored in the db"}
        refresh+=1
        return {'result_list': result_list}       

    #data retrieved from the database after refresh 
    if refresh>0:
        result_list = []
        async for document in db.collection.find():
            result_list.append(document)   
        return {"result_list" : result_list}
Exemplo n.º 4
0
class rabbitmonitor(threading.Thread):
	def __init__(self):
		threading.Thread.__init__ (self)
		self.scheduler = sched.scheduler(time.time,time.sleep)
		self.cl = Client("localhost:55672","guest","guest")

	def rabbit_stats(self):
		rabbit_data={}	
		try:
			exchanges = self.cl.get_exchanges()	
			queues = self.cl.get_queues()
			binding = self.cl.get_bindings()
			rabbit_data['time'] = time.time()
			rabbit_data['exchanges'] = exchanges
			rabbit_data['queues'] = queues
			print rabbit_data
		except:
			pass; 
	def run(self):
		while(1):	
			self.scheduler.enter(2,1,self.rabbit_stats,());	
			self.scheduler.run()
Exemplo n.º 5
0
class rabbitmonitor(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.scheduler = sched.scheduler(time.time, time.sleep)
        self.cl = Client("localhost:55672", "guest", "guest")

    def rabbit_stats(self):
        rabbit_data = {}
        try:
            exchanges = self.cl.get_exchanges()
            queues = self.cl.get_queues()
            binding = self.cl.get_bindings()
            rabbit_data['time'] = time.time()
            rabbit_data['exchanges'] = exchanges
            rabbit_data['queues'] = queues
            print rabbit_data
        except:
            pass

    def run(self):
        while (1):
            self.scheduler.enter(2, 1, self.rabbit_stats, ())
            self.scheduler.run()
Exemplo n.º 6
0
    def get_bindings(self):
        client = Client('localhost:15672', 'guest', 'guest')
        bindings = client.get_bindings()
        bindings = bindings[4:]

        return bindings