Author: taylor Date: Fri Apr 17 21:09:48 2015 New Revision: 1674403 URL: http://svn.apache.org/r1674403 Log: JS2-1320: hook in live stats to memory portlet.
Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/StatisticsRestServices.js portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/chartControllers.js Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppChartPortlet.java portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppPortletFilter.java portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/app.js portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-caches.html portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-memory.html portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-pages.html portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-users.html portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/app-memory.js portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/data.js Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppChartPortlet.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppChartPortlet.java?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppChartPortlet.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppChartPortlet.java Fri Apr 17 21:09:48 2015 @@ -12,16 +12,26 @@ public class JetAppChartPortlet extends protected static String[][] DEV_SCRIPTS = { // { "/jetapp/charts/scripts/jquery-2.1.3.min.js", "chart_jquery"}, + { "/wro/J2_ADMIN_EXTERNAL_JS.js", J2_ADMIN_EXTERNAL_SCRIPT_ID}, + { "/jetapp/scripts/TextMessages.js", "j2admin_text"}, + { "/jetapp/scripts/ServerService.js", "j2admin_server"}, + { "/jetapp/scripts/RestApiService.js", "j2admin_services"}, + { "/jetapp/scripts/PortletService.js", "j2admin_portlet"}, + { "/jetapp/scripts/StatisticsRestServices.js", "j2admin_rest_stats"}, + { "/jetapp/app.js", "j2admin_app"}, + { "/jetapp/scripts/controllers.js", "j2admin_controllers"}, + { "/jetapp/scripts/chartControllers.js", "j2admin_chart_controllers"}, + { "/jetapp/scripts/directives.js", "j2admin_directives"}, + { "/jetapp/scripts/filters.js", "j2admin_filters"}, { "/jetapp/charts/scripts/d3.min.js", "chart_d3"}, { "/jetapp/charts/scripts/nv.d3.min.js", "chart_nvd3js"}, { "/jetapp/charts/scripts/data.js", "chart_data"}, - { "/jetapp/charts/scripts/app-memory.js", "chart_memory"}, +// { "/jetapp/charts/scripts/app-memory.js", "chart_memory"}, { "/jetapp/charts/scripts/app-caches.js", "chart_caches"}, { "/jetapp/charts/scripts/app-pages.js", "chart_pages"}, { "/jetapp/charts/scripts/app-users.js", "chart_users"} }; - @Override protected void doHeaders(RenderRequest request, RenderResponse response) { //super.doHeaders(request, response); Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppPortletFilter.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppPortletFilter.java?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppPortletFilter.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/jetapp/JetAppPortletFilter.java Fri Apr 17 21:09:48 2015 @@ -36,6 +36,7 @@ public class JetAppPortletFilter impleme protected final static String JET_DASHBOARD_ANGULAR_FLAG = "jet.dashboard.angular.flag"; + protected FilterConfig filterConfig = null; public void doFilter(RenderRequest request, RenderResponse response, FilterChain filterChain) throws IOException, PortletException { @@ -47,15 +48,22 @@ public class JetAppPortletFilter impleme } public void init(FilterConfig filterConfig) throws PortletException { + this.filterConfig = filterConfig; } + protected final String ANGULAR = "<script>\n angular.element(document).ready(function() {\n" + + " angular.bootstrap(document, ['j2admin']);\n" + + " });\n</script>\n"; + protected void includeAngular(RenderRequest request, RenderResponse response) throws PortletException, IOException { +// if (filterConfig != null) { +// String flag = filterConfig.getPortletContext().getInitParameter("jetapp"); +// System.out.println("Flag = " + flag); +// } String useAngular = request.getPreferences().getValue("jetapp", null); if (useAngular != null && useAngular.equalsIgnoreCase("true")) { if (!alreadyContributedAngular(request)) { - response.getWriter().println("<script>\n angular.element(document).ready(function() {\n" + - " angular.bootstrap(document, ['j2admin']);\n" + - " });\n</script>\n"); + response.getPortletOutputStream().write(ANGULAR.getBytes()); } } } Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml Fri Apr 17 21:09:48 2015 @@ -2725,6 +2725,10 @@ <portlet-name>ProfilerAdmin</portlet-name> <display-name>Profiler Maintenance</display-name> <portlet-class>org.apache.jetspeed.jetapp.ProfilerAdminPortlet</portlet-class> + <init-param> + <name>jetapp</name> + <value>true</value> + </init-param> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> @@ -2778,6 +2782,10 @@ <name>View</name> <value>/jetapp/charts/chart-memory.html</value> </preference> + <preference> + <name>jetapp</name> + <value>true</value> + </preference> </portlet-preferences> </portlet> @@ -2803,6 +2811,10 @@ <name>View</name> <value>/jetapp/charts/chart-pages.html</value> </preference> + <preference> + <name>jetapp</name> + <value>true</value> + </preference> </portlet-preferences> </portlet> @@ -2828,6 +2840,10 @@ <name>View</name> <value>/jetapp/charts/chart-users.html</value> </preference> + <preference> + <name>jetapp</name> + <value>true</value> + </preference> </portlet-preferences> </portlet> @@ -2853,6 +2869,10 @@ <name>View</name> <value>/jetapp/charts/chart-caches.html</value> </preference> + <preference> + <name>jetapp</name> + <value>true</value> + </preference> </portlet-preferences> </portlet> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/app.js URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/app.js?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/app.js (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/app.js Fri Apr 17 21:09:48 2015 @@ -9,12 +9,14 @@ angular.module('j2admin', [ 'j2admin.filters', // 'j2admin.services', 'j2admin.directives', - 'j2admin.controllers' + 'j2admin.controllers', + 'j2admin.chartControllers' ]) .factory('ServerService', ['$cookies', ServerService]) .factory('TextMessages', [TextMessages]) .factory('DataService', ['$http', '$q', 'ServerService', RestService]) .factory('PortletService', ['$http', '$q', 'ServerService', PortletService]) + .factory('StatisticsService', ['$http', '$q', 'ServerService', StatisticsRestService]) .config(['$routeProvider', function ($routeProvider) { $routeProvider.when('/monitor', {templateUrl: 'views/monitor.html'}); $routeProvider.otherwise({redirectTo: '/monitor'}); Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-caches.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-caches.html?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-caches.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-caches.html Fri Apr 17 21:09:48 2015 @@ -1 +1 @@ - <svg class="caches-container"></svg> + <svg class="caches-container" height="225"></svg> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-memory.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-memory.html?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-memory.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-memory.html Fri Apr 17 21:09:48 2015 @@ -1,3 +1,15 @@ - - <svg class="memory-container"></svg> - +<div ng-controller="MemoryController" ng-init="init()"> + <!-- <div class="legend"> + <select id="root-list" ng-options="root.name for root in roots track by root.id" ng-model="currentRoot_" ng-disabled="!roots.length"> + </select> + <br /><br /> + <a href="#" id="add-cg-root" class="add-root pull-right" ng-click="addRoot('CUSTOM_GROUP')">CG+</a> + <br /><br /><br /> + <a href="#" id="add-hg-root" class="add-root pull-right" ng-click="addRoot('HOSTGROUP')">HG+</a> + <br /><br /><br /> + <a href="#" id="add-sg-root" class="add-root pull-right" ng-click="addRoot('SERVICE_GROUP')">SG+</a> + </div> + + <div id="canvas-container"></div> --> + <svg class="memory-container" height="225"></svg> +</div> \ No newline at end of file Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-pages.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-pages.html?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-pages.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-pages.html Fri Apr 17 21:09:48 2015 @@ -1,3 +1,3 @@ - <svg class="pages-container"></svg> + <svg class="pages-container" height="225"></svg> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-users.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-users.html?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-users.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/chart-users.html Fri Apr 17 21:09:48 2015 @@ -1 +1 @@ - <svg class="users-container"></svg> + <svg class="users-container" height="225"></svg> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/app-memory.js URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/app-memory.js?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/app-memory.js (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/app-memory.js Fri Apr 17 21:09:48 2015 @@ -1,4 +1,4 @@ -function bytesToSize(bytes) +/* function bytesToSize(bytes) { var precision = 1, kilobyte = 1024, @@ -6,7 +6,7 @@ function bytesToSize(bytes) gigabyte = megabyte * 1024, terabyte = gigabyte * 1024; - var text = "" + var text = ""; if ((bytes >= 0) && (bytes < kilobyte)) { @@ -41,7 +41,7 @@ $(function() { var datum = []; datum.push({label: "Free", value: memoryUsage.memory.free}); - datum.push({label: "Used", value: (memoryUsage.memory.total - memoryUsage.memory.free)}); + datum.push({label: "Used", value: memoryUsage.memory.total - memoryUsage.memory.free}); nv.addGraph(function() { var chart = nv.models.pieChart() @@ -73,4 +73,4 @@ $(function() { return chart; }); -}); \ No newline at end of file +}); */ \ No newline at end of file Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/data.js URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/data.js?rev=1674403&r1=1674402&r2=1674403&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/data.js (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/charts/scripts/data.js Fri Apr 17 21:09:48 2015 @@ -1,7 +1,7 @@ -var memoryUsage = {"memory": { - "total" : 257434565, - "free" : 200333444 -}}; +//var memoryUsage = {"memory": [ +// {"total" : 257434565}, +// {"free" : 200333444} +//]}; var pageHits = {"pages": [ {"/default-page": 300}, Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/StatisticsRestServices.js URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/StatisticsRestServices.js?rev=1674403&view=auto ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/StatisticsRestServices.js (added) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/StatisticsRestServices.js Fri Apr 17 21:09:48 2015 @@ -0,0 +1,48 @@ +/** + * Created by swooten on 4/2/15. + */ +'use strict'; + +/* Statistics Services */ + +var StatisticsRestService = function ($http, $q, ServerService) { + + //Needs to be unique like service? + var service = { + + statistics: [], + + /** + * Get JVM runtime info via query. The query is specified as an object with the + * following fields; + * + * 'id' : matches profile id + * 'title' : contains within title + * 'concreteClass' : contains within class name + * + */ + memoryUsage: function () { + var deferred = $q.defer(); + var self = this; + var url = ServerService.api('/statistics/runtime'); + var config = ServerService.apiConfig(); + config.params = { + "type": "json" + }; + $http.get(url, config) + .success(function success(data, status, headers, config) { + deferred.resolve(data, status); + }) + .error(function error(data, status) { + if (status == 404) { + deferred.resolve(data, status); + } + else { + deferred.reject(data, status); + } + }); + return deferred.promise; + } + } + return service; +} \ No newline at end of file Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/chartControllers.js URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/chartControllers.js?rev=1674403&view=auto ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/chartControllers.js (added) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/jetapp/scripts/chartControllers.js Fri Apr 17 21:09:48 2015 @@ -0,0 +1,122 @@ +/** + * Created by swooten on 4/6/15. + */ +'use strict'; + +function bytesToSize(bytes) +{ + var precision = 1, + kilobyte = 1024, + megabyte = kilobyte * 1024, + gigabyte = megabyte * 1024, + terabyte = gigabyte * 1024; + + var text = ""; + + if ((bytes >= 0) && (bytes < kilobyte)) + { + text = bytes + ' B'; + } + else if ((bytes >= kilobyte) && (bytes < megabyte)) + { + text = (bytes / kilobyte).toFixed(precision) + ' KB'; + } + else if ((bytes >= megabyte) && (bytes < gigabyte)) + { + text = (bytes / megabyte).toFixed(precision) + ' MB'; + } + else if ((bytes >= gigabyte) && (bytes < terabyte)) + { + text = (bytes / gigabyte).toFixed(precision) + ' GB'; + } + else if (bytes >= terabyte) + { + text = (bytes / terabyte).toFixed(precision) + ' TB'; + } + else + { + text = bytes + ' B'; + } + + return text; +} + +/* Controllers: */ +angular.module('j2admin.chartControllers', []) + .controller('MemoryController', function ($scope, $q, StatisticsService, PortletService) { + $scope.memoryUsage = []; + + // ---- init function + $scope.init = function () { + + /* $scope.readResourceURL = readResourceURL; + PortletService.lookupPreferences(readResourceURL).then( + function success(prefs, status) { + $scope.prefs = prefs; + //$scope.perPage = prefs.rowsPerPage; + // $scope.columnDefs[1].displayName = (!!~prefs.service.indexOf('cpu')) ? "CPU %" : "Memory %"; + $scope.getData(); + + if ($scope.initialized == false) { + //$interval(refresh, $scope.prefs.refreshSeconds * 1000); + } + + $scope.initialized = true; + }, + function error(msg, status) { + console.log(msg); + $scope.addFailureAlert(msg, status); + } + ); */ + + // -- retrieve runtime memory usage + StatisticsService.memoryUsage().then( + function success(memory, status) { + $scope.memoryUsage = memory; + var datum = []; + + datum.push({label: "Free", value: $scope.memoryUsage.memory.free}); + datum.push({label: "Used", value: $scope.memoryUsage.memory.total - $scope.memoryUsage.memory.free}); + + nv.addGraph(function() { + var chart = nv.models.pieChart() + .x(function(d) { return (d.label + ": " + bytesToSize(d.value) + " (" + (d.value / $scope.memoryUsage.memory.total * 100).toFixed(1) + "%)" ) }) //Specify the data accessors. + .y(function(d) { return d.value }) + .tooltips(false) + .donut(true) + .donutRatio(0.4) + .showLabels(true) + .donutLabelsOutside(true) + .showLegend(false) + .duration(500); + + d3.select(".memory-container") + .datum(datum) + .call(chart); + + nv.utils.windowResize(chart.update); + + var svg = d3.select("svg"); + var donut = svg.selectAll("g.nv-pie").filter( + function (d, i) { + return i == 1; + }); + + donut.select("text").text("new text"); + donut.append("text", "g") + .text("Total: " + bytesToSize($scope.memoryUsage.memory.total)) + .attr("class","css-label-class") + .attr("text-anchor", "middle"); + + return chart; + }); + + }, + function error(msg, status) { + console.log(msg); + $scope.addFailureAlert(msg, status); + } + ); + } + } +); --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org