From 5f4fdaea92e6feb2e17d6d1d1f13c8f2ca669400 Mon Sep 17 00:00:00 2001 From: rahildar Date: Thu, 14 Apr 2016 12:23:14 +0530 Subject: [PATCH 01/21] query execution on submit query --- bin/www | 2 +- components/queryexecutor/mainquery.js | 4 +- models/expression.js | 3 +- .../realTimeLogs/queryBuilder/expressions.js | 2 + vagrantfile | 2 + vagrantfile.orig | 63 +++++++++++++++++++ 6 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 vagrantfile.orig diff --git a/bin/www b/bin/www index e2426ea..21e0a58 100755 --- a/bin/www +++ b/bin/www @@ -19,7 +19,7 @@ var app = require('../app'); var debug = require('debug')('LogAggregatorExpress:server'); var http = require('http'); -var port = normalizePort(process.env.PORT || '8686') +var port = normalizePort(process.env.PORT || '8585') app.set('port', port); var server = http.createServer(app); diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index 71dfbb6..84888b5 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -32,7 +32,7 @@ var query = { var WebSocketClient = require('websocket').client; var WebSocket1 = new WebSocketClient(); var WebSocketServer = require('ws').Server; -var wss = new WebSocketServer({port: 8080}); +var wss = new WebSocketServer({port: 9000}); var serverWs; wss.on('connection', function(ws) { @@ -62,7 +62,7 @@ module.exports=function (queryy) { } }) )).done(); - connection.setMaxListeners(connection.getMaxListeners() + 1); }); + WebSocket1.connect('ws://172.23.238.253:7070'); } diff --git a/models/expression.js b/models/expression.js index a7c1995..1dbbadb 100644 --- a/models/expression.js +++ b/models/expression.js @@ -12,6 +12,7 @@ obj.save(function(err,doc) { if (err) { console.error(err); cb(err,null); + } else { console.log(doc); @@ -33,7 +34,7 @@ expSchema.statics.searchQuery=function searchQuery(searchquery,cb) { // // expschema.post('save',function(query) { // mainquery(query); -// }) +// }) diff --git a/routes/realTimeLogs/queryBuilder/expressions.js b/routes/realTimeLogs/queryBuilder/expressions.js index bf5ac2e..2e3128e 100644 --- a/routes/realTimeLogs/queryBuilder/expressions.js +++ b/routes/realTimeLogs/queryBuilder/expressions.js @@ -1,6 +1,7 @@ var express = require('express'); var router = express.Router(); var Expression = require('../../../models/dbConfig').expressionModel; +var mainquery=require('../../../components/queryexecutor/mainquery.js') router.post('/save', function(req, res, next) { @@ -12,6 +13,7 @@ var Expression = require('../../../models/dbConfig').expressionModel; res.send(err); } else{ + mainquery(doc); res.send(doc); } }) diff --git a/vagrantfile b/vagrantfile index 896bc8e..3878dd5 100644 --- a/vagrantfile +++ b/vagrantfile @@ -36,6 +36,8 @@ Vagrant.configure(2) do |config| # Map the guest os port 8080 to host os port 8080 config.vm.network "forwarded_port", guest: 8585, host: 9595 + config.vm.network "forwarded_port", guest: 9000, host: 9000 + if OS.windows? diff --git a/vagrantfile.orig b/vagrantfile.orig new file mode 100644 index 0000000..926bd22 --- /dev/null +++ b/vagrantfile.orig @@ -0,0 +1,63 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : +# Copyright 2016 Wipro Limited, NIIT Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This code is written by Prateek Reddy Yammanuru, Shiva Manognya Kandikuppa, Uday Kumar Mydam, Nirup TNL, Sandeep Reddy G, Deepak Kumar + + + +vagrant_cache_server = "172.23.238.253" + + +# Detect the current OS. node on windows needs some symlink magic to work. +module OS + def OS.windows? + (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil + end +end + +Vagrant.configure(2) do |config| + + config.vm.box = "stackroute/barebones-node" + config.vm.box_url = "http://#{vagrant_cache_server}/vagrant/boxes/stackroute-barebones-node.box" + config.vm.hostname = 'stackroute-node' + + # Map the guest os port 8080 to host os port 8080 +<<<<<<< HEAD +<<<<<<< HEAD + config.vm.network "forwarded_port", guest: 8585, host: 9595 +======= + config.vm.network "forwarded_port", guest: 8686, host: 8686 + config.vm.network "forwarded_port", guest: 5050, host: 5050 +>>>>>>> f40437ffcece50606bcf5f4d679a3909ad076708 +======= + config.vm.network "forwarded_port", guest: 8686, host: 8686 + config.vm.network "forwarded_port", guest: 5050, host: 5050 +>>>>>>> f40437ffcece50606bcf5f4d679a3909ad076708 + + if OS.windows? + + # enable symlinks between the host/gust filesystems + config.vm.provider "virtualbox" do |vb| + vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"] + end + + # Setup the softlinks + config.vm.provision :puppet do |puppet| + puppet.manifest_file = "windows.pp" + end + + end +end From 812a6ddfb1c533b5d7e3c52d840667c284653880 Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Thu, 14 Apr 2016 14:46:11 +0530 Subject: [PATCH 02/21] RT WIDGETS --- .../dashboardWizard/dashboardWizard.html | 2 +- .../views/gitLog/mainPage/mainPage.view.html | 289 ++++++++++-------- 2 files changed, 165 insertions(+), 126 deletions(-) diff --git a/public/views/gitLog/dashboardWizard/dashboardWizard.html b/public/views/gitLog/dashboardWizard/dashboardWizard.html index 5af3ec9..563862c 100644 --- a/public/views/gitLog/dashboardWizard/dashboardWizard.html +++ b/public/views/gitLog/dashboardWizard/dashboardWizard.html @@ -36,7 +36,7 @@ - + Aggregators diff --git a/public/views/gitLog/mainPage/mainPage.view.html b/public/views/gitLog/mainPage/mainPage.view.html index 7c431bf..60ad80a 100644 --- a/public/views/gitLog/mainPage/mainPage.view.html +++ b/public/views/gitLog/mainPage/mainPage.view.html @@ -2,23 +2,54 @@
- - - +
+ - -
-
- -
-
-
-
- -
-
-

{{graph_type_details}}

-
-
-
+ +
+ +
+
+
+ +
+
+

+ {{graph_type_details}} +

+
+ +
+
{{description_data}}
{{groupedby}}
{{filteredby}} -
-
-
-
-
- -
+
+
+
+
+
+ +
- - - + + +
-
- +
+
-
-
- -
-
-
+
+ +
+ +
+
+
-
-
- + + +
+ + + +
+ +
+ +
+ + + -
-
-
-
+
+ +
+
-
- -
-
- + + + + + - +}); + From afead039a1934a69a1f237e89ee4e372c0d2660f Mon Sep 17 00:00:00 2001 From: rahildar Date: Thu, 14 Apr 2016 17:03:09 +0530 Subject: [PATCH 03/21] end to end first commit --- components/queryexecutor/mainquery.js | 58 +++--- components/queryexecutor/query-executor.js | 10 +- .../queryBuilder/queryBuilderController.js | 122 ++++++++++--- .../queryBuilderController.js.orig | 166 ++++++++++++++++++ .../queryBuilder/liveQueryWizard.html | 137 ++++++--------- .../queryBuilder/liveQueryWizard.html.orig | 136 ++++++++++++++ .../realTimeLogs/queryBuilder/expressions.js | 4 +- 7 files changed, 488 insertions(+), 145 deletions(-) create mode 100644 public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js.orig create mode 100644 public/views/realTimeLogs/queryBuilder/liveQueryWizard.html.orig diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index 84888b5..c41be04 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -1,33 +1,33 @@ var _ = require('highland'); var QueryExecutor = require('./query-executor'); -var query = { - select:['remote','host','method','code'], - eval: { - val1: { - rolling: { - evaluate: 'average', - over: { - count: 10 - }, - on: 'code' // measure - } - }, - val2: { - rolling: { - evaluate: 'average', - over: { - count: 10 - }, - on: 'insertions' - } - }, - }, - project: { - // $highlight: {$condition: {val1: {$eq: eval['val2']}}} - $highlight: {$condition: 'val1 ==val2'} - }, - to: 'streamB' -}; +// var query = { +// select:['remote','host','method','code'], +// eval: { +// val1: { +// rolling: { +// evaluate: 'average', +// over: { +// count: 10 +// }, +// on: 'code' // measure +// } +// }, +// val2: { +// rolling: { +// evaluate: 'average', +// over: { +// count: 10 +// }, +// on: 'insertions' +// } +// }, +// }, +// project: { +// // $highlight: {$condition: {val1: {$eq: eval['val2']}}} +// $highlight: {$condition: 'val1 ==val2'} +// }, +// to: 'streamB' +// }; var WebSocketClient = require('websocket').client; var WebSocket1 = new WebSocketClient(); @@ -44,7 +44,7 @@ wss.on('connection', function(ws) { module.exports=function (queryy) { - var executor = new QueryExecutor(query); + var executor = new QueryExecutor(queryy); var pipeline = executor.getPipeline(); WebSocket1.on('connect', function(connection) { console.log("Connected..Waiting for some message"); diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index 81fe07b..311f95f 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -64,8 +64,14 @@ var QueryExecutor = function(query) { condition=condition.replace('val2','tempdata.val2') //filter that returns true/false depending on query condition //{val1: {$gte: '$val2'}}//query.project.$highlight.$condition - tempdata.highlight=eval(condition) //highlight set to true/false depending on val1 and val2 - console.log(tempdata); + //highlight set to true/false depending on val1 and val2 + if(tempdata.val1 && tempdata.val2){ + tempdata.highlight=eval(condition) + } + else { + tempdata.highlight=false; + } + // console.log(tempdata); return tempdata; //object with select parameters and highlight })); return _.pipeline.apply(this, pipeline); diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 44c37af..0fd04dc 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -1,18 +1,20 @@ var app = angular.module('logAggregator'); var kk=0; -app.controller('liveQueryController', ['$scope', function ($scope) { +var str2=""; +var addConditionCount=0; +app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) { var data = '{"group": {"operator": "OR","rules": []}}'; + $scope.flag=false; function htmlEntities(str) { return String(str).replace(//g, '>'); } - function computed(group) { if (!group) return ""; for (var str = "(", i = 0; i < group.rules.length; i++) { - console.log("aaaaa") - console.log($scope.select1); - console.log("len----"+ group.rules.length); +// console.log("aaaaa") + // console.log($scope.select1); +// console.log("len----"+ group.rules.length); console.log(group.rules[i]); i > 0 && (str += " "+group.operator+" "); @@ -20,13 +22,13 @@ app.controller('liveQueryController', ['$scope', function ($scope) { str += group.rules[i].group ? computed(group.rules[i].group) : - group.rules[i].field + " " + htmlEntities(group.rules[i].condition) + " " + group.rules[i].data + " Over " + group.rules[i].accumulator +" " +group.rules[i].value ; + group.rules[i].field + " " + htmlEntities(group.rules[i].condition) + " " + group.rules[i].data + " Over " + group.rules[i].accumulator +" " +group.rules[i].value ; //if(kk>0) //{ // str += group.rules[i].group ? // computed(group.rules[i].group) : - // + // //} } @@ -40,7 +42,54 @@ app.controller('liveQueryController', ['$scope', function ($scope) { if(!group) return ""; - var str2="{from: {stream: "+$scope.stream+",where: {server-name: {$regex: '/$server.*/' }}},select: ['dimension1', 'dimension2','measure3','measure4'],eval: {" + // str2="{from: {stream: "+$scope.stream+",where: {server-name: {$regex: \"/$server.*/\" }}},select:["; + str2="{\"select\":["; + var str3="],\"eval\": {"; + + + + var strng=$scope.select1; + + var dummy=""; + var stringA=""; + var count=0; + var cn=0; + for(var j=0;j0) //{ // str += group.rules[i].group ? - // computed(group.rules[i].group) : + // computed(group.rulews[i].group) : // //} } + var str6="},\"project\": { \"$highlight\": {\"$condition\":\"val1 "+operator+" val2\"}},\"to\": \""+$scope.streamB+"\"}"; + str2=str2+str6; return str2; } @@ -80,7 +132,7 @@ app.controller('liveQueryController', ['$scope', function ($scope) { }]); //var queryBuilder = angular.module('queryBuilder', []); -app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { + app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { return { restrict: 'E', scope: { @@ -92,21 +144,25 @@ app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { content = element.contents().remove(); return function (scope, element, attrs) { scope.operators = [ - { name: 'AND' }, - { name: 'OR' } + { name: '==' }, + { name: '<>' }, + { name: '<' }, + { name: '<=' }, + { name: '>' }, + { name: '>=' } ]; scope.fields = [ - { name: 'Average' }, - { name: 'Standard Deviation' }, - { name: 'Count' }, - { name: 'Mean' }, - { name: 'Max' } + { name: 'average' }, + { name: 'standard deviation' }, + { name: 'count' }, + { name: 'mean' }, + { name: 'max' } ]; scope.accumulators = [ - { name: 'Count' }, - { name: 'Time' } + { name: 'count' }, + { name: 'time' } ]; @@ -120,9 +176,15 @@ app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { ]; scope.addCondition = function () { + + addConditionCount++; + if(addConditionCount>2) + { + $scope.flag=true; + } scope.group.rules.push({ condition: 'of', - field: 'Firstname', + field: 'average', data: '', accumulator:'', value:'' @@ -145,14 +207,18 @@ app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { scope.removeGroup = function () { "group" in scope.$parent && scope.$parent.group.rules.splice(scope.$parent.$index, 1); }; - scope.submitQuery = function () { - query="select * from somthing" - $http({method: 'Post', url: '/exp/save',data:{data:query}}). - success(function(data, status, headers, config) { - console.log("Successful"); - console.log(data); - }); + scope.submitQuery = function () { + query=JSON.parse(str2); + // query=str2; + // console.log("Answer String") + // console.log(str2); + // $scope.answer=str2; + $http({method: 'Post', url: '/exp/save',data:{data:query}}). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); }; directive || (directive = $compile(content)); diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js.orig b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js.orig new file mode 100644 index 0000000..44c37af --- /dev/null +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js.orig @@ -0,0 +1,166 @@ +var app = angular.module('logAggregator'); +var kk=0; +app.controller('liveQueryController', ['$scope', function ($scope) { + var data = '{"group": {"operator": "OR","rules": []}}'; + + function htmlEntities(str) { + return String(str).replace(//g, '>'); + } + + function computed(group) { + if (!group) return ""; + for (var str = "(", i = 0; i < group.rules.length; i++) { + console.log("aaaaa") + console.log($scope.select1); + console.log("len----"+ group.rules.length); + + console.log(group.rules[i]); + i > 0 && (str += " "+group.operator+" "); + kk++; + + str += group.rules[i].group ? + computed(group.rules[i].group) : + group.rules[i].field + " " + htmlEntities(group.rules[i].condition) + " " + group.rules[i].data + " Over " + group.rules[i].accumulator +" " +group.rules[i].value ; + + //if(kk>0) + //{ + // str += group.rules[i].group ? + // computed(group.rules[i].group) : + // + //} + + } + + return " Select "+$scope.select1 + " from " +$scope.stream + " where "+ str + ")"; + + } + + + function computeJson(group){ + if(!group) return ""; + + + var str2="{from: {stream: "+$scope.stream+",where: {server-name: {$regex: '/$server.*/' }}},select: ['dimension1', 'dimension2','measure3','measure4'],eval: {" + + for ( i = 0; i < group.rules.length; i++) { + console.log("aaaaa") + console.log($scope.select1); + console.log("len----"+ group.rules.length); + console.log("STR----"+i+"-----"+str2); + i > 0 && (str2 += ","); + kk++; + + str2 += group.rules[i].group ? + computeJson(group.rules[i].group) : + "val"+i+": {$rolling: { evaluate:"+group.rules[i].field+",over: {"+group.rules[i].accumulator+": "+group.rules[i].value+"},on:"+group.rules[i].data+"}}"; + + //if(kk>0) + //{ + // str += group.rules[i].group ? + // computed(group.rules[i].group) : + // + //} + + } + + + return str2; + + } + + $scope.json = null; + + $scope.filter = JSON.parse(data); + + $scope.$watch('filter', function (newValue) { + $scope.json = JSON.stringify(newValue, null, 2); + $scope.output = computed(newValue.group); + $scope.jsonOutput=computeJson(newValue.group); + }, true); +}]); + +//var queryBuilder = angular.module('queryBuilder', []); +app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { + return { + restrict: 'E', + scope: { + group: '=' + }, + templateUrl: '/queryBuilderDirective.html', + compile: function (element, attrs) { + var content, directive; + content = element.contents().remove(); + return function (scope, element, attrs) { + scope.operators = [ + { name: 'AND' }, + { name: 'OR' } + ]; + + scope.fields = [ + { name: 'Average' }, + { name: 'Standard Deviation' }, + { name: 'Count' }, + { name: 'Mean' }, + { name: 'Max' } + ]; + + scope.accumulators = [ + { name: 'Count' }, + { name: 'Time' } + + ]; + + scope.conditions = [ + { name: '=' }, + { name: '<>' }, + { name: '<' }, + { name: '<=' }, + { name: '>' }, + { name: '>=' } + ]; + + scope.addCondition = function () { + scope.group.rules.push({ + condition: 'of', + field: 'Firstname', + data: '', + accumulator:'', + value:'' + }); + }; + + scope.removeCondition = function (index) { + scope.group.rules.splice(index, 1); + }; + + scope.addGroup = function () { + scope.group.rules.push({ + group: { + operator: 'AND', + rules: [] + } + }); + }; + + scope.removeGroup = function () { + "group" in scope.$parent && scope.$parent.group.rules.splice(scope.$parent.$index, 1); + }; + scope.submitQuery = function () { + query="select * from somthing" + $http({method: 'Post', url: '/exp/save',data:{data:query}}). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + + }; + + directive || (directive = $compile(content)); + + element.append(directive(scope, function ($compile) { + return $compile; + })); + } + } + } +}]); diff --git a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html index 7341d43..c16cb24 100644 --- a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html +++ b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html @@ -15,18 +15,7 @@ Aggregators @@ -44,93 +33,73 @@ -
-
- -
-
- -
-

Angular.js Query Builder

- -
- Example Output
- -
-
- -
+

Query on the Go!

-
-
- +
+ Example Output
+ +
+
+ +
- +
+
+ + -
-
+ - -
+
+
+ + + +
+ + - -
-
-
- - - - diff --git a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html.orig b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html.orig new file mode 100644 index 0000000..7341d43 --- /dev/null +++ b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html.orig @@ -0,0 +1,136 @@ + + + +
+ + + + +
+
+ +
+
+ +
+

Angular.js Query Builder

+ +
+ Example Output
+ +
+
+ +
+ +
+
+ + + + + +
+
+ + + +
+ + + +
+
+ +
+ +
+ +
+ diff --git a/routes/realTimeLogs/queryBuilder/expressions.js b/routes/realTimeLogs/queryBuilder/expressions.js index 2e3128e..caba3c1 100644 --- a/routes/realTimeLogs/queryBuilder/expressions.js +++ b/routes/realTimeLogs/queryBuilder/expressions.js @@ -5,7 +5,7 @@ var mainquery=require('../../../components/queryexecutor/mainquery.js') router.post('/save', function(req, res, next) { - // console.log('****************************in express routes********************* '+ req.body.data); + // console.log('****************************in express routes********************* '+ JSON.stringify(req.body.data)); var temp=new Expression(req.body) Expression.addExp(temp,function(err,doc) { if (err) { @@ -13,7 +13,7 @@ var mainquery=require('../../../components/queryexecutor/mainquery.js') res.send(err); } else{ - mainquery(doc); + mainquery(req.body.data); res.send(doc); } }) From 15596e91069ff566324fb0a792753dad83fc1d4d Mon Sep 17 00:00:00 2001 From: rahildar Date: Thu, 14 Apr 2016 17:45:21 +0530 Subject: [PATCH 04/21] backup --- .../queryexecutor/query-executor.js.org | 81 +++++++++++++++++++ .../defineData/defineDataController.js | 14 ++-- 2 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 components/queryexecutor/query-executor.js.org diff --git a/components/queryexecutor/query-executor.js.org b/components/queryexecutor/query-executor.js.org new file mode 100644 index 0000000..311f95f --- /dev/null +++ b/components/queryexecutor/query-executor.js.org @@ -0,0 +1,81 @@ +var sift = require('sift'); +var _ = require('highland'); +var rollingCount=require('../rollingCount/index'); +var QueryExecutor = function(query) { + var self = this; + self.query = query; + var RC=new Array(); + var RT=new Array(); + self.getPipeline = function() { + return self.createPipeline(self.query); + } + + self.createPipeline = function(query) { + var pipeline = []; + + if(query.hasOwnProperty('from') && query.from.hasOwnProperty('where')) { + var sifter = sift(query.from.where); + pipeline.push(_.filter(sifter)); + } + pipeline.push(_.map(function(obj) { + // console.log('in query exec '); + if(query.eval.val1.rolling.over.time){ + RT.push(new rollingTime(query.eval.val1.rolling.over.time)); //rollingTime not available + } + else { + RC.push(new rollingCount(query.eval.val1.rolling.over.count));//assume every computation is either rollingTime or rollingCount + } + if(query.eval.val2.rolling.over.count){ + RC.push(new rollingCount(query.eval.val1.rolling.over.count)); + } + else { + RT.push(new rollingTime(query.eval.val1.rolling.over.time)); //assume every computation is either rollingTime or rollingCount + } + var siftobj=new Object(); + expkeys=query.select; + siftobj.filter=function(value) { + var temp=new Object(); + for (var i = 0; i < expkeys.length; i++) { + temp[expkeys[i]]=value[expkeys[i]]; + } + var RTCount=0, + RCCount=0; + if(query.eval.val1.rolling.over.time){ + temp.val1=RT[RTCount++][query.eval.val1.rolling.evaluate](value[query.eval.val1.rolling.on]); //rollingTime not available + } + else { + temp.val1=RC[RCCount++][query.eval.val1.rolling.evaluate](value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount + } + if(query.eval.val1.rolling.over.count){ + temp.val2=RC[RCCount++][query.eval.val1.rolling.evaluate](value[query.eval.val1.rolling.on]); //rollingTime not available + } + else { + temp.val2=RT[RTCount++][query.eval.val1.rolling.evaluate](value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount + } + return temp; + } + var data={ + filter:obj + }; + var testQuery=sift(siftobj); + var tempdata=testQuery(data); //testQuery returns object with val1 and val2 set + var condition=query.project.$highlight.$condition; + condition=condition.replace('val1','tempdata.val1'); + condition=condition.replace('val2','tempdata.val2') + //filter that returns true/false depending on query condition + //{val1: {$gte: '$val2'}}//query.project.$highlight.$condition + //highlight set to true/false depending on val1 and val2 + if(tempdata.val1 && tempdata.val2){ + tempdata.highlight=eval(condition) + } + else { + tempdata.highlight=false; + } + // console.log(tempdata); + return tempdata; //object with select parameters and highlight + })); + return _.pipeline.apply(this, pipeline); + }; +}; + +exports = module.exports = QueryExecutor; diff --git a/public/controllers/realTimeLogs/defineData/defineDataController.js b/public/controllers/realTimeLogs/defineData/defineDataController.js index 664dcbc..6910d22 100644 --- a/public/controllers/realTimeLogs/defineData/defineDataController.js +++ b/public/controllers/realTimeLogs/defineData/defineDataController.js @@ -18,22 +18,22 @@ angular.module('logAggregator').controller('defineDataController', ['$scope','$h $scope.dimVal = val; } $scope.submitDimension=function() { - dimobj={ + dimobj={ displayName:$scope.displayname, fieldname:$scope.dimVal } console.log("post",dimobj); $http({method: 'Post', url: '/dimensions/addDimension',data:{data:dimobj}}). - success(function(data, status, headers, config) { - console.log("Successful"); - console.log(data); - }); + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); console.log(dimobj.displayName); $scope.dimensionList.push(dimobj.displayName); } $scope.submitMeasure=function() { - measobj={ + measobj={ displaymeasurename:$scope.displaymeasurename, measureFieldSelector:$scope.measureFieldSelector, measure:$scope.measure, @@ -48,7 +48,7 @@ angular.module('logAggregator').controller('defineDataController', ['$scope','$h }); //console.log(dimobj.displayName); $scope.measureList.push(measobj.displaymeasurename); - // $scope.dimensionList.push(dimobj.displayName); + //$scope.dimensionList.push(dimobj.displayName); } From 057187038449f86ca67b2edac5ec08c720df6a16 Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Thu, 14 Apr 2016 19:23:35 +0530 Subject: [PATCH 05/21] trwizard commit --- .DS_Store | Bin 10244 -> 10244 bytes package.json | 2 +- public/.DS_Store | Bin 8196 -> 8196 bytes .../realTimeLogs/rtwizard/rtcontroller.js | 10 + .../views/gitLog/mainPage/mainPage.view.html | 234 ++++++++++-------- 5 files changed, 140 insertions(+), 106 deletions(-) diff --git a/.DS_Store b/.DS_Store index c61c9d31fcebf18defdcbf6f96603650b2e0dc0e..ff1c92a010aea8afe8f80351b55516c2a882bcbf 100644 GIT binary patch delta 618 zcmd6jy)OfC9LAq-6>XI}y}P#RrK<6gkhmHwmd4VJBL*)C>9r*n*O&CJmL?_!ks$dE z{s4o-f^?L0ks29<38O#2RJAB=Fo@aoS)T99=h;%Wl!IvsoGTX`1qx37+9F0~6**^^ zSpZf{A&Mjttms;ySJoq(IK27%m^{)O3XQW{A!xZQv9jQ&t7@Xlsl_%js-9K>DzdQH zXLm~;uhik|^s#j@+r7ebMl74wbtP?Rrj|}EEUjg=`1I^9z{b;D zDw<^blAli5snj_75YXprRE=$Edq?pX(g3LfuE SW1+dXVjcRfbN+voz4H#^>XN?z delta 349 zcmZn(XbG6$&nUMsU^hRb+-4qub4-)Dgq1sIhWwHZwqZ5izuJs3S1 zy%_@-0~w42cXWo;mr+NjdpR3=9kc3=B+h zKw4w+W)V|PR)#W$Oomj3^2r&(yV;ElbQBB?%_hqVDo^$mQ5A>FG8C5u7v<&T=cNO6 YGHxt9$+($a;wQ`GD - - -
  • - - - - WIDGETS - - + + + + + + +
  • + + + + WIDGETS + + +
  • +
    -
    -
    - -
    -
    -

    - {{graph_type_details}} -

    +
    +
    + +
    +
    +

    + {{graph_type_details}} +

    +
    + +
    +
    + {{description_data}}
    + {{groupedby}}
    + {{filteredby}}
    - -
    -
    - {{description_data}}
    - {{groupedby}}
    - {{filteredby}} -
    -
    -
    -
    -
    - -
    -
    - - - -
    -
    -
    - -
    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    +
    -
    - +
    +
    +
    -
    -
    + -
    - -
    +
    +
    - +
    +
    From f4ce1e2755d0db07d942ab5ab7cc74fdb02ddec4 Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Fri, 15 Apr 2016 10:05:38 +0530 Subject: [PATCH 06/21] rtw.html changes --- .../views/realTimeLogs/rtwizard/rtwizard.html | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index c386332..72971a5 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -85,10 +85,29 @@ + + + +
    -

    + From 55dfceb55285ee87e3d3b4945e68ad13614692b6 Mon Sep 17 00:00:00 2001 From: rahildar Date: Fri, 15 Apr 2016 15:47:57 +0530 Subject: [PATCH 07/21] code with accumulator functions --- components/aggregator/avg-aggregator.js | 4 +- components/aggregator/max-aggregator.js | 4 + components/aggregator/min-aggregator.js | 6 ++ .../aggregator/{sum.js => sum-aggregator.js} | 4 +- components/queryexecutor/query-executor.js | 89 +++++++++++++------ .../query-executor.js.org.latest | 89 +++++++++++++++++++ .../rollingCount/accumulateOverCount.js | 6 +- components/rollingTime/time-accumulator.js | 10 ++- 8 files changed, 175 insertions(+), 37 deletions(-) rename components/aggregator/{sum.js => sum-aggregator.js} (82%) create mode 100644 components/queryexecutor/query-executor.js.org.latest diff --git a/components/aggregator/avg-aggregator.js b/components/aggregator/avg-aggregator.js index ee6c0a4..45cc0c2 100644 --- a/components/aggregator/avg-aggregator.js +++ b/components/aggregator/avg-aggregator.js @@ -3,9 +3,11 @@ module.exports=function (arr){ var i=0; var sum=0; var avg=0; + for(i=0;i= 100) { + } else if (diffMs >= parseInt(this.windowDuration)) { //window active now console.log('active now'); pastDate = new Date(); From 2b7c8d0da5ed287f15e468c31536aeae4a56ddf6 Mon Sep 17 00:00:00 2001 From: rahildar Date: Fri, 15 Apr 2016 16:45:02 +0530 Subject: [PATCH 08/21] fixed error for add condition button --- .../realTimeLogs/queryBuilder/queryBuilderController.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 0fd04dc..eb9b71d 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -181,6 +181,7 @@ app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) if(addConditionCount>2) { $scope.flag=true; + } scope.group.rules.push({ condition: 'of', @@ -192,6 +193,10 @@ app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) }; scope.removeCondition = function (index) { + if(addConditionCount>1){ + addConditionCount=2 + } + addConditionCount--; scope.group.rules.splice(index, 1); }; From 19cbc51bf30f93a1be5dffb193d4329f023267ed Mon Sep 17 00:00:00 2001 From: rahildar Date: Fri, 15 Apr 2016 16:46:25 +0530 Subject: [PATCH 09/21] minor changes --- public/stylesheets/style.css | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 72c4d36..1eed5a5 100755 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1238,18 +1238,7 @@ ul[dnd-list] > li > a{ padding-bottom: 100px; } - -///dummy - - - - - - - - - - +/*wave 4*/ #tabLog, #tabLog td, #tabLog th { border: 1px solid black; From 81e2fd2f0478bcac280e5278b245d0c037c714b5 Mon Sep 17 00:00:00 2001 From: rahildar Date: Fri, 15 Apr 2016 17:06:26 +0530 Subject: [PATCH 10/21] minor changes for removing evaluate undefined --- components/queryexecutor/query-executor.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index 2c4c059..0f4622a 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -44,12 +44,10 @@ RT.push(new rollingTime(query.eval.val1.rolling.over.time,getAggregator(query.eval.val1.rolling.evaluate))); //rollingTime not available } else { - console.log("**************count intitalized for val1********************* for "+query.eval.val1.rolling.over.count); - RC.push(new rollingCount(query.eval.val1.rolling.over.count,average));//assume every computation is either rollingTime or rollingCount + RC.push(new rollingCount(query.eval.val1.rolling.over.count,getAggregator(query.eval.val1.rolling.evaluate)));//assume every computation is either rollingTime or rollingCount } if(query.eval.val2.rolling.over.count){ - console.log("**************count intitalized for val2*********************"); - RC.push(new rollingCount(query.eval.val1.rolling.over.count,average)); + RC.push(new rollingCount(query.eval.val1.rolling.over.count,getAggregator(query.eval.val1.rolling.evaluate))); } else { RT.push(new rollingTime(query.eval.val1.rolling.over.time,getAggregator(query.eval.val1.rolling.evaluate))); //assume every computation is either rollingTime or rollingCount @@ -76,12 +74,12 @@ var RTCount=0, RCCount=0; if(query.eval.val1.rolling.over.time){ - temp.val1=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]); //rollingTime not available + temp.val1=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]); } else { temp.val1=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount } - if(query.eval.val1.rolling.over.count){ + if(query.eval.val2.rolling.over.count){ temp.val2=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]); //rollingTime not available } else { From 413873c59cb8c204e6c65054ec10bbd9245f5532 Mon Sep 17 00:00:00 2001 From: rahildar Date: Fri, 15 Apr 2016 17:30:55 +0530 Subject: [PATCH 11/21] minor changes in acc functions --- components/queryexecutor/query-executor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index 0f4622a..41acd21 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -47,10 +47,10 @@ RC.push(new rollingCount(query.eval.val1.rolling.over.count,getAggregator(query.eval.val1.rolling.evaluate)));//assume every computation is either rollingTime or rollingCount } if(query.eval.val2.rolling.over.count){ - RC.push(new rollingCount(query.eval.val1.rolling.over.count,getAggregator(query.eval.val1.rolling.evaluate))); + RC.push(new rollingCount(query.eval.val2.rolling.over.count,getAggregator(query.eval.val2.rolling.evaluate))); } else { - RT.push(new rollingTime(query.eval.val1.rolling.over.time,getAggregator(query.eval.val1.rolling.evaluate))); //assume every computation is either rollingTime or rollingCount + RT.push(new rollingTime(query.eval.val2.rolling.over.time,getAggregator(query.eval.val2.rolling.evaluate))); //assume every computation is either rollingTime or rollingCount } self.getPipeline = function() { From 8eba67e56513e45a93e0a3a434c89281f297ce6d Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Sat, 16 Apr 2016 16:14:37 +0530 Subject: [PATCH 12/21] updated table code and change in controller --- .DS_Store | Bin 10244 -> 10244 bytes public/.DS_Store | Bin 8196 -> 8196 bytes .../realTimeLogs/rtwizard/rtcontroller.js | 57 ++++++++---- .../views/realTimeLogs/rtwizard/rtwizard.html | 86 ++++++------------ 4 files changed, 68 insertions(+), 75 deletions(-) diff --git a/.DS_Store b/.DS_Store index ff1c92a010aea8afe8f80351b55516c2a882bcbf..fd81e226617a9be27f91c5455111a9c1fb37c70b 100644 GIT binary patch delta 27 icmZn(XbIS$A;D&BV6LNJF*#mZWwNS>>gIBZUVZ>?zz4km delta 16 XcmZn(XbIS$Au;*4u>a?kPDczkoBU>OU$kpWP~ Z&}{QPQ4OZe>=Hj%CjS$;i6pAZ1OW3380i22 diff --git a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js index c375e24..1146d0c 100644 --- a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js +++ b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js @@ -1,17 +1,42 @@ +// var app = angular.module('logAggregator'); +// app.controller('rtcontroller', function($scope, $http) { +// $http.get('todos.json') +// .then(function(res){ +// $scope.todos = res.data; +// }); +// }); + + var app = angular.module('logAggregator'); - app.controller('rtcontroller', function($scope, $http) { - $http.get('todos.json') - .then(function(res){ - $scope.todos = res.data; - }); - }); - -// angular.module('',[]); -// var ws = new Websocket("ws://172.23.238.253:9090"); -// ws.onopen = function(){ -// -// }; -// -// function listener(data){ -// var msgobject = data; -// } + + app.controller('rtcontroller',function($scope){ + // app.controller('myController',function($scope){ + + $scope.key = []; + $scope.val = []; + var ws = new WebSocket("ws://172.23.238.253:7070"); + var isFirstMessage = true; + + ws.onmessage = function(evt){ + + $scope.$apply(function(){ + var received_msg = JSON.parse(evt.data); + var data = received_msg[2]; + + if(isFirstMessage){ + + for(var key in data){ + $scope.key.push(key); + } + + isFirstMessage = false ; + + } // if(isFirstMessage) end + + $scope.val.push(data); + + }) ; //$scope.apply end + + } ; //ws.onmessage end + + }); //app.controller end diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index 72971a5..4963d19 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -5,7 +5,12 @@ -
    + + + + +
    +
    + + + + + + + + + + + + + + + +
    {{header}}
    {{row[header]}}
    + +

    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    RemoteHostUserMethodPathCodeSizeAgentTime
    {{data.remote}}{{data.host}}{{data.user}}{{data.method}}{{data.path}}{{data.code}}{{data.size}}{{data.agent}}{{data.time}}
    - -
    From db8fadacdd783380633ffe0df28797a63f34b893 Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Sun, 17 Apr 2016 01:46:44 +0530 Subject: [PATCH 13/21] Changes --- public/controllers/realTimeLogs/rtwizard/rtcontroller.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js index 1146d0c..648f9e6 100644 --- a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js +++ b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js @@ -6,7 +6,6 @@ // }); // }); - var app = angular.module('logAggregator'); app.controller('rtcontroller',function($scope){ From 4d1285c133bbeae1cceb094305ef010cc85bd79e Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Sun, 17 Apr 2016 01:50:52 +0530 Subject: [PATCH 14/21] Update code --- public/stylesheets/rt-table.css | 12 ------------ public/views/realTimeLogs/rtwizard/rtwizard.html | 4 ---- 2 files changed, 16 deletions(-) delete mode 100644 public/stylesheets/rt-table.css diff --git a/public/stylesheets/rt-table.css b/public/stylesheets/rt-table.css deleted file mode 100644 index 6b3e770..0000000 --- a/public/stylesheets/rt-table.css +++ /dev/null @@ -1,12 +0,0 @@ - -/*table, th , td { - border: 1px solid grey; - border-collapse: collapse; - padding: 5px; -} -table tr:nth-child(odd) { - background-color: #f1f1f1; -} -table tr:nth-child(even) { - background-color: #ffffff; -}*/ diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index 4963d19..2f258d0 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -1,9 +1,5 @@ - - - - From baf2d0e7acf45628d242189638ba0a19901dbf78 Mon Sep 17 00:00:00 2001 From: Baskaran T Date: Mon, 18 Apr 2016 12:38:18 +0530 Subject: [PATCH 15/21] updated --- .../views/gitLog/mainPage/mainPage.view.html | 24 +------------------ .../views/realTimeLogs/rtwizard/rtwizard.html | 1 + 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/public/views/gitLog/mainPage/mainPage.view.html b/public/views/gitLog/mainPage/mainPage.view.html index 3e97f0c..4aa85dd 100644 --- a/public/views/gitLog/mainPage/mainPage.view.html +++ b/public/views/gitLog/mainPage/mainPage.view.html @@ -31,31 +31,9 @@ - + - - diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index 2f258d0..0e78c36 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -112,5 +112,6 @@ +
    From 4e4e7f51e14f0df567a01445efbb270c40df36f5 Mon Sep 17 00:00:00 2001 From: rahildar Date: Mon, 18 Apr 2016 15:25:46 +0530 Subject: [PATCH 16/21] modified code --- components/queryexecutor/mainquery.js | 41 +++++++++-------- components/queryexecutor/query-executor.js | 4 +- components/rollingTime/time-accumulator.js | 4 +- .../defineData/defineDataController.js | 4 +- .../queryBuilder/queryBuilderController.js | 44 +++++++++++++++++++ .../queryBuilder/liveQueryWizard.html | 43 ++++++++++++++++-- vagrantfile | 2 +- 7 files changed, 114 insertions(+), 28 deletions(-) diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index c41be04..e361d24 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -42,27 +42,32 @@ wss.on('connection', function(ws) { ws.setMaxListeners(ws.getMaxListeners() + 1); }); +var isClientConnected = false; + module.exports=function (queryy) { var executor = new QueryExecutor(queryy); var pipeline = executor.getPipeline(); - WebSocket1.on('connect', function(connection) { - console.log("Connected..Waiting for some message"); - var streamData = {}; - _('message', connection).pipe(_.pipeline(_.map(function(msg) { - console.log('data received'); - return JSON.parse(msg.utf8Data)[2]; - }) - )) - .pipe(pipeline) - .pipe(_.pipeline( - _.map(function(msg) { - if(serverWs) { - serverWs.send(JSON.stringify(msg)); - } + if(!isClientConnected) { + WebSocket1.on('connect', function(connection) { + isClientConnected = true; + console.log("Connected..Waiting for some message"); + var streamData = {}; + _('message', connection).pipe(_.pipeline(_.map(function(msg) { + console.log('data received '); + return JSON.parse(msg.utf8Data)[2]; }) - )).done(); - connection.setMaxListeners(connection.getMaxListeners() + 1); - }); - WebSocket1.connect('ws://172.23.238.253:7070'); + )) + .pipe(pipeline) + .pipe(_.pipeline( + _.map(function(msg) { + if(serverWs) { + serverWs.send(JSON.stringify(msg)); + } + }) + )).done(); + connection.setMaxListeners(connection.getMaxListeners() + 1); + }); + WebSocket1.connect('ws://172.23.238.253:7070'); + } } diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index 41acd21..6bb7521 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -75,6 +75,7 @@ RCCount=0; if(query.eval.val1.rolling.over.time){ temp.val1=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]); + } else { temp.val1=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount @@ -102,9 +103,8 @@ tempdata.highlight=eval(condition) } else { - tempdata.highlight=false; + tempdata.highlight=false; } - // console.log(tempdata); return tempdata; //object with select parameters and highlight })); return _.pipeline.apply(this, pipeline); diff --git a/components/rollingTime/time-accumulator.js b/components/rollingTime/time-accumulator.js index c9effe6..cd2f94a 100644 --- a/components/rollingTime/time-accumulator.js +++ b/components/rollingTime/time-accumulator.js @@ -7,14 +7,14 @@ module.exports = function(time, evalFunc) { this.evaluate = function(line) { //creating array if it doesn't exist - //console.log(line); + console.log('################## '+line); if (typeof lineArr == "undefined" || !(lineArr instanceof Array)) { lineArr = []; } //accumulating data for 10secs if (typeof line !== 'undefined') { var obj = {}; - obj.line = line.trim(); + // obj.line = line.trim(); obj.date = new Date(); lineArr.push(obj); } diff --git a/public/controllers/realTimeLogs/defineData/defineDataController.js b/public/controllers/realTimeLogs/defineData/defineDataController.js index 6910d22..f51d9a4 100644 --- a/public/controllers/realTimeLogs/defineData/defineDataController.js +++ b/public/controllers/realTimeLogs/defineData/defineDataController.js @@ -26,9 +26,9 @@ angular.module('logAggregator').controller('defineDataController', ['$scope','$h $http({method: 'Post', url: '/dimensions/addDimension',data:{data:dimobj}}). success(function(data, status, headers, config) { console.log("Successful"); - console.log(data); + // console.log(data); }); - console.log(dimobj.displayName); + // console.log(dimobj.displayName); $scope.dimensionList.push(dimobj.displayName); } diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index eb9b71d..72a2ce4 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -3,6 +3,8 @@ var kk=0; var str2=""; var addConditionCount=0; app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) { + + var data = '{"group": {"operator": "OR","rules": []}}'; $scope.flag=false; @@ -226,6 +228,48 @@ app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) }); }; + + scope.dimensionList = []; + scope.measureList = []; + + scope.getDimension = function () { + $http({method: 'GET', url: '/dimensions'}). + then(function(response) { + var dimArr = response.data; + console.log("array",dimArr); + if (dimArr.length > 0) { + for (var i = 0; i < dimArr.length; i++) { + //console.log("inside loop", dimArr[i].dispName); + scope.dimensionList.push(dimArr[i].displayName); + } + } + }); + + }; + + + scope.getMeasure = function () { + $http({method: 'GET', url: '/measures'}). + then(function(response) { + var measArr = response.data; + console.log("array",measArr); + if (measArr.length > 0) { + for (var i = 0; i < measArr.length; i++) { + //console.log("inside loop", dimArr[i].dispName); + scope.measureList.push(measArr[i].displayName); + } + } + }); + + }; + + + + + + + + directive || (directive = $compile(content)); element.append(directive(scope, function ($compile) { diff --git a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html index c16cb24..04ffd03 100644 --- a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html +++ b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html @@ -15,6 +15,7 @@ @@ -42,6 +43,8 @@

    Query on the Go!

    + +
    Example Output
    @@ -50,6 +53,8 @@

    Query on the Go!

    + +
    @@ -73,7 +78,7 @@

    Query on the Go!

    - +
    @@ -96,10 +101,42 @@

    Query on the Go!

    - +
    +
    +
    + +
    +
    +
      +
    • {{dim}}
    • +
    +
    +
    +
    +
    +
    +

    + Measures +

    +
    +
    +
    +
      +
    • {{m}}
    • +
    +
    +
    +
    +
    +
    + -
    +
    diff --git a/vagrantfile b/vagrantfile index 3878dd5..453b930 100644 --- a/vagrantfile +++ b/vagrantfile @@ -37,7 +37,7 @@ Vagrant.configure(2) do |config| # Map the guest os port 8080 to host os port 8080 config.vm.network "forwarded_port", guest: 8585, host: 9595 config.vm.network "forwarded_port", guest: 9000, host: 9000 - + config.vm.network "forwarded_port", guest: 5050, host: 5050 if OS.windows? From fc3d5b98a0ea1d4940950659d2526cc280a9807e Mon Sep 17 00:00:00 2001 From: rahildar Date: Thu, 21 Apr 2016 18:54:28 +0530 Subject: [PATCH 17/21] minor changes --- components/RTdatamapper/RTdatamapper.js | 75 +++++++++---------- components/queryexecutor/mainquery.js | 32 ++++++-- components/queryexecutor/query-executor.js | 5 +- components/rollingTime/time-accumulator.js | 4 +- models/namespaceSchema.js | 13 +--- .../defineData/defineDataController.js | 2 - .../queryBuilder/queryBuilderController.js | 19 ++--- .../realTimeLogs/rtwizard/rtcontroller.js | 6 +- .../realTimeLogs/defineData/defineData.html | 2 +- 9 files changed, 79 insertions(+), 79 deletions(-) diff --git a/components/RTdatamapper/RTdatamapper.js b/components/RTdatamapper/RTdatamapper.js index 0a2a5e4..8e51687 100644 --- a/components/RTdatamapper/RTdatamapper.js +++ b/components/RTdatamapper/RTdatamapper.js @@ -9,50 +9,49 @@ var wss = new WebSocketServer({ }); var serverWs; wss.on('connection', function(ws) { - console.log('CONNECTED'); - ws.send('Connected'); + //console.log('CONNECTED'); +// ws.send('Connected'); serverWs = ws; - //ws.setMaxListeners(ws.getMaxListeners() + 1); -}); - -module.exports = function(namespaceId, measures) { - console.log("inside component", measures); - WebSocket1.on('connect', function(connection) { - console.log("Connected..Waiting for some message"); - var streamData = {}; - _('message', connection).map(function(msg) { - streamData = JSON.parse(msg.utf8Data)[2]; - var keys = Object.keys(streamData); //array of keys in the streaming data - for (var k = 0; k < measures.length; k++) { - for (var i = 0; i < keys.length; i++) { - if (keys[i] === measures[k].eventField) { - var keyValue = keys[i]; - if (measures[k].measureType === "radioField") { +}); +var measures = []; +module.exports = function(mList) { + measures = []; + measures = mList; + console.log(measures); +}; +console.log("inside component", measures); +WebSocket1.on('connect', function(connection) { + console.log("Connected..Waiting for some message"); + streamData = {}; + _('message', connection).map(function(msg) { + streamData = JSON.parse(msg.utf8Data)[2]; + var keys = Object.keys(streamData); //array of keys in the streaming data + for (var k = 0; k < measures.length; k++) { + for (var i = 0; i < keys.length; i++) { + if (keys[i] === measures[k].eventField) { + var keyValue = keys[i]; + if (measures[k].measureType === "fieldMeasure") { + var displayValue = measures[k].displayName; + streamData[displayValue] = "1"; + } else { + if (streamData[keyValue] === measures[k].eventValue) { var displayValue = measures[k].displayName; - streamData[displayValue] = true; + streamData[displayValue] = "1"; } else { - if (streamData[keyValue] === measures[k].eventValue) { - var displayValue = measures[k].displayName; - streamData[displayValue] = true; - } else { - var displayValue = measures[k].displayName; - streamData[displayValue] = false; - } + var displayValue = measures[k].displayName; + streamData[displayValue] = "0"; } } } } - if (serverWs) { - serverWs.send(JSON.stringify(streamData)); - } - console.log(streamData); - }).done(function() { - console.log('Done'); - }); + } + if (serverWs) { + serverWs.send(JSON.stringify(streamData)); + } + // console.log(streamData); + }).done(function() { + console.log('Done'); }); - WebSocket1.connect('ws://172.23.238.253:7070'); - - // function msg - /* ending of program*/ -} +}); +WebSocket1.connect('ws://172.23.238.253:7070'); diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index e361d24..f9c94fb 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -36,8 +36,8 @@ var wss = new WebSocketServer({port: 9000}); var serverWs; wss.on('connection', function(ws) { - console.log('CONNECTED'); - ws.send('Connected'); + //console.log('CONNECTED'); + // ws.send('Connected'); serverWs = ws; ws.setMaxListeners(ws.getMaxListeners() + 1); }); @@ -48,16 +48,32 @@ module.exports=function (queryy) { var executor = new QueryExecutor(queryy); var pipeline = executor.getPipeline(); + var firstPipeline; + + var getPipeline = function() { + return pipeline; + } if(!isClientConnected) { - WebSocket1.on('connect', function(connection) { + firstPipeline = pipeline; + WebSocket1.on('connect', function(connection) { isClientConnected = true; - console.log("Connected..Waiting for some message"); + console.log(" Connected..Waiting for some message "); var streamData = {}; _('message', connection).pipe(_.pipeline(_.map(function(msg) { - console.log('data received '); - return JSON.parse(msg.utf8Data)[2]; + streamData=msg; + console.log('data received from local '+ JSON.stringify(streamData.utf8Data)); + return JSON.parse(streamData.utf8Data); }) - )) + )).pipe(_.pipeline(_.map(function(msg) { + if (pipeline == firstPipeline) { + console.log("######## equal"); + } + else { + console.log("not equal"); + } + return msg + }) + )) .pipe(pipeline) .pipe(_.pipeline( _.map(function(msg) { @@ -68,6 +84,6 @@ module.exports=function (queryy) { )).done(); connection.setMaxListeners(connection.getMaxListeners() + 1); }); - WebSocket1.connect('ws://172.23.238.253:7070'); + WebSocket1.connect('ws://localhost:5050'); } } diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index 6bb7521..a29b9f3 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -57,13 +57,14 @@ return self.createPipeline(self.query); } self.createPipeline = function(query) { + console.log("$$$$$$$$$$4 "+JSON.stringify(query)); var pipeline = []; if(query.hasOwnProperty('from') && query.from.hasOwnProperty('where')) { var sifter = sift(query.from.where); pipeline.push(_.filter(sifter)); } pipeline.push(_.map(function(obj) { - // console.log('in query exec '); + var siftobj=new Object(); expkeys=query.select; siftobj.filter=function(value) { @@ -75,7 +76,6 @@ RCCount=0; if(query.eval.val1.rolling.over.time){ temp.val1=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]); - } else { temp.val1=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount @@ -86,6 +86,7 @@ else { temp.val2=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount } + console.log("in pipe############### "+JSON.stringify(query)); return temp; } var data={ diff --git a/components/rollingTime/time-accumulator.js b/components/rollingTime/time-accumulator.js index cd2f94a..ed3be3d 100644 --- a/components/rollingTime/time-accumulator.js +++ b/components/rollingTime/time-accumulator.js @@ -14,7 +14,9 @@ module.exports = function(time, evalFunc) { //accumulating data for 10secs if (typeof line !== 'undefined') { var obj = {}; - // obj.line = line.trim(); + if(typeof line === 'string'){ + obj.line = line.trim(); + } obj.date = new Date(); lineArr.push(obj); } diff --git a/models/namespaceSchema.js b/models/namespaceSchema.js index 49cb9d2..2832939 100644 --- a/models/namespaceSchema.js +++ b/models/namespaceSchema.js @@ -1,5 +1,5 @@ var mongoose = require('mongoose'); -var RTdatamapper = require('../components/RTdatamapper/RTdatamapper'); +var getMeasure = require('../components/RTdatamapper/RTdatamapper'); var namespaceSchema = new mongoose.Schema({ name:String, @@ -36,15 +36,8 @@ namespaceSchema.statics.findNamespace=function(name,cb){ }; namespaceSchema.post('save',function (namespace) { - // if (!err){ - console.log('nid' +namespace._id + '||' +namespace.measures); - RTdatamapper(namespace._id,namespace.measures); - - // log.info('post saving...', this); - // } - // else{ - // console.log('error occured in hook' + err); - // } + // console.log('nid' +namespace._id + '||' +namespace.measures); + getMeasure(namespace.measures); }); diff --git a/public/controllers/realTimeLogs/defineData/defineDataController.js b/public/controllers/realTimeLogs/defineData/defineDataController.js index f51d9a4..29b35f5 100644 --- a/public/controllers/realTimeLogs/defineData/defineDataController.js +++ b/public/controllers/realTimeLogs/defineData/defineDataController.js @@ -26,9 +26,7 @@ angular.module('logAggregator').controller('defineDataController', ['$scope','$h $http({method: 'Post', url: '/dimensions/addDimension',data:{data:dimobj}}). success(function(data, status, headers, config) { console.log("Successful"); - // console.log(data); }); - // console.log(dimobj.displayName); $scope.dimensionList.push(dimobj.displayName); } diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 72a2ce4..aad88eb 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -2,8 +2,8 @@ var app = angular.module('logAggregator'); var kk=0; var str2=""; var addConditionCount=0; -app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) { - +app.controller('liveQueryController', ['$scope','$http', +function ($scope,$http) { var data = '{"group": {"operator": "OR","rules": []}}'; $scope.flag=false; @@ -32,11 +32,9 @@ app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) // computed(group.rules[i].group) : // //} - } return " Select "+$scope.select1 + " from " +$scope.stream + " where "+ str + ")"; - } @@ -56,21 +54,14 @@ app.controller('liveQueryController', ['$scope','$http', function ($scope,$http) var stringA=""; var count=0; var cn=0; - for(var j=0;j +
    From 86d00a01bf1e8d1ad1ba4e34fbc8359b9df42be1 Mon Sep 17 00:00:00 2001 From: rahildar Date: Mon, 25 Apr 2016 09:07:37 +0530 Subject: [PATCH 18/21] using custom stream to query data --- components/RTdatamapper/RTdatamapper.js | 62 +-- components/queryexecutor/mainquery.js | 33 +- models/namespaceSchema.js | 8 +- .../queryBuilder/queryBuilderController.js | 408 +++++++++--------- .../stylesheets/queryBuilder/queryBuilder.css | 21 + .../queryBuilder/liveQueryWizard.html | 152 +++---- .../views/realTimeLogs/rtwizard/rtwizard.html | 2 +- routes/defineData/logdata.js | 11 +- .../realTimeLogs/queryBuilder/expressions.js | 11 +- 9 files changed, 363 insertions(+), 345 deletions(-) diff --git a/components/RTdatamapper/RTdatamapper.js b/components/RTdatamapper/RTdatamapper.js index 8e51687..bf99eb8 100644 --- a/components/RTdatamapper/RTdatamapper.js +++ b/components/RTdatamapper/RTdatamapper.js @@ -1,4 +1,6 @@ var _ = require('highland'); +//var Namespace = require('../../models/dbConfig').namespaceModel; + var WebSocketClient = require('websocket').client; // var WebSocket1 = new WebSocketClient(); var WebSocketServer = require('ws').Server; @@ -9,45 +11,57 @@ var wss = new WebSocketServer({ }); var serverWs; wss.on('connection', function(ws) { - //console.log('CONNECTED'); -// ws.send('Connected'); + console.log('CONNECTED'); + // ws.send('Connected'); serverWs = ws; - }); var measures = []; -module.exports = function(mList) { - measures = []; - measures = mList; - console.log(measures); +var source; +//console.log("message in rt .........",Namespace); +// var forwardPort; +module.exports = function(namespaceId,Namespace) { + + console.log("hello"); + console.log("message",Namespace); + Namespace.findNamespace(namespaceId, function(err, namespace) { + if (namespace != null) { + measures = []; + measures = namespace.measures; + source = namespace.source; + } + }); }; console.log("inside component", measures); WebSocket1.on('connect', function(connection) { - console.log("Connected..Waiting for some message"); + console.log("Connected..Waiting for some message in RT dataMAPPEr"); streamData = {}; _('message', connection).map(function(msg) { - streamData = JSON.parse(msg.utf8Data)[2]; - var keys = Object.keys(streamData); //array of keys in the streaming data - for (var k = 0; k < measures.length; k++) { - for (var i = 0; i < keys.length; i++) { - if (keys[i] === measures[k].eventField) { - var keyValue = keys[i]; - if (measures[k].measureType === "fieldMeasure") { - var displayValue = measures[k].displayName; - streamData[displayValue] = "1"; - } else { - if (streamData[keyValue] === measures[k].eventValue) { + var sourceData = JSON.parse(msg.utf8Data)[0]; + if (source === sourceData) { + streamData = JSON.parse(msg.utf8Data)[2]; + var keys = Object.keys(streamData); //array of keys in the streaming data + for (var k = 0; k < measures.length; k++) { + for (var i = 0; i < keys.length; i++) { + if (keys[i] === measures[k].eventField) { + var keyValue = keys[i]; + if (measures[k].measureType === "fieldMeasure") { var displayValue = measures[k].displayName; streamData[displayValue] = "1"; } else { - var displayValue = measures[k].displayName; - streamData[displayValue] = "0"; + if (streamData[keyValue] === measures[k].eventValue) { + var displayValue = measures[k].displayName; + streamData[displayValue] = "1"; + } else { + var displayValue = measures[k].displayName; + streamData[displayValue] = "0"; + } } } } } - } - if (serverWs) { - serverWs.send(JSON.stringify(streamData)); + if (serverWs) { + serverWs.send(JSON.stringify(streamData)); + } } // console.log(streamData); }).done(function() { diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index f9c94fb..fc9a4d5 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -48,32 +48,29 @@ module.exports=function (queryy) { var executor = new QueryExecutor(queryy); var pipeline = executor.getPipeline(); - var firstPipeline; - - var getPipeline = function() { - return pipeline; + if (isClientConnected) { + isClientConnected=false; + console.log("WebSocket1 keys "); + for(var l in WebSocket1) { + console.log('>>> ' + l); + } + WebSocket1.abort(); } if(!isClientConnected) { - firstPipeline = pipeline; - WebSocket1.on('connect', function(connection) { + + WebSocket1.on('connect', function(connection) { isClientConnected = true; console.log(" Connected..Waiting for some message "); var streamData = {}; - _('message', connection).pipe(_.pipeline(_.map(function(msg) { + connection.on('close', function() { + console.log('connection closed'); + }); + _('message', connection).pipe(_.pipeline(_.map(function(msg) { streamData=msg; console.log('data received from local '+ JSON.stringify(streamData.utf8Data)); return JSON.parse(streamData.utf8Data); - }) - )).pipe(_.pipeline(_.map(function(msg) { - if (pipeline == firstPipeline) { - console.log("######## equal"); - } - else { - console.log("not equal"); - } - return msg - }) - )) + }) + )) .pipe(pipeline) .pipe(_.pipeline( _.map(function(msg) { diff --git a/models/namespaceSchema.js b/models/namespaceSchema.js index 2832939..cb42a9d 100644 --- a/models/namespaceSchema.js +++ b/models/namespaceSchema.js @@ -35,10 +35,10 @@ namespaceSchema.statics.findNamespace=function(name,cb){ }); }; - namespaceSchema.post('save',function (namespace) { - // console.log('nid' +namespace._id + '||' +namespace.measures); - getMeasure(namespace.measures); - }); + // namespaceSchema.post('save',function (namespace) { + // // console.log('nid' +namespace._id + '||' +namespace.measures); + // getMeasure(namespace.measures); + // }); module.exports=namespaceSchema; diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index aad88eb..142a0c3 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -1,16 +1,70 @@ var app = angular.module('logAggregator'); var kk=0; var str2=""; +var pid ; var addConditionCount=0; -app.controller('liveQueryController', ['$scope','$http', -function ($scope,$http) { +app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',function ($scope,$http,$compile,$sce) { + + var dimensionMap= new Map(); + var measureMap = new Map(); + var visitedMap= new Map(); + $scope.iter=1; + $scope.iter2=1; + + + var data = '{"group": {"operator": "OR","rules": []}}'; $scope.flag=false; + $scope.aggfn = ["average", "mean", "max","standard deviation"]; + $scope.accumfn = ["time", "count"]; + $scope.operators = [">", "<", "==",">=","=<"]; + //$scope.operators = [">", "<", "==",">=","=<"]; + + + console.log($scope.selectedAccumFn2); + + + function htmlEntities(str) { return String(str).replace(//g, '>'); + } + + + + + $scope.submitQuery = function () { + + + + console.log("pid----------------------->>>>>>>>>>>"+pid); + + $http({method: 'Post', url: '/exp/stream',data:{data:pid}}). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + query=JSON.parse(str2); + // query=str2; + // console.log("Answer String") + console.log(str2); + // $scope.answer=str2; + $http({method: 'Post', url: '/exp/save',data:{data:query}}). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + + window.location="#rtWizard"; + + + }; + + + + function computed(group) { if (!group) return ""; for (var str = "(", i = 0; i < group.rules.length; i++) { @@ -32,241 +86,191 @@ function ($scope,$http) { // computed(group.rules[i].group) : // //} + return "asddddddddddddddddddd"; + } return " Select "+$scope.select1 + " from " +$scope.stream + " where "+ str + ")"; + } - function computeJson(group){ - if(!group) return ""; - // str2="{from: {stream: "+$scope.stream+",where: {server-name: {$regex: \"/$server.*/\" }}},select:["; - str2="{\"select\":["; - var str3="],\"eval\": {"; + $scope.computeJson=function (){ - var strng=$scope.select1; + str2="{\"select\":["; + var str3="],\"eval\": {"; - var dummy=""; - var stringA=""; - var count=0; - var cn=0; - for(var j=0;j 0 && (str2 += ","); - kk++; + } - str2 += group.rules[i].group ? - computeJson(group.rules[i].group) : - "\"val"+(i+1)+"\" : { \"rolling\" : { \"evaluate\" :\""+group.rules[i].field+"\", \"over\" : { \""+group.rules[i].accumulator+"\": "+group.rules[i].value+"},\"on\":\""+group.rules[i].data+"\"}}"; - operator=group.operator; - //if(kk>0) - //{ - // str += group.rules[i].group ? - // computed(group.rulews[i].group) : - // - //} + stringA = stringA + "\"" + dummy + "\""; - } - var str6="},\"project\": { \"$highlight\": {\"$condition\":\"val1 "+operator+" val2\"}},\"to\": \""+$scope.streamB+"\"}"; - str2=str2+str6; + str2=str2+stringA+str3; + + str2=str2+"\"val1\": {\"rolling\": {\"evaluate\":\""+$scope.selectedAggFn1+"\",\"over\": {\""+$scope.selectedAccumFn1+"\":"+$scope.value1+"},\"on\":\"" + +$scope.measure1+"\"}},\"val2\": {\"rolling\": {\"evaluate\":\""+$scope.selectedAggFn2+"\",\"over\": {\""+$scope.selectedAccumFn2+"\":"+$scope.value2 + +"},\"on\":\"" +$scope.measure2+"\"}}},\"project\": {\"$highlight\": {\"$condition\": \"val1 "+$scope.selectedOperators +"val2\"}},\"to\": \"a\"}"; + console.log(str2); + + + + $scope.display=str2; + $scope.trustedHtml=$sce.trustAsHtml($scope.display); + console.log("------"+str2); return str2; } + var dimArr; + $scope.nameSpaceList=[]; + + + + ( function () { + $http({method: 'GET', url: '/logdata/namespaceList'}). + then(function(response) { + console.log("respose--------------------------"); + console.log(response.data); + dimArr = response.data; + var dimArrLength=dimArr.length; + console.log("length-----------"+dimArrLength); + console.log("array",dimArr); + + if (dimArr.length > 0) { + for (var i = 0; i < dimArr.length; i++) { + //console.log("inside loop", dimArr[i].dispName); + var newObj=dimArr[i]; + console.log("name-------------"+newObj); + + $scope.nameSpaceList.push(newObj); + var objId=dimArr[i]._id; + var dimensionArr=dimArr[i].dimensions; + var measureArr=dimArr[i].measures; + dimensionMap.set(objId,dimensionArr); + measureMap.set(objId,measureArr); + + } + console.log("jajajajaja") + console.log($scope.nameSpaceList); + } + + }); + + }()); + + + + + + $scope.getDimensionAndMeasure=function (id) { + + $scope.dimensionList=[]; + $scope.measureList=[]; + + + pid=id; + var visitedValue=visitedMap.get(id); + if(visitedValue!=1) { + + visitedMap.set(id,1); + console.log("get dimension clicked. ID: " + id); + + var arrayDim = dimensionMap.get(id); + var arrayMeas = measureMap.get(id); + console.log(measureMap) + console.log("hihihi"); + console.log(arrayDim); + + + for (var j = 0; j < arrayDim.length; j++) { + $scope.dimensionList[j] = arrayDim[j].fieldName; + + } + + for (var j = 0; j < arrayMeas.length; j++) { + // $scope.dimensionList[j]=arrayDim[j].fieldName; + $scope.measureList[j] = arrayMeas[j].displayName; + + } + + + console.log("measure list"); + console.log($scope.measureList); + + var btnhtml = '
  •        a) Dimensions
    • '; + var i = 0; + for (i = 0; i < $scope.dimensionList.length; i++) { + btnhtml = btnhtml + "
    •      " +$scope.iter2+". "+ $scope.dimensionList[i] + "
    • " + $scope.iter2++; + } + btnhtml = btnhtml + "
  •        b) Measures
    • "; + // btnhtml = btnhtml + "
  •        Measures
    • "; + + var i = 0; + for (i = 0; i < $scope.measureList.length; i++) { + + + btnhtml = btnhtml + "
    •      " +$scope.iter+". "+ $scope.measureList[i] + "
    • " + $scope.iter++; + } + btnhtml = btnhtml + "
    "; + + console.log(btnhtml); + var temp = $compile(btnhtml)($scope); + angular.element(document.getElementById(id)).append(temp); + + + } + } + $scope.output2 = "sadasdadaasdasdsa"; + $scope.aggregatorList=["average", "mean", "max","standard deviation"]; $scope.json = null; $scope.filter = JSON.parse(data); $scope.$watch('filter', function (newValue) { $scope.json = JSON.stringify(newValue, null, 2); - $scope.output = computed(newValue.group); - $scope.jsonOutput=computeJson(newValue.group); + $scope.output2 = "sadasdadaasdasdsa"; + console.log("output value"+$scope.output2); + //$scope.jsonOutput=computeJson(newValue.group); }, true); }]); - -//var queryBuilder = angular.module('queryBuilder', []); - app.directive('queryBuilder', ['$compile','$http', function ($compile,$http) { - return { - restrict: 'E', - scope: { - group: '=' - }, - templateUrl: '/queryBuilderDirective.html', - compile: function (element, attrs) { - var content, directive; - content = element.contents().remove(); - return function (scope, element, attrs) { - scope.operators = [ - { name: '==' }, - { name: '<>' }, - { name: '<' }, - { name: '<=' }, - { name: '>' }, - { name: '>=' } - ]; - - scope.fields = [ - { name: 'average' }, - { name: 'standard deviation' }, - { name: 'count' }, - { name: 'mean' }, - { name: 'max' } - ]; - - scope.accumulators = [ - { name: 'count' }, - { name: 'time' } - - ]; - - scope.conditions = [ - { name: '=' }, - { name: '<>' }, - { name: '<' }, - { name: '<=' }, - { name: '>' }, - { name: '>=' } - ]; - - scope.addCondition = function () { - - addConditionCount++; - if(addConditionCount>2) - { - $scope.flag=true; - - } - scope.group.rules.push({ - condition: 'of', - field: 'average', - data: '', - accumulator:'', - value:'' - }); - }; - - scope.removeCondition = function (index) { - if(addConditionCount>1){ - addConditionCount=2 - } - addConditionCount--; - scope.group.rules.splice(index, 1); - }; - - scope.addGroup = function () { - scope.group.rules.push({ - group: { - operator: 'AND', - rules: [] - } - }); - }; - - scope.removeGroup = function () { - "group" in scope.$parent && scope.$parent.group.rules.splice(scope.$parent.$index, 1); - }; - - scope.submitQuery = function () { - query=JSON.parse(str2); - // query=str2; - // console.log("Answer String") - // console.log(str2); - // $scope.answer=str2; - $http({method: 'Post', url: '/exp/save',data:{data:query}}). - success(function(data, status, headers, config) { - console.log("Successful"); - console.log(data); - }); - }; - - - scope.dimensionList = []; - scope.measureList = []; - - scope.getDimension = function () { - $http({method: 'GET', url: '/dimensions'}). - then(function(response) { - var dimArr = response.data; - console.log("array",dimArr); - if (dimArr.length > 0) { - for (var i = 0; i < dimArr.length; i++) { - //console.log("inside loop", dimArr[i].dispName); - scope.dimensionList.push(dimArr[i].displayName); - } - } - }); - - }; - - - scope.getMeasure = function () { - $http({method: 'GET', url: '/measures'}). - then(function(response) { - var measArr = response.data; - console.log("array",measArr); - if (measArr.length > 0) { - for (var i = 0; i < measArr.length; i++) { - //console.log("inside loop", dimArr[i].dispName); - scope.measureList.push(measArr[i].displayName); - } - } - }); - - }; - - - - - - - - - directive || (directive = $compile(content)); - - element.append(directive(scope, function ($compile) { - return $compile; - })); - } - } - } -}]); diff --git a/public/stylesheets/queryBuilder/queryBuilder.css b/public/stylesheets/queryBuilder/queryBuilder.css index 7582e38..7518d9d 100644 --- a/public/stylesheets/queryBuilder/queryBuilder.css +++ b/public/stylesheets/queryBuilder/queryBuilder.css @@ -8,6 +8,13 @@ .group-conditions{ margin-left: 20px; } +#operator{ + text-align: center; +} + +.namespaceliststyle{ + padding-left: 0px; +} .widcheck{ } #livequeryform{ @@ -28,3 +35,17 @@ margin-top: 15px; margin-bottom: 15px; } + + + + + +.baskya{ + padding-left: 0px; +} + +.sidebar-nav li { + display: block; + text-decoration: none; + color: darkblue; +} diff --git a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html index 04ffd03..88762f6 100644 --- a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html +++ b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html @@ -1,7 +1,10 @@ -
    + + + +
    -

    Query on the Go!

    +
    +

    Query on the Go!

    - Example Output
    - -
    + Json Output
    +
    - + +

    + + +
    +
    -
    -
    +

       WHERE

    + - -
    + - +
    + + +
    diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index 0e78c36..5036b4b 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -99,7 +99,7 @@ - + {{row[header]}} diff --git a/routes/defineData/logdata.js b/routes/defineData/logdata.js index a11619a..c36a8ae 100644 --- a/routes/defineData/logdata.js +++ b/routes/defineData/logdata.js @@ -91,7 +91,16 @@ var mongoose = require('mongoose'); var Namespace = require('../../models/dbConfig').namespaceModel; var fs = require('fs'); - +//get the list of namespace +router.get('/namespaceList', function(req, res) { +// Namespace.remove({}, function(){ +// res.send("deleted"); +// }); +// Namespace.remove(); + Namespace.find(function(err,namespace){ + res.send(namespace); + }); +}); /* GET log data */ router.get('/', function(req, res) { diff --git a/routes/realTimeLogs/queryBuilder/expressions.js b/routes/realTimeLogs/queryBuilder/expressions.js index caba3c1..e8f8f4b 100644 --- a/routes/realTimeLogs/queryBuilder/expressions.js +++ b/routes/realTimeLogs/queryBuilder/expressions.js @@ -1,8 +1,9 @@ var express = require('express'); var router = express.Router(); var Expression = require('../../../models/dbConfig').expressionModel; -var mainquery=require('../../../components/queryexecutor/mainquery.js') - +var mainquery=require('../../../components/queryexecutor/mainquery.js'); +var datamapper=require('../../../components/RTdatamapper/RTdatamapper.js'); +var Namespace = require('../../../models/dbConfig').namespaceModel; router.post('/save', function(req, res, next) { // console.log('****************************in express routes********************* '+ JSON.stringify(req.body.data)); @@ -35,6 +36,12 @@ Expression.searchQuery(search,function(err,doc) { +}); +router.post('/stream', function(req, res, next) { + console.log("rcvd namespace " +JSON.stringify(req.body.data)); + // console.log(Namespace); + datamapper(req.body.data,Namespace); + res.send("cha"); }); module.exports = router; From f39870754729deb5e339e547ac906921f51b365e Mon Sep 17 00:00:00 2001 From: rahildar Date: Mon, 25 Apr 2016 19:48:06 +0530 Subject: [PATCH 19/21] last changes --- components/RTdatamapper/RTdatamapper.js | 48 ++-- components/queryexecutor/mainquery.js | 72 +++--- components/queryexecutor/query-executor.js | 10 +- .../defineData/defineDataController.js | 242 ++++++++++++++---- .../queryBuilder/queryBuilderController.js | 174 +++++++++---- public/stylesheets/rt-table.css | 12 + public/stylesheets/style.css | 61 ++++- .../realTimeLogs/defineData/defineData.html | 154 +++++++---- .../realTimeLogs/defineData/defineData1.html | 73 ------ .../realTimeLogs/defineData/defineData2.html | 191 -------------- .../queryBuilder/liveQueryWizard.html | 2 +- .../views/realTimeLogs/rtwizard/rtwizard.html | 33 +-- routes/defineData/dimensions.js | 122 ++++----- routes/defineData/logdata.js | 153 ++--------- routes/defineData/measures.js | 58 ++--- 15 files changed, 637 insertions(+), 768 deletions(-) create mode 100644 public/stylesheets/rt-table.css delete mode 100644 public/views/realTimeLogs/defineData/defineData1.html delete mode 100644 public/views/realTimeLogs/defineData/defineData2.html diff --git a/components/RTdatamapper/RTdatamapper.js b/components/RTdatamapper/RTdatamapper.js index bf99eb8..d5f5137 100644 --- a/components/RTdatamapper/RTdatamapper.js +++ b/components/RTdatamapper/RTdatamapper.js @@ -1,11 +1,10 @@ var _ = require('highland'); -//var Namespace = require('../../models/dbConfig').namespaceModel; - var WebSocketClient = require('websocket').client; // var WebSocket1 = new WebSocketClient(); var WebSocketServer = require('ws').Server; // var wss = new WebSocketServer({port: 8484}); var WebSocket1 = new WebSocketClient(); +var sift = require('sift'); var wss = new WebSocketServer({ port: 5050 }); @@ -17,46 +16,45 @@ wss.on('connection', function(ws) { }); var measures = []; var source; -//console.log("message in rt .........",Namespace); // var forwardPort; module.exports = function(namespaceId,Namespace) { - - console.log("hello"); - console.log("message",Namespace); Namespace.findNamespace(namespaceId, function(err, namespace) { if (namespace != null) { + // console.log("routes",namespace.dimensions); + // res.send(namespace.dimensions); measures = []; measures = namespace.measures; source = namespace.source; + //console.log(measures); } }); }; console.log("inside component", measures); WebSocket1.on('connect', function(connection) { - console.log("Connected..Waiting for some message in RT dataMAPPEr"); + console.log("Connected..Waiting for some message"); streamData = {}; _('message', connection).map(function(msg) { var sourceData = JSON.parse(msg.utf8Data)[0]; if (source === sourceData) { streamData = JSON.parse(msg.utf8Data)[2]; - var keys = Object.keys(streamData); //array of keys in the streaming data - for (var k = 0; k < measures.length; k++) { - for (var i = 0; i < keys.length; i++) { - if (keys[i] === measures[k].eventField) { - var keyValue = keys[i]; - if (measures[k].measureType === "fieldMeasure") { - var displayValue = measures[k].displayName; - streamData[displayValue] = "1"; - } else { - if (streamData[keyValue] === measures[k].eventValue) { - var displayValue = measures[k].displayName; - streamData[displayValue] = "1"; - } else { - var displayValue = measures[k].displayName; - streamData[displayValue] = "0"; - } - } - } + // var keys = Object.keys(streamData); //array of keys in the streaming data + var condition; + var sifter; + for (var k = 0; k < measures.length; k++) + { + var displayValue=measures[k].eventField; + // streamdata, keys + if(measures[k].measureType === "fieldMeasure") { + condition = {}; + + condition[measures[k].eventField] = {$exists: true}; + sifter = sift(condition); + streamData[displayValue] = sifter(streamData) ? 1 : 0 + } else { + condition = {}; + condition[measures[k].eventField] = measures[k].eventValue; + sifter = sift(condition); + streamData[displayValue] = sifter(streamData) ? 1 : 0; } } if (serverWs) { diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index fc9a4d5..7fbf684 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -43,42 +43,56 @@ wss.on('connection', function(ws) { }); var isClientConnected = false; +var stream; +var con; +var pipeline; -module.exports=function (queryy) { +function bootstrapStream() { + console.log("connected in mainQuery"); + stream=_('message',con); + stream.pipe(_.pipeline(_.map(function(msg) { + streamData=msg; + console.log('data received '); + return JSON.parse(streamData.utf8Data); + }) + )) + .pipe(pipeline) + .pipe(_.pipeline( + _.map(function(msg) { + if(serverWs) { + serverWs.send(JSON.stringify(msg)); + } + }) + )).done(); +} + +module.exports=function (queryy) { var executor = new QueryExecutor(queryy); - var pipeline = executor.getPipeline(); + pipeline = executor.getPipeline(); + if (isClientConnected) { - isClientConnected=false; - console.log("WebSocket1 keys "); - for(var l in WebSocket1) { - console.log('>>> ' + l); - } - WebSocket1.abort(); + // isClientConnected=false; + console.log('before stream destroyed '); + // for (var variable in stream) { + // console.log('>>> '+variable); + // } + stream.end(function() { + console.log('after stream destroyed'); + bootstrapStream(); + }); + console.log('after stream destroyed'); } - if(!isClientConnected) { - - WebSocket1.on('connect', function(connection) { +else{ + WebSocket1.on('connect', function(connection) { isClientConnected = true; - console.log(" Connected..Waiting for some message "); + console.log(" Connected..Waiting for some message inQuery"); var streamData = {}; - connection.on('close', function() { - console.log('connection closed'); - }); - _('message', connection).pipe(_.pipeline(_.map(function(msg) { - streamData=msg; - console.log('data received from local '+ JSON.stringify(streamData.utf8Data)); - return JSON.parse(streamData.utf8Data); - }) - )) - .pipe(pipeline) - .pipe(_.pipeline( - _.map(function(msg) { - if(serverWs) { - serverWs.send(JSON.stringify(msg)); - } - }) - )).done(); + connection.on('close', function() { + console.log('connection closed ***'); + }); + con=connection; + bootstrapStream(); connection.setMaxListeners(connection.getMaxListeners() + 1); }); WebSocket1.connect('ws://localhost:5050'); diff --git a/components/queryexecutor/query-executor.js b/components/queryexecutor/query-executor.js index a29b9f3..6012f51 100644 --- a/components/queryexecutor/query-executor.js +++ b/components/queryexecutor/query-executor.js @@ -57,7 +57,7 @@ return self.createPipeline(self.query); } self.createPipeline = function(query) { - console.log("$$$$$$$$$$4 "+JSON.stringify(query)); + // console.log("$$$$$$$$$$4 "+JSON.stringify(query)); var pipeline = []; if(query.hasOwnProperty('from') && query.from.hasOwnProperty('where')) { var sifter = sift(query.from.where); @@ -76,17 +76,19 @@ RCCount=0; if(query.eval.val1.rolling.over.time){ temp.val1=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]); + console.log("over time is "+temp.val1 +'and actual value passed is '+value[query.eval.val1.rolling.on]); } else { temp.val1=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount } if(query.eval.val2.rolling.over.count){ - temp.val2=RC[RCCount++].evaluate(value[query.eval.val1.rolling.on]); //rollingTime not available + temp.val2=RC[RCCount++].evaluate(value[query.eval.val2.rolling.on]); //rollingTime not available } else { - temp.val2=RT[RTCount++].evaluate(value[query.eval.val1.rolling.on]);//assume every computation is either rollingTime or rollingCount + temp.val2=RT[RTCount++].evaluate(value[query.eval.val2.rolling.on]);//assume every computation is either rollingTime or rollingCount + console.log("over time is "+temp.val2 +'and actual value passed is '+value[query.eval.val2.rolling.on]); } - console.log("in pipe############### "+JSON.stringify(query)); + // console.log("in pipe############### "+JSON.stringify(query)); return temp; } var data={ diff --git a/public/controllers/realTimeLogs/defineData/defineDataController.js b/public/controllers/realTimeLogs/defineData/defineDataController.js index 29b35f5..142bd28 100644 --- a/public/controllers/realTimeLogs/defineData/defineDataController.js +++ b/public/controllers/realTimeLogs/defineData/defineDataController.js @@ -1,7 +1,14 @@ -angular.module('logAggregator').controller('defineDataController', ['$scope','$http', 'defineDataService', - function($scope,$http, defineDataService) { +angular.module('logAggregator').controller('defineDataController', ['$scope', '$http', 'defineDataService', + function($scope, $http, defineDataService) { $scope.dimensionList = []; $scope.measureList = []; + $scope.displayDimError = false; + $scope.displayMeasError = false; + $scope.namespaceName = "Create namespace"; + + $scope.showContent = function($fileContent) { + $scope.content = $fileContent; + }; $scope.hoverIn = function() { this.hoverEdit = true; @@ -13,92 +20,215 @@ angular.module('logAggregator').controller('defineDataController', ['$scope','$h $scope.selectedDim = function(val) { if (!val) { - return ; + return; } $scope.dimVal = val; } - $scope.submitDimension=function() { - dimobj={ - displayName:$scope.displayname, - fieldname:$scope.dimVal + $scope.submitDimension = function() { + if($scope.addDimForm.$invalid) + { + console.log("ERROR"); + return; + } + dimobj = { + displayName: $scope.displayname, + fieldname: $scope.dimVal, + namespaceName :$scope.namespaceName + } + if ($scope.displayname === $scope.dimVal) { + $scope.displayDimError = true; + } else { + $scope.displayDimError = false; + console.log("post", dimobj); + $http({ + method: 'Post', + url: '/dimensions/addDimension', + data: { + data: dimobj + } + }). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + console.log(dimobj.displayName); + $scope.dimensionList.push(dimobj.displayName); + } + } + + $scope.submitMeasure = function() { + if($scope.addMeasForm.$invalid) + { + console.log("ERROR"); + return; + } + measobj = { + displaymeasurename: $scope.displaymeasurename, + measureFieldSelector: $scope.measureFieldSelector, + measure: $scope.measure, + measField: $scope.measField, + measValue: $scope.measValue, + namespaceName :$scope.namespaceName + } + if ($scope.displaymeasurename === $scope.measureFieldSelector || $scope.displaymeasurename === $scope.measField) { + $scope.displayMeasError = true; + } else { + $scope.displayMeasError = false; + console.log("post", measobj); + $http({ + method: 'Post', + url: '/measures/addMeasure', + data: { + data: measobj + } + }). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + $scope.measureList.push(measobj.displaymeasurename); } - console.log("post",dimobj); - $http({method: 'Post', url: '/dimensions/addDimension',data:{data:dimobj}}). - success(function(data, status, headers, config) { - console.log("Successful"); - }); - $scope.dimensionList.push(dimobj.displayName); } - $scope.submitMeasure=function() { - measobj={ - displaymeasurename:$scope.displaymeasurename, - measureFieldSelector:$scope.measureFieldSelector, - measure:$scope.measure, - measField:$scope.measField, - measValue:$scope.measValue - } - console.log("post",measobj); - $http({method: 'Post', url: '/measures/addMeasure',data:{data:measobj}}). + + $scope.deleteDimension = function(dim) { + //console.log("final array ", $scope.dimensionList); + for (var i = 0; i < $scope.dimensionList.length; i++) { + if ($scope.dimensionList[i] === dim) { + deleteDim={ + namespaceName :$scope.namespaceName, + dimName:dim + } + $scope.dimensionList.pop($scope.dimensionList[i]); + } + } + $http({method: 'Post', url: '/dimensions/delete',data:{data:deleteDim}}). success(function(data, status, headers, config) { console.log("Successful"); console.log(data); }); - //console.log(dimobj.displayName); - $scope.measureList.push(measobj.displaymeasurename); - //$scope.dimensionList.push(dimobj.displayName); } + $scope.deleteMeasure = function(measure) { + for (var i = 0; i < $scope.measureList.length; i++) { + if ($scope.measureList[i] === measure) { + deletemeasureList={ + namespaceName :$scope.namespaceName, + measName:measure + } + $scope.measureList.pop($scope.measureList[i]); + } + } + $http({method: 'Post', url: '/measures/delete',data:{data:deletemeasureList}}). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + } - - $scope.selectedMeas = function(key,val) { + $scope.selectedMeas = function(key, val) { if (!key) { - return ; + return; } $scope.measField = key; $scope.measValue = val; } + $scope.createMapFromJSON = function(obj) { + var newObject = {} + for(var key in obj) { + if(typeof obj[key] === 'object') { + Object.keys(obj[key]).map(function(s) { + newObject[key+'.'+s] = obj[key][s]; + }); + } else { + newObject[key] = obj[key]; + } + } + return newObject; + }; + $scope.getKeys = function(obj) { if (!obj) { return []; } - //console.log(Object.keys(obj)); return Object.keys(obj); } $scope.rowSelected = function(obj) { if (!obj) { return {}; } - $scope.selectedRow = obj; + $scope.selectedRow = $scope.createMapFromJSON(obj); } - defineDataService.getDimensionData().then(function(response) { - var dimArr = response.data; - console.log("array",dimArr); - if (dimArr.length > 0) { - for (var i = 0; i < dimArr.length; i++) { - //console.log("inside loop", dimArr[i].dispName); - $scope.dimensionList.push(dimArr[i].displayName); - } + //get namespace streaming + $scope.getData = function() { + if($scope.namespaceForm.$invalid) + { + console.log("ERROR"); + return; } - //console.log("scope",$scope.dimensionList); - }); - defineDataService.getMeasureData().then(function(response) { - var mArr = response.data; - console.log(mArr); - if (mArr.length > 0) { - for (var i = 0; i < mArr.length; i++) { - $scope.measureList.push(mArr[i].displayName); - } + $('#myModal').modal('hide'); + namespaceObj = { + name: $scope.namespace, + description: $scope.desc, + createdOn: Date.now(), + source: $scope.source } - }); - defineDataService.getLogData().then(function(response) { - $scope.namespaceName=response.data.namespaceName; - $scope.logdataList = response.data.filedata; - //console.log($scope.logdataList); - $scope.cols = Object.keys($scope.logdataList[0]); - - }); + console.log("post", namespaceObj); + $scope.namespaceName = $scope.namespace; + $scope.cols = []; + $scope.logdataList = []; + $scope.dimensionList = []; + $scope.measureList = []; + $scope.displayname = ""; + $scope.dimVal = ""; + $scope.displaymeasurename = ""; + $scope.measField = ""; + $scope.measValue = ""; + $scope.selectedRow = {}; + if ($scope.namespace1 === "radioFile") { + $scope.logdataList = JSON.parse($scope.content); + $scope.cols = Object.keys($scope.logdataList[0]); + console.log("data fro uplaod", $scope.logdataList); + } else { + var ws = new WebSocket("ws://172.23.238.253:7070"); + var count = 0; + ws.onmessage = function(evt) { + $scope.$apply(function() { + var received_msg = JSON.parse(evt.data); + var sourceData = received_msg[0]; + if ($scope.source === sourceData && count < 10) { + var data = received_msg[2]; + count++; + $scope.logdataList.push(data); + console.log("lenght",$scope.cols.length); + if ($scope.cols.length <= 0) { + for (var key in data) { + $scope.cols.push(key); + } + } + } + if (count >= 10) { + ws.close(); + ws.onclose = function() { + console.log("close"); + } + } + }); + }; + } + $http({ + method: 'Post', + url: '/logdata', + data: { + data: namespaceObj + } + }). + success(function(data, status, headers, config) { + console.log("Successful"); + console.log(data); + }); + }; } ]); diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 142a0c3..34e9445 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -5,6 +5,7 @@ var pid ; var addConditionCount=0; app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',function ($scope,$http,$compile,$sce) { + var dimensionMap= new Map(); var measureMap = new Map(); var visitedMap= new Map(); @@ -23,7 +24,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct //$scope.operators = [">", "<", "==",">=","=<"]; - console.log($scope.selectedAccumFn2); +// console.log($scope.selectedAccumFn2); @@ -39,7 +40,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct - console.log("pid----------------------->>>>>>>>>>>"+pid); + // console.log("pid----------------------->>>>>>>>>>>"+pid); $http({method: 'Post', url: '/exp/stream',data:{data:pid}}). success(function(data, status, headers, config) { @@ -72,7 +73,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct // console.log($scope.select1); // console.log("len----"+ group.rules.length); - console.log(group.rules[i]); + // console.log(group.rules[i]); i > 0 && (str += " "+group.operator+" "); kk++; @@ -148,37 +149,49 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct str2=str2+"\"val1\": {\"rolling\": {\"evaluate\":\""+$scope.selectedAggFn1+"\",\"over\": {\""+$scope.selectedAccumFn1+"\":"+$scope.value1+"},\"on\":\"" +$scope.measure1+"\"}},\"val2\": {\"rolling\": {\"evaluate\":\""+$scope.selectedAggFn2+"\",\"over\": {\""+$scope.selectedAccumFn2+"\":"+$scope.value2 - +"},\"on\":\"" +$scope.measure2+"\"}}},\"project\": {\"$highlight\": {\"$condition\": \"val1 "+$scope.selectedOperators +"val2\"}},\"to\": \"a\"}"; - console.log(str2); - + +"},\"on\":\"" +$scope.measure2+"\"}}},\"project\": {\"$highlight\": {\"$condition\": \"val1 "+$scope.selectedOperators +" val2\"}},\"to\": \"a\"}"; + // console.log(str2); $scope.display=str2; $scope.trustedHtml=$sce.trustAsHtml($scope.display); - console.log("------"+str2); + // console.log("------"+str2); return str2; } var dimArr; - $scope.nameSpaceList=[]; - ( function () { + + $scope.getRows = function () { + + + + + dimensionMap.clear(); + measureMap.clear(); + visitedMap.clear(); + console.log("sssssssssssssssssssssssssssssss"); + $http({method: 'GET', url: '/logdata/namespaceList'}). then(function(response) { console.log("respose--------------------------"); - console.log(response.data); + //console.log(response.data); + //console.log("resposeData--------------------------"); + + dimArr = response.data; var dimArrLength=dimArr.length; - console.log("length-----------"+dimArrLength); - console.log("array",dimArr); + //console.log("length-----------"+dimArrLength); + //console.log("array",dimArr); + $scope.nameSpaceList=[]; if (dimArr.length > 0) { for (var i = 0; i < dimArr.length; i++) { - //console.log("inside loop", dimArr[i].dispName); + console.log("inside loop"+ dimArr[i].dispName); var newObj=dimArr[i]; - console.log("name-------------"+newObj); + // console.log("name-------------"+newObj); $scope.nameSpaceList.push(newObj); var objId=dimArr[i]._id; @@ -189,12 +202,48 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct } console.log("jajajajaja") - console.log($scope.nameSpaceList); + //console.log($scope.nameSpaceList); } }); - }()); + } + + + // ( function () { + // $http({method: 'GET', url: '/logdata/namespaceList'}). + // then(function(response) { + // console.log("respose--------------------------"); + // console.log(response.data); + // console.log("resposeData--------------------------"); + // + // + // dimArr = response.data; + // var dimArrLength=dimArr.length; + // console.log("length-----------"+dimArrLength); + // console.log("array",dimArr); + // + // if (dimArr.length > 0) { + // for (var i = 0; i < dimArr.length; i++) { + // //console.log("inside loop", dimArr[i].dispName); + // var newObj=dimArr[i]; + // console.log("name-------------"+newObj); + // + // $scope.nameSpaceList.push(newObj); + // var objId=dimArr[i]._id; + // var dimensionArr=dimArr[i].dimensions; + // var measureArr=dimArr[i].measures; + // dimensionMap.set(objId,dimensionArr); + // measureMap.set(objId,measureArr); + // + // } + // console.log("jajajajaja") + // console.log($scope.nameSpaceList); + // } + // + // }); + // + // }()); @@ -202,63 +251,78 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct $scope.getDimensionAndMeasure=function (id) { - $scope.dimensionList=[]; - $scope.measureList=[]; - pid=id; - var visitedValue=visitedMap.get(id); - if(visitedValue!=1) { + console.log("qqqqqqqqqqqqqqqqqq") - visitedMap.set(id,1); - console.log("get dimension clicked. ID: " + id); - var arrayDim = dimensionMap.get(id); - var arrayMeas = measureMap.get(id); - console.log(measureMap) - console.log("hihihi"); - console.log(arrayDim); + $scope.dimensionList=[]; + $scope.measureList=[]; - for (var j = 0; j < arrayDim.length; j++) { - $scope.dimensionList[j] = arrayDim[j].fieldName; + pid=id; + var visitedValue=visitedMap.get(id); + console.log("visited value -----"+visitedValue); - } + if(visitedValue!=1) + { - for (var j = 0; j < arrayMeas.length; j++) { - // $scope.dimensionList[j]=arrayDim[j].fieldName; - $scope.measureList[j] = arrayMeas[j].displayName; + visitedMap.set(id,1); +// console.log("get dimension clicked. ID: " + id); - } + var arrayDim = dimensionMap.get(id); + console.log("Dimension Map"); + console.log(dimensionMap) + console.log("array dim ---------------->>>>>>>>>>>>>>>>>>"); + console.log(arrayDim); + var arrayMeas = measureMap.get(id); + //console.log(measureMap) + //console.log("hihihi"); + //console.log("array dim ka length ---------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+arrayDim.length); - console.log("measure list"); - console.log($scope.measureList); + for (var j = 0; j < arrayDim.length; j++) { + $scope.dimensionList[j] = arrayDim[j].fieldName; - var btnhtml = '
  •        a) Dimensions
    • '; - var i = 0; - for (i = 0; i < $scope.dimensionList.length; i++) { - btnhtml = btnhtml + "
    •      " +$scope.iter2+". "+ $scope.dimensionList[i] + "
    • " - $scope.iter2++; - } - btnhtml = btnhtml + "
  •        b) Measures
    • "; - // btnhtml = btnhtml + "
  •        Measures
    • "; + } + + for (var j = 0; j < arrayMeas.length; j++) { + // $scope.dimensionList[j]=arrayDim[j].fieldName; + $scope.measureList[j] = arrayMeas[j].displayName; + + } + + + //console.log("measure list"); + //console.log($scope.measureList); - var i = 0; - for (i = 0; i < $scope.measureList.length; i++) { + var btnhtml = '
    •        a) Dimensions
      • '; + var i = 0; + for (i = 0; i < $scope.dimensionList.length; i++) { + btnhtml = btnhtml + "
      •      " +$scope.iter2+". "+ $scope.dimensionList[i] + "
      • " + $scope.iter2++; + } + btnhtml = btnhtml + "
    •        b) Measures
      • "; + // btnhtml = btnhtml + "
    •        Measures
      • "; + + var i = 0; + for (i = 0; i < $scope.measureList.length; i++) { + + + btnhtml = btnhtml + "
      •      " +$scope.iter+". "+ $scope.measureList[i] + "
      • " + $scope.iter++; + } + btnhtml = btnhtml + "
      "; + +// console.log(btnhtml); + var temp = $compile(btnhtml)($scope); + angular.element(document.getElementById(id)).append(temp); - btnhtml = btnhtml + "
    •      " +$scope.iter+". "+ $scope.measureList[i] + "
    • " - $scope.iter++; } - btnhtml = btnhtml + "
    "; - console.log(btnhtml); - var temp = $compile(btnhtml)($scope); - angular.element(document.getElementById(id)).append(temp); - } } $scope.output2 = "sadasdadaasdasdsa"; @@ -270,7 +334,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct $scope.$watch('filter', function (newValue) { $scope.json = JSON.stringify(newValue, null, 2); $scope.output2 = "sadasdadaasdasdsa"; - console.log("output value"+$scope.output2); + // console.log("output value"+$scope.output2); //$scope.jsonOutput=computeJson(newValue.group); }, true); }]); diff --git a/public/stylesheets/rt-table.css b/public/stylesheets/rt-table.css new file mode 100644 index 0000000..6b3e770 --- /dev/null +++ b/public/stylesheets/rt-table.css @@ -0,0 +1,12 @@ + +/*table, th , td { + border: 1px solid grey; + border-collapse: collapse; + padding: 5px; +} +table tr:nth-child(odd) { + background-color: #f1f1f1; +} +table tr:nth-child(even) { + background-color: #ffffff; +}*/ diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 1eed5a5..70d2b3d 100755 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1237,36 +1237,64 @@ ul[dnd-list] > li > a{ .formBottomPad{ padding-bottom: 100px; } +/*Wave 4 code-start*/ +#table-wrapper { + position:relative; +} +#table-scroll { + height:450px; + overflow:auto; + margin-top:20px; +} + +#table-wrapper table { + width:100%; +} + +#table-wrapper table * { + background:white; + color:black; +} -/*wave 4*/ +#table-wrapper table thead th .text { + position:absolute; + top:-20px; + z-index:2; + height:20px; + width:35%; + border:1px solid red; +} #tabLog, #tabLog td, #tabLog th { border: 1px solid black; cursor: pointer; + } #tabLog { border-collapse: collapse; - width: 100%; - margin-top: 10px; -} - -th { - height: 50px; - + /*width: 100%;*/ + /*margin-top: 10px;*/ } +/* td ,th { padding-left: 10px; padding-right: 10px; -} +}*/ #goBtn{ margin-top: 10px; } +.panelBody{ + height: 550px; +} + + .mainSection { - height: 750px; +border: none; +box-shadow: none; } .container{ @@ -1330,3 +1358,16 @@ td ,th { width: 100%; margin-top: 10px; } +.modal-scroll{ + overflow-x:scroll; + overflow-y: scroll; + padding-bottom:10px; +} +.align-left{ + text-align:left; +} +.wordwrap{ + text-align:center; + word-wrap:break-word; +} +/*Wave 4 code end------*/ diff --git a/public/views/realTimeLogs/defineData/defineData.html b/public/views/realTimeLogs/defineData/defineData.html index b55d745..d05abd9 100644 --- a/public/views/realTimeLogs/defineData/defineData.html +++ b/public/views/realTimeLogs/defineData/defineData.html @@ -1,7 +1,7 @@ - +
    -
    +
    @@ -12,11 +12,35 @@

    + + + +

    +
    -
    - - - - - - - - - - - -
    {{header}}
    {{row[dat]}}
    +
    +
    + + + + + + + + + + + +
    {{header}}
    {{row[dat]}}
    +
    -
    -
    +
    +

    Select Entity @@ -108,8 +136,8 @@

    - - + + - + diff --git a/routes/defineData/dimensions.js b/routes/defineData/dimensions.js index f25e5fc..5ed95dc 100644 --- a/routes/defineData/dimensions.js +++ b/routes/defineData/dimensions.js @@ -16,6 +16,7 @@ dimensionRouter.post('/addDimension', function(req, res) { }); namespace.save(function(err, namespace) { console.log('namespace saved:', namespace); + // res.send(200).send(); }); } }); diff --git a/routes/defineData/logdata.js b/routes/defineData/logdata.js index 1d7f040..741ebbb 100644 --- a/routes/defineData/logdata.js +++ b/routes/defineData/logdata.js @@ -28,7 +28,7 @@ router.post('/', function(req, res) { }); router.get('/namespaceList', function(req, res) { - // + // // Namespace.remove({},function(){ // console.log("deleted"); // }); diff --git a/routes/defineData/measures.js b/routes/defineData/measures.js index 5b4ddde..388359a 100644 --- a/routes/defineData/measures.js +++ b/routes/defineData/measures.js @@ -24,6 +24,7 @@ router.post('/addMeasure', function(req, res) { }); namespace.save(function(err, namespace) { console.log('namespace saved:', namespace); + // res.send(200).send(); }); } }); diff --git a/views/footer_includes.ejs b/views/footer_includes.ejs index 5698d45..53e02e7 100755 --- a/views/footer_includes.ejs +++ b/views/footer_includes.ejs @@ -85,6 +85,9 @@ This code is written by Ashish Gupta, Tarun Mohandas, Suriya Prakash, Srinivasa + + + From 70c16524b531708f916a7066429fa653cd0e3470 Mon Sep 17 00:00:00 2001 From: shefalivaish09 Date: Fri, 29 Apr 2016 12:56:19 +0530 Subject: [PATCH 21/21] final updated code --- app.js | 5 ++- components/RTdatamapper/RTdatamapper.js | 6 ++-- components/queryexecutor/mainquery.js | 4 +-- .../rollingCount/accumulateOverCount.js | 2 +- components/rollingTime/time-accumulator.js | 12 ++++--- models/namespaceSchema.js | 15 ++++++++ ...debug.log.a1d4e2a4f569f81c5ad4fa417425f8f6 | 36 +++++++++++++++++++ .../gitLog/controllers/indexController.js | 13 +------ .../queryBuilder/queryBuilderController.js | 2 +- .../realTimeLogs/rtwizard/rtcontroller.js | 13 ++----- .../javascripts/fileUpload/onReadFile.js | 21 +++++++++++ public/stylesheets/simple-sidebar.css | 2 +- public/stylesheets/style.css | 4 +-- .../views/realTimeLogs/rtwizard/rtwizard.html | 2 +- routes/defineData/dimensions.js | 1 + routes/defineData/logdata.js | 2 +- routes/defineData/measures.js | 1 + views/footer_includes.ejs | 3 ++ 18 files changed, 104 insertions(+), 40 deletions(-) create mode 100644 npm-debug.log.a1d4e2a4f569f81c5ad4fa417425f8f6 create mode 100644 public/directives/javascripts/fileUpload/onReadFile.js diff --git a/app.js b/app.js index 899d480..1c2fce9 100755 --- a/app.js +++ b/app.js @@ -13,7 +13,8 @@ See the License for the specific language governing permissions and limitations under the License. This code is written by Prateek Reddy Yammanuru, Shiva Manognya Kandikuppa, Uday Kumar Mydam, Nirup TNL, Sandeep Reddy G, Deepak Kumar - and updated by Ashish Gupta, Tarun Mohandas, Suriya Prakash, Srinivasa Burli, Jishnu Surendran and Bhairavi Balakrishnan*/ + and updated by Ashish Gupta, Tarun Mohandas, Suriya Prakash, Srinivasa Burli, Jishnu Surendran and Bhairavi Balakrishnan, + enhanced by wave 4 team - Baskaran,Neel,Pallabee,Rahil,Shefali*/ //var mongoose = require('./mongoose'); //var db = mongoose(); @@ -66,8 +67,6 @@ var dimensionRouter = require('./routes/defineData/dimensions'); var measuresRouter = require('./routes/defineData/measures'); var namespaceRouter = require('./routes/defineData/logdata'); var expressions=require('./routes/realTimeLogs/queryBuilder/expressions.js') -// wave 4 code starts here -//require('./database'); var saveQuery = require('./routes/queryBuilder/saveQuery'); // wave 4 code ends here diff --git a/components/RTdatamapper/RTdatamapper.js b/components/RTdatamapper/RTdatamapper.js index d5f5137..0f810f7 100644 --- a/components/RTdatamapper/RTdatamapper.js +++ b/components/RTdatamapper/RTdatamapper.js @@ -26,6 +26,7 @@ module.exports = function(namespaceId,Namespace) { measures = namespace.measures; source = namespace.source; //console.log(measures); + console.log("called --------------------------------------------------------------------------------------------------------------"); } }); }; @@ -37,19 +38,20 @@ WebSocket1.on('connect', function(connection) { var sourceData = JSON.parse(msg.utf8Data)[0]; if (source === sourceData) { streamData = JSON.parse(msg.utf8Data)[2]; + console.log(streamData); // var keys = Object.keys(streamData); //array of keys in the streaming data var condition; var sifter; for (var k = 0; k < measures.length; k++) { - var displayValue=measures[k].eventField; + var displayValue=measures[k].displayName; // streamdata, keys if(measures[k].measureType === "fieldMeasure") { condition = {}; condition[measures[k].eventField] = {$exists: true}; sifter = sift(condition); - streamData[displayValue] = sifter(streamData) ? 1 : 0 + streamData[displayValue] = sifter(streamData) ? streamData[measures[k].eventField] : 0 } else { condition = {}; condition[measures[k].eventField] = measures[k].eventValue; diff --git a/components/queryexecutor/mainquery.js b/components/queryexecutor/mainquery.js index 7fbf684..6f4407b 100644 --- a/components/queryexecutor/mainquery.js +++ b/components/queryexecutor/mainquery.js @@ -39,7 +39,7 @@ wss.on('connection', function(ws) { //console.log('CONNECTED'); // ws.send('Connected'); serverWs = ws; - ws.setMaxListeners(ws.getMaxListeners() + 1); + //ws.setMaxListeners(ws.getMaxListeners() + 1); }); var isClientConnected = false; @@ -93,7 +93,7 @@ else{ }); con=connection; bootstrapStream(); - connection.setMaxListeners(connection.getMaxListeners() + 1); +// connection.setMaxListeners(connection.getMaxListeners() + 1); }); WebSocket1.connect('ws://localhost:5050'); } diff --git a/components/rollingCount/accumulateOverCount.js b/components/rollingCount/accumulateOverCount.js index 54962af..1b4f98c 100644 --- a/components/rollingCount/accumulateOverCount.js +++ b/components/rollingCount/accumulateOverCount.js @@ -16,7 +16,7 @@ module.exports=function AccumulateOverCount(count, evalFunc) { // console.log(arr); counter++; - return undefined; + return null; } else { var k = counter%count; diff --git a/components/rollingTime/time-accumulator.js b/components/rollingTime/time-accumulator.js index ed3be3d..059d1df 100644 --- a/components/rollingTime/time-accumulator.js +++ b/components/rollingTime/time-accumulator.js @@ -7,7 +7,7 @@ module.exports = function(time, evalFunc) { this.evaluate = function(line) { //creating array if it doesn't exist - console.log('################## '+line); + if (typeof lineArr == "undefined" || !(lineArr instanceof Array)) { lineArr = []; } @@ -15,8 +15,12 @@ module.exports = function(time, evalFunc) { if (typeof line !== 'undefined') { var obj = {}; if(typeof line === 'string'){ - obj.line = line.trim(); - } + console.log('in time accumulator as string '+line); + } + else { + obj.line=line; + console.log('in time accumulator as number '+line); + } obj.date = new Date(); lineArr.push(obj); } @@ -55,7 +59,7 @@ module.exports = function(time, evalFunc) { break; } } - //console.log(dataArr); + console.log('data arrayyyyyyy '+dataArr); return this.evalFunc(dataArr); } } diff --git a/models/namespaceSchema.js b/models/namespaceSchema.js index cb42a9d..51672df 100644 --- a/models/namespaceSchema.js +++ b/models/namespaceSchema.js @@ -35,6 +35,21 @@ namespaceSchema.statics.findNamespace=function(name,cb){ }); }; + namespaceSchema.statics.findNamespaceName=function(name,cb){ + this.findOne( + {name : name}) + .exec(function(err,namespace){ + if(!err) + { + cb(null,namespace); + } + else + { + cb(err,null); + } + }); + }; + // namespaceSchema.post('save',function (namespace) { // // console.log('nid' +namespace._id + '||' +namespace.measures); // getMeasure(namespace.measures); diff --git a/npm-debug.log.a1d4e2a4f569f81c5ad4fa417425f8f6 b/npm-debug.log.a1d4e2a4f569f81c5ad4fa417425f8f6 new file mode 100644 index 0000000..af79148 --- /dev/null +++ b/npm-debug.log.a1d4e2a4f569f81c5ad4fa417425f8f6 @@ -0,0 +1,36 @@ +0 info it worked if it ends with ok +1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ] +2 info using npm@2.11.3 +3 info using node@v0.12.7 +4 verbose node symlink /usr/bin/node +5 verbose run-script [ 'prestart', 'start', 'poststart' ] +6 info prestart LogAggregatorExpress@0.0.0 +7 info start LogAggregatorExpress@0.0.0 +8 verbose unsafe-perm in lifecycle true +9 info LogAggregatorExpress@0.0.0 Failed to exec start script +10 verbose stack Error: LogAggregatorExpress@0.0.0 start: `node ./bin/www` +10 verbose stack Exit status 1 +10 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:213:16) +10 verbose stack at EventEmitter.emit (events.js:110:17) +10 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:24:14) +10 verbose stack at ChildProcess.emit (events.js:110:17) +10 verbose stack at maybeClose (child_process.js:1015:16) +10 verbose stack at Process.ChildProcess._handle.onexit (child_process.js:1087:5) +11 verbose pkgid LogAggregatorExpress@0.0.0 +12 verbose cwd /vagrant +13 error Linux 3.13.0-65-generic +14 error argv "/usr/bin/node" "/usr/bin/npm" "start" +15 error node v0.12.7 +16 error npm v2.11.3 +17 error code ELIFECYCLE +18 error LogAggregatorExpress@0.0.0 start: `node ./bin/www` +18 error Exit status 1 +19 error Failed at the LogAggregatorExpress@0.0.0 start script 'node ./bin/www'. +19 error This is most likely a problem with the LogAggregatorExpress package, +19 error not with npm itself. +19 error Tell the author that this fails on your system: +19 error node ./bin/www +19 error You can get their info via: +19 error npm owner ls LogAggregatorExpress +19 error There is likely additional logging output above. +20 verbose exit [ 1, true ] diff --git a/public/controllers/gitLog/controllers/indexController.js b/public/controllers/gitLog/controllers/indexController.js index daf2081..71b7dd0 100644 --- a/public/controllers/gitLog/controllers/indexController.js +++ b/public/controllers/gitLog/controllers/indexController.js @@ -591,12 +591,10 @@ app.controller('myController', function($scope, $http) { } $scope.groupedby = " groupedby " + column_details; } -<<<<<<< HEAD +// HEAD else{ $scope.groupedby = ""; } -======= ->>>>>>> d44739083ddbc064be8db6dc69eaeb8b51da203b if(obj.filters !== undefined && obj.filters.length !== 0){ @@ -610,7 +608,6 @@ app.controller('myController', function($scope, $http) { console.log("filter_details",filter_details); } -<<<<<<< HEAD $scope.filteredby = "and filtered by " + filter_details; } else{ @@ -631,14 +628,6 @@ app.controller('myController', function($scope, $http) { -======= - $scope.filteredby = " filteredBy " + filter_details; - } - - //column_details = "&" + column_details; - $scope.description_data= "This graph in plotted between " + obj["row"]["displayName"] + " and " + obj["measure"]["primary"]["displayName"]; ->>>>>>> d44739083ddbc064be8db6dc69eaeb8b51da203b - console.log("description_data",$scope.description_data); console.log("we are in getgit data function"); diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 34e9445..f33d1d3 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -18,7 +18,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct var data = '{"group": {"operator": "OR","rules": []}}'; $scope.flag=false; - $scope.aggfn = ["average", "mean", "max","standard deviation"]; + $scope.aggfn = ["average", "count", "max","min","sum"]; $scope.accumfn = ["time", "count"]; $scope.operators = [">", "<", "==",">=","=<"]; //$scope.operators = [">", "<", "==",">=","=<"]; diff --git a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js index dd2e87c..4ab28ed 100644 --- a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js +++ b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js @@ -9,11 +9,11 @@ var app = angular.module('logAggregator'); app.controller('rtcontroller',function($scope){ - // app.controller('myController',function($scope){ + // app.controller('myController',function($scope){8 $scope.key = []; $scope.val = []; - var ws = new WebSocket("ws://localhost:9000"); + var ws = new WebSocket("ws://172.23.238.188:9000"); var isFirstMessage = true; ws.onmessage = function(evt){ @@ -23,19 +23,12 @@ var app = angular.module('logAggregator'); // var data = received_msg[2]; var data=received_msg; if(isFirstMessage){ - for(var key in data){ $scope.key.push(key); } - isFirstMessage = false ; - } // if(isFirstMessage) end - - $scope.val.push(data); - + $scope.val.splice(0,0,data); }) ; //$scope.apply end - } ; //ws.onmessage end - }); //app.controller end diff --git a/public/directives/javascripts/fileUpload/onReadFile.js b/public/directives/javascripts/fileUpload/onReadFile.js new file mode 100644 index 0000000..92a24f9 --- /dev/null +++ b/public/directives/javascripts/fileUpload/onReadFile.js @@ -0,0 +1,21 @@ +angular.module('logAggregator').directive('onReadFile', function ($parse) { + return { + restrict: 'A', + scope: false, + link: function(scope, element, attrs) { + var fn = $parse(attrs.onReadFile); + + element.on('change', function(onChangeEvent) { + var reader = new FileReader(); + + reader.onload = function(onLoadEvent) { + scope.$apply(function() { + fn(scope, {$fileContent:onLoadEvent.target.result}); + }); + }; + + reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]); + }); + } + }; +}); diff --git a/public/stylesheets/simple-sidebar.css b/public/stylesheets/simple-sidebar.css index 4d4d9f0..56b6029 100644 --- a/public/stylesheets/simple-sidebar.css +++ b/public/stylesheets/simple-sidebar.css @@ -96,7 +96,7 @@ } #sidebar-wrapper{ - margin-top: 38px; + margin-top: 2px; } .sidebar-brand { diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 70d2b3d..0a4b5c0 100755 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -125,14 +125,14 @@ This code is written by Prateek Reddy Yammanuru, Shiva Manognya Kandikuppa, Uday } .wrapper{ - margin-top:60px; + margin-top:40px; margin-left:20px; } .dashboardWizardRow{ margin-top:120px; } .liveQueryWizardRow{ - margin-top:120px; + margin-top:100px; } .buttom_css{ height:50px; diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index afff54f..031b068 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -89,7 +89,7 @@ - + diff --git a/routes/defineData/dimensions.js b/routes/defineData/dimensions.js index f25e5fc..5ed95dc 100644 --- a/routes/defineData/dimensions.js +++ b/routes/defineData/dimensions.js @@ -16,6 +16,7 @@ dimensionRouter.post('/addDimension', function(req, res) { }); namespace.save(function(err, namespace) { console.log('namespace saved:', namespace); + // res.send(200).send(); }); } }); diff --git a/routes/defineData/logdata.js b/routes/defineData/logdata.js index 1d7f040..741ebbb 100644 --- a/routes/defineData/logdata.js +++ b/routes/defineData/logdata.js @@ -28,7 +28,7 @@ router.post('/', function(req, res) { }); router.get('/namespaceList', function(req, res) { - // + // // Namespace.remove({},function(){ // console.log("deleted"); // }); diff --git a/routes/defineData/measures.js b/routes/defineData/measures.js index 5b4ddde..388359a 100644 --- a/routes/defineData/measures.js +++ b/routes/defineData/measures.js @@ -24,6 +24,7 @@ router.post('/addMeasure', function(req, res) { }); namespace.save(function(err, namespace) { console.log('namespace saved:', namespace); + // res.send(200).send(); }); } }); diff --git a/views/footer_includes.ejs b/views/footer_includes.ejs index 5698d45..53e02e7 100755 --- a/views/footer_includes.ejs +++ b/views/footer_includes.ejs @@ -85,6 +85,9 @@ This code is written by Ashish Gupta, Tarun Mohandas, Suriya Prakash, Srinivasa + + +
    {{dat}}{{selectedRow[dat]}}{{dat}}{{selectedRow[dat]}} @@ -120,8 +148,8 @@

    -
    -
    +
    +

    Dimensions | Measures @@ -135,49 +163,59 @@

    @@ -191,10 +229,12 @@

    Dimensions

    -
    +
      -
    • {{dim}}
    • +
    • {{dim}} + +
    @@ -206,10 +246,12 @@

    Measures

    -
    +
      -
    • {{m}}
    • +
    • {{m}} + +
    diff --git a/public/views/realTimeLogs/defineData/defineData1.html b/public/views/realTimeLogs/defineData/defineData1.html deleted file mode 100644 index 9c78267..0000000 --- a/public/views/realTimeLogs/defineData/defineData1.html +++ /dev/null @@ -1,73 +0,0 @@ -
    - inside define data -
    - - - - -
    - progress - - - - - - - -
    - -
    - -
    -
    - - - -
    - progress - - - - - - - - - - - - - - - - - - - - - - - - -
    AGENT CODE METHOD PATH REFERER REMOTE SIZE TIME
    {{ obj.agent | agentFilter }} {{ obj.code}} {{ obj.method}} {{ obj.path}} {{ obj.referer}} {{ obj.remote}} {{ obj.size | sizeFilter }} {{ obj.time | date : 'd-MMMM-yyyy HH:mm:ss'}}
    - - - -
    - - - -
    - -
    diff --git a/public/views/realTimeLogs/defineData/defineData2.html b/public/views/realTimeLogs/defineData/defineData2.html deleted file mode 100644 index cd91692..0000000 --- a/public/views/realTimeLogs/defineData/defineData2.html +++ /dev/null @@ -1,191 +0,0 @@ -
    -
    -
    -
    -
    -
    -
    -

    Namespace -

    -
    -
    - - - -
    -
    - -
    -
    - - - -
    - - - - - - - - - - - -
    {{header}}
    {{row[dat]}}
    -
    -
    -
    -
    -
    -
    -
    -

    - Select Entity -

    -
    -
    - - - - - - - - -
    {{dat}}{{selectedRow[dat]}} - - -
    -
    -
    -
    -
    -
    -
    -

    - Dimensions | Measures -

    -
    -
    - -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -

    - Dimensions -

    -
    -
    -
    -
      -
    • {{dim}}
    • -
    -
    -
    -
    - -
    -
    -

    - Measures -

    -
    -
    -
    -
      -
    • {{m}}
    • -
    -
    -
    -
    -
    -
    -
    -
    diff --git a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html index 88762f6..8e77ccc 100644 --- a/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html +++ b/public/views/realTimeLogs/queryBuilder/liveQueryWizard.html @@ -14,7 +14,7 @@
  • - + NameSpace
  • diff --git a/routes/defineData/dimensions.js b/routes/defineData/dimensions.js index 7c9bb11..f25e5fc 100644 --- a/routes/defineData/dimensions.js +++ b/routes/defineData/dimensions.js @@ -3,97 +3,69 @@ var dimensionRouter = express.Router(); var mongoose = require('mongoose'); var Namespace = require('../../models/dbConfig').namespaceModel; -// var dimList = [{ -// "dispName": "Path", -// "fieldName": "request" -// }, { -// "dispName": "User", -// "fieldName": "username" -// }, { -// "dispName": "Browser", -// "fieldName": "user_agent" -// }, { -// "dispName": "Timestamp", -// "fieldName": "datetime" -// }]; -// -// dimensionRouter.get('/', function(req, res) { -// res.send(dimList); -// }); -/* GET Dimensions */ -dimensionRouter.get('/', function(req, res) { - if (req.session.oid !== null) { - Namespace.findNamespace(req.session.oid, function(err, namespace) { - if (namespace != null) { - console.log("routes",namespace.dimensions); - res.send(namespace.dimensions); - } - }); - } -}); /* POST Dimension */ dimensionRouter.post('/addDimension', function(req, res) { - console.log("received ********************* " +req.body) ; - if (req.session.oid !== null) { - Namespace.findNamespace(req.session.oid, function(err, namespace) { - if (namespace != null) { - namespace.dimensions.push({ - displayName: req.body.data.displayName, - fieldName: req.body.data.fieldname - }); - - namespace.save(function(err, namespace) { - console.log('namespace saved:', namespace); - }); - } - }); - } + Namespace.findNamespaceName(req.body.data.namespaceName, function(err, namespace) { + if (namespace != null) { + namespace.dimensions.push({ + displayName: req.body.data.displayName, + fieldName: req.body.data.fieldname + }); + namespace.save(function(err, namespace) { + console.log('namespace saved:', namespace); + }); + } + }); + //} res.send(req.body) - // res.redirect('/#/defineData'); }); /*delete*/ -dimensionRouter.post('/delete/:id', function(req, res) { - console.log("deleted value is", req.params.id); - if (req.session.oid !== null) { - Namespace.findByIdAndUpdate(req.session.oid, { +dimensionRouter.post('/delete', function(req, res) { + console.log("deleted value is", req.body.data.dimName); + console.log(req.body.data.namespaceName); + var namespaceID; + Namespace.findNamespaceName(req.body.data.namespaceName, function(err, namespace) { + console.log(namespace); + namespaceID=namespace._id; + console.log(namespaceID); + Namespace.findByIdAndUpdate(namespaceID, { $pull: { dimensions: { - _id: req.params.id + displayName: req.body.data.dimName } } }, function(err) { - console.log(err); + if (err) { + return res.send(500).json(err); +} +console.log(err + "error"); +return res.send(200).send(); }); - } - res.redirect('/#/defineData'); -}); -/*update*/ -dimensionRouter.post('/update/:id', function(req, res) { - //console.log("updated value is", req.params.id); - if (req.session.oid !== null) { + }); + // console.log(namespaceID); + // Namespace.findByIdAndUpdate(namespaceID, { + // $pull: { + // dimensions: { + // displayName: req.body.data.dimName + // } + // } + // }, function(err) { + // console.log(err); + // }); - Namespace.update({ - 'dimensions._id': req.params.id - }, { - '$set': { - 'dimensions.$.displayName': 'updated item2' - } - }, function(err, dimension) { - if (!err) { - console.log('updated dimension' + dimension); - } else { - console.log('error in update'); - } - }); - } - - res.redirect('/'); + // Namespace.findAndModify(req.body.data.namespaceName, { + // $pull: { + // dimensions: { + // displayName: req.body.data.dimName + // } + // } + // }, function(err) { + // console.log(err); + // }); }); - - module.exports = dimensionRouter; diff --git a/routes/defineData/logdata.js b/routes/defineData/logdata.js index c36a8ae..1d7f040 100644 --- a/routes/defineData/logdata.js +++ b/routes/defineData/logdata.js @@ -1,159 +1,40 @@ var express = require('express'); var router = express.Router(); -// var json = [{ -// "host": "216.67.1.92", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/Aug/2006:07:01:53 -0700]", -// "request": "GET /index1.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Mozilla/5.0", -// "cookies": "-" -// }, { -// "host": "216.67.1.93", -// "rfc931": "-", -// "username": "-", -// "datetime": "[14/Sep/2006:07:01:53 -0700]", -// "request": "GET /index.html HTTP/1.0", -// "statuscode": "404", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Mozilla/5.0", -// "cookies": "-" -// }, { -// "host": "216.67.1.95", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/Sep/2006:07:01:53 -0700]", -// "request": "GET /index2.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "432", -// "referrer": "http://www.google.com", -// "user_agent": "Mozilla/5.0", -// "cookies": "-" -// }, { -// "host": "218.67.1.97", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/May/2006:07:01:53 -0700]", -// "request": "GET /index3.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Mozilla/5.0", -// "cookies": "-" -// }, { -// "host": "217.67.1.91", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/Sep/2006:07:01:53 -0700]", -// "request": "GET /index.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Mozilla/5.0", -// "cookies": "-" -// }, { -// "host": "216.67.2.91", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/Sep/2006:07:01:53 -0700]", -// "request": "GET /index.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Google Chrome", -// "cookies": "-" -// },{ -// "host": "216.67.2.95", -// "rfc931": "-", -// "username": "-", -// "datetime": "[13/Sep/2006:07:01:53 -0700]", -// "request": "GET /index.html HTTP/1.0", -// "statuscode": "200", -// "bytes": "431", -// "referrer": "http://www.google.com", -// "user_agent": "Google Chrome", -// "cookies": "-" -// } -// -// ]; -// -// router.get('/', function(req, res){ -// -// res.send(json); -// }); var formidable = require('formidable'); var mongoose = require('mongoose'); var Namespace = require('../../models/dbConfig').namespaceModel; var fs = require('fs'); -//get the list of namespace -router.get('/namespaceList', function(req, res) { -// Namespace.remove({}, function(){ -// res.send("deleted"); -// }); -// Namespace.remove(); - Namespace.find(function(err,namespace){ - res.send(namespace); - }); -}); - -/* GET log data */ -router.get('/', function(req, res) { - if (req.session.oid !== null) { - Namespace.findNamespace(req.session.oid, function(err, namespace) { - if (namespace != null) { - fs.readFile(namespace.filePath, 'utf8', function(err, data) { - if (err) { - return console.log(err); - } - var nameObj ={ - namespaceName:namespace.name, - filedata:JSON.parse(data) - }; - res.send(nameObj); - }); - } - }); - } -}); /* POST Namespace*/ router.post('/', function(req, res) { - //creates a new incoming form. - var form = new formidable.IncomingForm(); - - // parse a file upload - form.parse(req, function(err, fields, files) { - var newPath; - fs.readFile(files.file.path, function(err, data) { - var filedata = data.toString(); - fs.writeFile("public/upload/" + files.file.name, filedata, function(err) { - if (err) return console.log(err); - console.log("file written"); - }); - }); - + console.log(req.body.data); Namespace.create({ - name: fields.namespace, - description: fields.desc, + name: req.body.data.name, + description: req.body.data.description, createdOn: Date.now(), - filePath: "public/upload/" + files.file.name, - source: fields.fileSource - + source: req.body.data.source }, function(err, namespace) { if (err) { console.log(err); } else { console.log("namespace created and saved", namespace); - req.session.oid = namespace._id; - res.redirect('/#/defineData'); + // req.session.oid = namespace._id; + // console.log('session',req.session.oid); + res.status(201).send(namespace); } }); }); + +router.get('/namespaceList', function(req, res) { + // + // Namespace.remove({},function(){ + // console.log("deleted"); + // }); + Namespace.find(function(err,namespace){ + res.send(namespace); + }); }); + module.exports = router; diff --git a/routes/defineData/measures.js b/routes/defineData/measures.js index c51fe2b..5b4ddde 100644 --- a/routes/defineData/measures.js +++ b/routes/defineData/measures.js @@ -2,38 +2,14 @@ var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var Namespace = require('../../models/dbConfig').namespaceModel; -// var measureList = [{ -// "dispName": "No of Hits" -// }, { -// "dispName": "Failed Requests" -// }, { -// "dispName": "Average Visitor Stay Length" -// }, { -// "dispName": "Average Bandwidth per Day" -// }] -// /* GET Measures */ -// measureRouter.get('/', function(req, res){ -// res.send(measureList); -// }); -/* GET Measures */ -router.get('/', function(req, res) { - if (req.session.oid !== null) { - Namespace.findNamespace(req.session.oid, function(err, namespace) { - if (namespace != null) { - res.send(namespace.measures); - } - }); - } -}); + /* POST Measures */ router.post('/addMeasure', function(req, res) { - if (req.session.oid !== null) { - Namespace.findNamespace(req.session.oid, function(err, namespace) { + Namespace.findNamespaceName(req.body.data.namespaceName, function(err, namespace) { if (namespace != null) { var fieldEvent; - // console.log("radiovalue",req.body.measure); - if (req.body.data.measure == "radioField") { + if (req.body.data.measure == "fieldMeasure") { fieldEvent = req.body.data.measureFieldSelector; fieldValue=""; } else { @@ -51,16 +27,34 @@ router.post('/addMeasure', function(req, res) { }); } }); - } + //} res.send(req.body) - //res.redirect('/#/defineData'); }); /* Delete Measure */ -router.post('/:id', function(req, res) { - console.log("deleted value is", req.params.id); - res.redirect('/'); +router.post('/delete', function(req, res) { + console.log("deleted value is", req.body.data.measName); + console.log(req.body.data.namespaceName); + var namespaceID; + Namespace.findNamespaceName(req.body.data.namespaceName, function(err, namespace) { + console.log(namespace); + namespaceID=namespace._id; + console.log(namespaceID); + Namespace.findByIdAndUpdate(namespaceID, { + $pull: { + measures: { + displayName: req.body.data.measName + } + } + }, function(err) { + if (err) { +return res.send(500).json(err); +} +console.log(err + "error"); +return res.send(200).send(); + }); + }); }); module.exports = router; From b5aa189b02887e15d5d94e188758c1629247d7f3 Mon Sep 17 00:00:00 2001 From: rahildar Date: Tue, 26 Apr 2016 18:04:59 +0530 Subject: [PATCH 20/21] minor changes --- components/RTdatamapper/RTdatamapper.js | 6 ++++-- .../rollingCount/accumulateOverCount.js | 2 +- components/rollingTime/time-accumulator.js | 12 +++++++---- models/namespaceSchema.js | 15 +++++++++++++ .../gitLog/controllers/indexController.js | 13 +----------- .../queryBuilder/queryBuilderController.js | 2 +- .../realTimeLogs/rtwizard/rtcontroller.js | 11 ++-------- .../javascripts/fileUpload/onReadFile.js | 21 +++++++++++++++++++ public/stylesheets/simple-sidebar.css | 2 +- public/stylesheets/style.css | 4 ++-- .../views/realTimeLogs/rtwizard/rtwizard.html | 2 +- routes/defineData/dimensions.js | 1 + routes/defineData/logdata.js | 2 +- routes/defineData/measures.js | 1 + views/footer_includes.ejs | 3 +++ 15 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 public/directives/javascripts/fileUpload/onReadFile.js diff --git a/components/RTdatamapper/RTdatamapper.js b/components/RTdatamapper/RTdatamapper.js index d5f5137..0f810f7 100644 --- a/components/RTdatamapper/RTdatamapper.js +++ b/components/RTdatamapper/RTdatamapper.js @@ -26,6 +26,7 @@ module.exports = function(namespaceId,Namespace) { measures = namespace.measures; source = namespace.source; //console.log(measures); + console.log("called --------------------------------------------------------------------------------------------------------------"); } }); }; @@ -37,19 +38,20 @@ WebSocket1.on('connect', function(connection) { var sourceData = JSON.parse(msg.utf8Data)[0]; if (source === sourceData) { streamData = JSON.parse(msg.utf8Data)[2]; + console.log(streamData); // var keys = Object.keys(streamData); //array of keys in the streaming data var condition; var sifter; for (var k = 0; k < measures.length; k++) { - var displayValue=measures[k].eventField; + var displayValue=measures[k].displayName; // streamdata, keys if(measures[k].measureType === "fieldMeasure") { condition = {}; condition[measures[k].eventField] = {$exists: true}; sifter = sift(condition); - streamData[displayValue] = sifter(streamData) ? 1 : 0 + streamData[displayValue] = sifter(streamData) ? streamData[measures[k].eventField] : 0 } else { condition = {}; condition[measures[k].eventField] = measures[k].eventValue; diff --git a/components/rollingCount/accumulateOverCount.js b/components/rollingCount/accumulateOverCount.js index 54962af..1b4f98c 100644 --- a/components/rollingCount/accumulateOverCount.js +++ b/components/rollingCount/accumulateOverCount.js @@ -16,7 +16,7 @@ module.exports=function AccumulateOverCount(count, evalFunc) { // console.log(arr); counter++; - return undefined; + return null; } else { var k = counter%count; diff --git a/components/rollingTime/time-accumulator.js b/components/rollingTime/time-accumulator.js index ed3be3d..059d1df 100644 --- a/components/rollingTime/time-accumulator.js +++ b/components/rollingTime/time-accumulator.js @@ -7,7 +7,7 @@ module.exports = function(time, evalFunc) { this.evaluate = function(line) { //creating array if it doesn't exist - console.log('################## '+line); + if (typeof lineArr == "undefined" || !(lineArr instanceof Array)) { lineArr = []; } @@ -15,8 +15,12 @@ module.exports = function(time, evalFunc) { if (typeof line !== 'undefined') { var obj = {}; if(typeof line === 'string'){ - obj.line = line.trim(); - } + console.log('in time accumulator as string '+line); + } + else { + obj.line=line; + console.log('in time accumulator as number '+line); + } obj.date = new Date(); lineArr.push(obj); } @@ -55,7 +59,7 @@ module.exports = function(time, evalFunc) { break; } } - //console.log(dataArr); + console.log('data arrayyyyyyy '+dataArr); return this.evalFunc(dataArr); } } diff --git a/models/namespaceSchema.js b/models/namespaceSchema.js index cb42a9d..51672df 100644 --- a/models/namespaceSchema.js +++ b/models/namespaceSchema.js @@ -35,6 +35,21 @@ namespaceSchema.statics.findNamespace=function(name,cb){ }); }; + namespaceSchema.statics.findNamespaceName=function(name,cb){ + this.findOne( + {name : name}) + .exec(function(err,namespace){ + if(!err) + { + cb(null,namespace); + } + else + { + cb(err,null); + } + }); + }; + // namespaceSchema.post('save',function (namespace) { // // console.log('nid' +namespace._id + '||' +namespace.measures); // getMeasure(namespace.measures); diff --git a/public/controllers/gitLog/controllers/indexController.js b/public/controllers/gitLog/controllers/indexController.js index daf2081..71b7dd0 100644 --- a/public/controllers/gitLog/controllers/indexController.js +++ b/public/controllers/gitLog/controllers/indexController.js @@ -591,12 +591,10 @@ app.controller('myController', function($scope, $http) { } $scope.groupedby = " groupedby " + column_details; } -<<<<<<< HEAD +// HEAD else{ $scope.groupedby = ""; } -======= ->>>>>>> d44739083ddbc064be8db6dc69eaeb8b51da203b if(obj.filters !== undefined && obj.filters.length !== 0){ @@ -610,7 +608,6 @@ app.controller('myController', function($scope, $http) { console.log("filter_details",filter_details); } -<<<<<<< HEAD $scope.filteredby = "and filtered by " + filter_details; } else{ @@ -631,14 +628,6 @@ app.controller('myController', function($scope, $http) { -======= - $scope.filteredby = " filteredBy " + filter_details; - } - - //column_details = "&" + column_details; - $scope.description_data= "This graph in plotted between " + obj["row"]["displayName"] + " and " + obj["measure"]["primary"]["displayName"]; ->>>>>>> d44739083ddbc064be8db6dc69eaeb8b51da203b - console.log("description_data",$scope.description_data); console.log("we are in getgit data function"); diff --git a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js index 34e9445..f33d1d3 100644 --- a/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js +++ b/public/controllers/realTimeLogs/queryBuilder/queryBuilderController.js @@ -18,7 +18,7 @@ app.controller('liveQueryController', ['$scope','$http', '$compile','$sce',funct var data = '{"group": {"operator": "OR","rules": []}}'; $scope.flag=false; - $scope.aggfn = ["average", "mean", "max","standard deviation"]; + $scope.aggfn = ["average", "count", "max","min","sum"]; $scope.accumfn = ["time", "count"]; $scope.operators = [">", "<", "==",">=","=<"]; //$scope.operators = [">", "<", "==",">=","=<"]; diff --git a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js index dd2e87c..b3173a3 100644 --- a/public/controllers/realTimeLogs/rtwizard/rtcontroller.js +++ b/public/controllers/realTimeLogs/rtwizard/rtcontroller.js @@ -13,7 +13,7 @@ var app = angular.module('logAggregator'); $scope.key = []; $scope.val = []; - var ws = new WebSocket("ws://localhost:9000"); + var ws = new WebSocket("ws://172.23.238.150:9000"); var isFirstMessage = true; ws.onmessage = function(evt){ @@ -23,19 +23,12 @@ var app = angular.module('logAggregator'); // var data = received_msg[2]; var data=received_msg; if(isFirstMessage){ - for(var key in data){ $scope.key.push(key); } - isFirstMessage = false ; - } // if(isFirstMessage) end - - $scope.val.push(data); - + $scope.val.splice(0,0,data); }) ; //$scope.apply end - } ; //ws.onmessage end - }); //app.controller end diff --git a/public/directives/javascripts/fileUpload/onReadFile.js b/public/directives/javascripts/fileUpload/onReadFile.js new file mode 100644 index 0000000..92a24f9 --- /dev/null +++ b/public/directives/javascripts/fileUpload/onReadFile.js @@ -0,0 +1,21 @@ +angular.module('logAggregator').directive('onReadFile', function ($parse) { + return { + restrict: 'A', + scope: false, + link: function(scope, element, attrs) { + var fn = $parse(attrs.onReadFile); + + element.on('change', function(onChangeEvent) { + var reader = new FileReader(); + + reader.onload = function(onLoadEvent) { + scope.$apply(function() { + fn(scope, {$fileContent:onLoadEvent.target.result}); + }); + }; + + reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]); + }); + } + }; +}); diff --git a/public/stylesheets/simple-sidebar.css b/public/stylesheets/simple-sidebar.css index 4d4d9f0..56b6029 100644 --- a/public/stylesheets/simple-sidebar.css +++ b/public/stylesheets/simple-sidebar.css @@ -96,7 +96,7 @@ } #sidebar-wrapper{ - margin-top: 38px; + margin-top: 2px; } .sidebar-brand { diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 70d2b3d..0a4b5c0 100755 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -125,14 +125,14 @@ This code is written by Prateek Reddy Yammanuru, Shiva Manognya Kandikuppa, Uday } .wrapper{ - margin-top:60px; + margin-top:40px; margin-left:20px; } .dashboardWizardRow{ margin-top:120px; } .liveQueryWizardRow{ - margin-top:120px; + margin-top:100px; } .buttom_css{ height:50px; diff --git a/public/views/realTimeLogs/rtwizard/rtwizard.html b/public/views/realTimeLogs/rtwizard/rtwizard.html index afff54f..031b068 100644 --- a/public/views/realTimeLogs/rtwizard/rtwizard.html +++ b/public/views/realTimeLogs/rtwizard/rtwizard.html @@ -89,7 +89,7 @@

    {{row[header]}}
    {{row[header]}}