Forráskód Böngészése

fixed trends with better delay & no-sql @TODO: try Messaging Queue

steve 9 éve
szülő
commit
2ddede65a3

+ 30 - 25
src/api/index.py

@@ -56,7 +56,7 @@ f.close()
 #
 #
 from threading import Thread, RLock
-p  = {'uri':'http://dev.the-phi.com:5984','dbname':'monitor','uid':'logs','filename':'logs.JSON'}
+p  = {'uri':'http://localhost:5984','dbname':'monitor','uid':'logs','filename':'logs.JSON'}
 factory = DataSourceFactory()
 gWriter = factory.instance(type='CouchdbWriter',args=p)
 gReader = factory.instance(type='CouchdbReader',args=p)
@@ -69,34 +69,39 @@ mthread.start()
 
 @app.route('/get/<id>')
 def procs(id):	
-	if id in HANDLERS and len(mthread.logs)>0:
-		# r = ProcessQueue.get(block=True,timeout=15)
-		index = len(mthread.logs) -1
-		r = mthread.logs[index]
-		return json.dumps(r)
-	else:
-		return "[]"
-	pass
+	try:
+		d =  gReader.basic_read()
+		r = {}
+		for label in d :
+			index = len(d[label]) - 1
+			r[label] = d[label][index]
+			
+	except Exception, e:
+		print e
+		r = []
+	return json.dumps(r)
+
 @app.route('/trends') 
 def trends ():
 	id = request.args.get('id')
-	# key = request.args.get('key')
-	global mthread
-	# mLock.acquire()
-	
-	time.sleep(2)	
-	doc = gReader.read()
-	doc['row']
-	handler = monitor.mapreducer()
-	r = handler.filter(id,logs)
-	r = handler.run(r,handler.mapper,handler.reducer)
-	# mLock.release()
-	if 'Google Chrome' in r:
-		for item in r['Google Chrome']:
-			print item['hour'],item['minute']
-	
+	r = gReader.basic_read()
+	if id in r:
+		r = r[id]
+		series = {}
+		for row in r:
+			
+			for item in row:
+				id = item['label']
+				if id not in series :
+					series[id] = []
+				series[id].append(item)
+				if len(series[id]) > 24 :
+					beg = len(series[id]) - 25
+					series[id] = series[id][beg:]
 
-	return json.dumps(r)
+		return json.dumps(series)
+	else:
+		return "[]"
 @app.route('/dashboard')
 def dashboard():
 	context = PARAMS['context']

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
src/api/static/js/colors.js


+ 3 - 2
src/api/static/js/dashboard.js

@@ -31,7 +31,7 @@ monitor.processes.init = function(x){
 	})
 }
 monitor.processes.render = function(label,data) {
-	
+
 	data = jx.utils.patterns.visitor(data,function(row){
 		var status = {"idle":'<i class="fa fa-ellipsis-h" title="IDLE"></i>',"running":'<i class="fa fa-check" title="RUNNING"></i>',"crash":'<i class="fa fa-times" title="CRASHED"></i>'}	
 		if (!row.status.match(/class/)) {
@@ -65,6 +65,7 @@ monitor.processes.trend.init = function (label) {
 	var uri = '/trends?id='+label
 	httpclient.get(uri, function (x) {
 		var logs = JSON.parse(x.responseText)
+		console.log(logs)
 		// jx.dom.set.attribute(label,'logs',logs)
 		monitor.processes.trend.render(logs)
 	})
@@ -109,7 +110,7 @@ monitor.processes.trend.render = function (logs, key) {
 			return {x:x,y:y}
 		})
 		
-		serie.backgroundColor = ['transparent']
+		serie.backgroundColor = ['#ffffff']
 		serie.borderColor = COLORS[i]
 		serie.borderWidth = 1
 		++i

+ 3 - 1
src/monitor.py

@@ -210,6 +210,8 @@ class Monitor (Thread):
 		self.handler = self.config['class']
 		self.mconfig = self.config['config']
 		
+			
+		
 	def stop(self):
 		self.keep_running = False
 	def run(self):
@@ -227,7 +229,7 @@ class Monitor (Thread):
 			
 			
 			self.prune()
-			HALF_HOUR = 60*1
+			HALF_HOUR = 60*5
 			time.sleep(HALF_HOUR)
 		print "Stopped ..."
 	def prune(self) :

+ 5 - 1
src/utils/transport.py

@@ -474,7 +474,11 @@ class CouchdbReader(Couchdb,Reader):
 			if size > 0 and i == size:
 				break
 			i = i + 1
-		
+	
+	def basic_read(self):
+		document = self.dbase.get(self.uid) 
+		del document['_id'], document['_rev']
+		return document
 """
 	This class will write on a couchdb document provided a scope
 	The scope is the attribute that will be on the couchdb document