Return-Path: X-Original-To: apmail-eagle-commits-archive@minotaur.apache.org Delivered-To: apmail-eagle-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AB8F8191AE for ; Mon, 14 Mar 2016 02:06:59 +0000 (UTC) Received: (qmail 95145 invoked by uid 500); 14 Mar 2016 02:06:59 -0000 Delivered-To: apmail-eagle-commits-archive@eagle.apache.org Received: (qmail 95113 invoked by uid 500); 14 Mar 2016 02:06:59 -0000 Mailing-List: contact commits-help@eagle.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@eagle.incubator.apache.org Delivered-To: mailing list commits@eagle.incubator.apache.org Received: (qmail 95101 invoked by uid 99); 14 Mar 2016 02:06:59 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Mar 2016 02:06:59 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 1CDE7C66FF for ; Mon, 14 Mar 2016 02:06:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.221 X-Spam-Level: X-Spam-Status: No, score=-3.221 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id NISAsLuf5kYu for ; Mon, 14 Mar 2016 02:06:57 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id AED625F572 for ; Mon, 14 Mar 2016 02:06:55 +0000 (UTC) Received: (qmail 95098 invoked by uid 99); 14 Mar 2016 02:06:54 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Mar 2016 02:06:54 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 83F2BDFBAD; Mon, 14 Mar 2016 02:06:54 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jilin@apache.org To: commits@eagle.incubator.apache.org Message-Id: <8b4a2ff57d98487bbc522bcac125b335@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: incubator-eagle git commit: EAGLE-195 policy metric display with interval of 5 min or customized interval Provide daily & hourly & Every 5 minutes interval for policy metric display Date: Mon, 14 Mar 2016 02:06:54 +0000 (UTC) Repository: incubator-eagle Updated Branches: refs/heads/master 124de31aa -> 91b195650 EAGLE-195 policy metric display with interval of 5 min or customized interval Provide daily & hourly & Every 5 minutes interval for policy metric display https://issues.apache.org/jira/browse/EAGLE-195 Author: @zombiej Reviewer: @haoch Closes #121 Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/91b19565 Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/91b19565 Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/91b19565 Branch: refs/heads/master Commit: 91b195650a6fc796aba5c91c85408925bdf0a61b Parents: 124de31 Author: jiljiang Authored: Mon Mar 14 10:06:46 2016 +0800 Committer: jiljiang Committed: Mon Mar 14 10:06:46 2016 +0800 ---------------------------------------------------------------------- .../src/main/webapp/app/public/css/main.css | 15 +- .../app/public/feature/common/controller.js | 67 ++++++-- .../feature/common/page/policyDetail.html | 164 +++++++++---------- .../src/main/webapp/app/public/js/app.js | 1 + .../webapp/app/public/js/components/nvd3.js | 56 ++++++- .../webapp/app/public/js/components/tabs.js | 24 ++- 6 files changed, 206 insertions(+), 121 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/91b19565/eagle-webservice/src/main/webapp/app/public/css/main.css ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/app/public/css/main.css b/eagle-webservice/src/main/webapp/app/public/css/main.css index 1af0c8b..b61ca8f 100644 --- a/eagle-webservice/src/main/webapp/app/public/css/main.css +++ b/eagle-webservice/src/main/webapp/app/public/css/main.css @@ -27,6 +27,10 @@ body.no-sidebar .content-wrapper { transition: none; } +body.no-sidebar .main-footer { + margin-left: 0; +} + /* Navigation */ .navbar-nav > .user-menu > .dropdown-menu > li.user-header .img-circle { display: inline-block; @@ -539,9 +543,6 @@ body .tab-content>.tab-pane.active { overflow-x: visible; overflow-y: visible; } -body .tab-content>.tab-pane.ng-animate { - transition: 0s; -} body .modal-body .nav-pills > li > a, body .box-body .nav-pills > li > a { @@ -563,12 +564,20 @@ body .modal-body .nav-stacked > li:last-child { } /* Navigation Tab */ +.nav-tabs-custom { + position: relative; +} + .nav-tabs-custom .box-tools { position: absolute; right: 15px; top: 8px; } +.nav-tabs-custom .box-tools .strong { + font-weight: bolder; +} + /* Customize */ #content { position: relative; http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/91b19565/eagle-webservice/src/main/webapp/app/public/feature/common/controller.js ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/app/public/feature/common/controller.js b/eagle-webservice/src/main/webapp/app/public/feature/common/controller.js index c41e8d4..9cbef65 100644 --- a/eagle-webservice/src/main/webapp/app/public/feature/common/controller.js +++ b/eagle-webservice/src/main/webapp/app/public/feature/common/controller.js @@ -159,17 +159,29 @@ } // Visualization - var _endTime = app.time.now().hour(23).minute(59).second(59).millisecond(0); - var _startTime = _endTime.clone().subtract(1, "month").hour(0).minute(0).second(0).millisecond(0); - var _cond = { - application: policy.tags.application, - policyId: policy.tags.policyId, - _startTime: _startTime, - _endTime: _endTime - }; + var _intervalType = 0; + var _intervalList = [ + ["Daily", 1440, function() { + var _endTime = app.time.now().hour(23).minute(59).second(59).millisecond(0); + var _startTime = _endTime.clone().subtract(1, "month").hour(0).minute(0).second(0).millisecond(0); + return [_startTime, _endTime]; + }], + ["Hourly", 60, function() { + var _endTime = app.time.now().minute(59).second(59).millisecond(0); + var _startTime = _endTime.clone().subtract(48, "hour").minute(0).second(0).millisecond(0); + return [_startTime, _endTime]; + }], + ["Every 5 minutes", 5, function() { + var _endTime = app.time.now().second(59).millisecond(0); + var _minute = Math.floor(_endTime.minute() / 5) * 5; + var _startTime = _endTime.clone().minute(_minute).subtract(5 * 30, "minute").second(0).millisecond(0); + _endTime.minute(_minute + 4); + return [_startTime, _endTime]; + }] + ]; - function _loadSeries(seriesName, metricName) { - var list = Entities.querySeries("GenericMetricService", $.extend({_metricName: metricName}, _cond), "@cluster", "sum(value)", 60 * 24); + function _loadSeries(seriesName, metricName, condition) { + var list = Entities.querySeries("GenericMetricService", $.extend({_metricName: metricName}, condition), "@cluster", "sum(value)", _intervalList[_intervalType][1]); var seriesList = nvd3.convert.eagle([list]); if(!$scope[seriesName]) $scope[seriesName] = seriesList; list._promise.then(function() { @@ -178,17 +190,28 @@ } function refreshSeries() { + var _timeRange = _intervalList[_intervalType][2](); + var _startTime = _timeRange[0]; + var _endTime = _timeRange[1]; + var _cond = { + application: policy.tags.application, + policyId: policy.tags.policyId, + _startTime: _startTime, + _endTime: _endTime + }; + console.log("Range:", common.format.date(_startTime, "datetime"), common.format.date(_endTime, "datetime")); + // > eagle.policy.eval.count - _loadSeries("policyEvalSeries", "eagle.policy.eval.count"); + _loadSeries("policyEvalSeries", "eagle.policy.eval.count", _cond); // > eagle.policy.eval.fail.count - _loadSeries("policyEvalFailSeries", "eagle.policy.eval.fail.count"); + _loadSeries("policyEvalFailSeries", "eagle.policy.eval.fail.count", _cond); // > eagle.alert.count - _loadSeries("alertSeries", "eagle.alert.count"); + _loadSeries("alertSeries", "eagle.alert.count", _cond); // > eagle.alert.fail.count - _loadSeries("alertFailSeries", "eagle.alert.fail.count"); + _loadSeries("alertFailSeries", "eagle.alert.fail.count", _cond); } // Alert list @@ -203,6 +226,22 @@ refreshSeries(); seriesRefreshInterval = $interval(refreshSeries, 60000); + + // Menu + $scope.visualizationMenu = [ + {icon: "clock-o", title: "Interval", list: + $.map(_intervalList, function(item, index) { + var _item = {icon: "clock-o", title: item[0], func: function() { + _intervalType = index; + refreshSeries(); + }}; + Object.defineProperty(_item, 'strong', { + get: function() {return _intervalType === index;} + }); + return _item; + }) + } + ]; }); // Function http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/91b19565/eagle-webservice/src/main/webapp/app/public/feature/common/page/policyDetail.html ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/app/public/feature/common/page/policyDetail.html b/eagle-webservice/src/main/webapp/app/public/feature/common/page/policyDetail.html index 0c2bb72..506aeab 100644 --- a/eagle-webservice/src/main/webapp/app/public/feature/common/page/policyDetail.html +++ b/eagle-webservice/src/main/webapp/app/public/feature/common/page/policyDetail.html @@ -66,107 +66,91 @@ -