AMBARI-20391. Ambari Metrics Grafana Datasource plugin does not work when configured with a reverse proxy with subpath. (yusaku)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0c010b31 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0c010b31 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0c010b31 Branch: refs/heads/branch-feature-AMBARI-12556 Commit: 0c010b3177fcc2d03688ba035139e0f86d9f581d Parents: bc28cd7 Author: Yusaku Sako <yus...@hortonworks.com> Authored: Mon Mar 13 07:58:57 2017 -0700 Committer: Yusaku Sako <yus...@hortonworks.com> Committed: Mon Mar 13 07:58:57 2017 -0700 ---------------------------------------------------------------------- .../ambari-metrics/datasource.js | 45 +++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0c010b31/ambari-metrics/ambari-metrics-grafana/ambari-metrics/datasource.js ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-grafana/ambari-metrics/datasource.js b/ambari-metrics/ambari-metrics-grafana/ambari-metrics/datasource.js index 3a0fb66..97de6e7 100644 --- a/ambari-metrics/ambari-metrics-grafana/ambari-metrics/datasource.js +++ b/ambari-metrics/ambari-metrics-grafana/ambari-metrics/datasource.js @@ -41,8 +41,9 @@ define([ //We get a list of components and their associated metrics. AmbariMetricsDatasource.prototype.initMetricAppidMapping = function () { - return backendSrv.get(this.url + '/ws/v1/timeline/metrics/metadata') + return this.doAmbariRequest({ url: '/ws/v1/timeline/metrics/metadata' }) .then(function (items) { + items = items.data; allMetrics = {}; appIds = []; _.forEach(items, function (metric,app) { @@ -101,6 +102,7 @@ define([ if(!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "kafka-topics") { alias = alias + ' on ' + target.kbTopic; } return function (res) { + res = res.data; console.log('processing metric ' + target.metric); if (!res.metrics[0] || target.hide) { return $q.when(emptyData(target)); @@ -143,6 +145,7 @@ define([ alias = alias.replace('$druidDataSource', target.sDataSource); } return function (res) { + res = res.data; console.log('processing metric ' + target.metric); if (!res.metrics[0] || target.hide) { return $q.when(emptyData(target)); @@ -217,9 +220,9 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + metricAggregator + "&hostname=" + target.hosts + '&appId=' + target.app + '&startTime=' + from + - '&endTime=' + to + precision + seriesAggregator).then( + '&endTime=' + to + precision + seriesAggregator }).then( getMetricsData(target) ); }; @@ -239,9 +242,9 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + metricAggregator + '&hostname=' + tHost + '&appId=' + target.app + '&startTime=' + from + - '&endTime=' + to + precision + seriesAggregator).then( + '&endTime=' + to + precision + seriesAggregator }).then( getMetricsData(target) ); }; @@ -261,9 +264,9 @@ define([ var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; var templatedComponent = (_.isEmpty(tComponent)) ? target.app : tComponent; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.metric + metricTransform + metricAggregator + '&hostname=' + target.templatedHost + '&appId=' + templatedComponent + '&startTime=' + from + - '&endTime=' + to + precision + topN + seriesAggregator).then( + '&endTime=' + to + precision + topN + seriesAggregator }).then( allHostMetricsData(target) ); }; @@ -273,9 +276,9 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.queue + metricTransform + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.queue + metricTransform + metricAggregator + '&appId=resourcemanager&startTime=' + from + - '&endTime=' + to + precision + seriesAggregator).then( + '&endTime=' + to + precision + seriesAggregator }).then( getMetricsData(target) ); }; @@ -283,8 +286,8 @@ define([ var precision = target.precision === 'default' || typeof target.precision == 'undefined' ? '' : '&precision=' + target.precision; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.hbMetric + '&appId=hbase&startTime=' - + from + '&endTime=' + to + precision + seriesAggregator).then( + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.hbMetric + '&appId=hbase&startTime=' + + from + '&endTime=' + to + precision + seriesAggregator }).then( allHostMetricsData(target) ); }; @@ -295,9 +298,9 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.kbMetric + metricTransform + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.kbMetric + metricTransform + metricAggregator + '&appId=kafka_broker&startTime=' + from + - '&endTime=' + to + precision + seriesAggregator).then( + '&endTime=' + to + precision + seriesAggregator }).then( getMetricsData(target) ); }; @@ -307,8 +310,8 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.nnMetric + metricTransform - + metricAggregator + '&appId=namenode&startTime=' + from + '&endTime=' + to + precision + seriesAggregator).then( + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.nnMetric + metricTransform + + metricAggregator + '&appId=namenode&startTime=' + from + '&endTime=' + to + precision + seriesAggregator }).then( allHostMetricsData(target) ); }; @@ -320,8 +323,8 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.sTopoMetric + metricTransform - + metricAggregator + '&appId=nimbus&startTime=' + from + '&endTime=' + to + precision + seriesAggregator).then( + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.sTopoMetric + metricTransform + + metricAggregator + '&appId=nimbus&startTime=' + from + '&endTime=' + to + precision + seriesAggregator }).then( allHostMetricsData(target) ); }; @@ -333,8 +336,8 @@ define([ var metricAggregator = target.aggregator === "none" ? '' : '._' + target.aggregator; var metricTransform = !target.transform || target.transform === "none" ? '' : '._' + target.transform; var seriesAggregator = !target.seriesAggregator || target.seriesAggregator === "none" ? '' : '&seriesAggregateFunction=' + target.seriesAggregator; - return backendSrv.get(self.url + '/ws/v1/timeline/metrics?metricNames=' + target.sDataSourceMetric + metricTransform - + metricAggregator + '&appId=druid&startTime=' + from + '&endTime=' + to + precision + seriesAggregator).then( + return self.doAmbariRequest({ url: '/ws/v1/timeline/metrics?metricNames=' + target.sDataSourceMetric + metricTransform + + metricAggregator + '&appId=druid&startTime=' + from + '&endTime=' + to + precision + seriesAggregator }).then( allHostMetricsData(target) ); }; @@ -895,8 +898,8 @@ define([ * Datasources page if incorrect info is passed on. */ AmbariMetricsDatasource.prototype.testDatasource = function () { - return backendSrv.datasourceRequest({ - url: this.url + '/ws/v1/timeline/metrics/metadata', + return this.doAmbariRequest({ + url: '/ws/v1/timeline/metrics/metadata', method: 'GET' }).then(function(response) { console.log(response);