diff --git a/public/app/plugins/datasource/cloudwatch/queryCtrl.js b/public/app/plugins/datasource/cloudwatch/queryCtrl.js index e0835002692..ee63e317c55 100644 --- a/public/app/plugins/datasource/cloudwatch/queryCtrl.js +++ b/public/app/plugins/datasource/cloudwatch/queryCtrl.js @@ -19,17 +19,9 @@ function (angular, _) { $scope.target.region = $scope.target.region || $scope.datasource.getDefaultRegion(); $scope.target.errors = validateTarget(); - $scope.regionSegment = $scope.getSegmentForValue($scope.target.region, 'select region'); - $scope.namespaceSegment = $scope.getSegmentForValue($scope.target.namespace, 'select namespace'); - $scope.metricSegment = $scope.getSegmentForValue($scope.target.metricName, 'select metric'); - }; - - $scope.getSegmentForValue = function(value, fallbackText) { - if (value) { - return uiSegmentSrv.newSegment(value); - } else { - return uiSegmentSrv.newSegment({value: fallbackText, fake: true}); - } + $scope.regionSegment = uiSegmentSrv.getSegmentForValue($scope.target.region, 'select region'); + $scope.namespaceSegment = uiSegmentSrv.getSegmentForValue($scope.target.namespace, 'select namespace'); + $scope.metricSegment = uiSegmentSrv.getSegmentForValue($scope.target.metricName, 'select metric'); }; $scope.getRegions = function() { diff --git a/public/app/plugins/datasource/elasticsearch/datasource.js b/public/app/plugins/datasource/elasticsearch/datasource.js index 8f72dea25e9..49a51d63ae5 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.js +++ b/public/app/plugins/datasource/elasticsearch/datasource.js @@ -138,13 +138,21 @@ function (angular, _, config, kbn, moment, ElasticQueryBuilder) { var queryBuilder = new ElasticQueryBuilder; var query = queryBuilder.build(options.targets); query = query.replace(/\$interval/g, options.interval); - query = query.replace(/\$rangeFrom/g, options.range.from); - query = query.replace(/\$rangeTo/g, options.range.to); + query = query.replace(/\$rangeFrom/g, this.translateTime(options.range.from)); + query = query.replace(/\$rangeTo/g, this.translateTime(options.range.to)); query = query.replace(/\$maxDataPoints/g, options.maxDataPoints); query = templateSrv.replace(query, options.scopedVars); return this._post('/_search?search_type=count', query).then(this._getTimeSeries); }; + ElasticDatasource.prototype.translateTime = function(date) { + if (_.isString(date)) { + return date; + } + + return date.toJSON(); + }; + ElasticDatasource.prototype._getTimeSeries = function(results) { var _aggregation2timeSeries = function(aggregation) { var datapoints = aggregation.date_histogram.buckets.map(function(entry) { @@ -169,6 +177,26 @@ function (angular, _, config, kbn, moment, ElasticQueryBuilder) { return { data: data }; }; + ElasticDatasource.prototype.metricFindQuery = function(query) { + var region; + var namespace; + var metricName; + + var transformSuggestData = function(suggestData) { + return _.map(suggestData, function(v) { + return { text: v }; + }); + }; + + var d = $q.defer(); + + var regionQuery = query.match(/^region\(\)/); + if (regionQuery) { + d.resolve(transformSuggestData(this.performSuggestRegion())); + return d.promise; + } + }; + return ElasticDatasource; }); }); diff --git a/public/app/plugins/datasource/elasticsearch/partials/query.editor.html b/public/app/plugins/datasource/elasticsearch/partials/query.editor.html index b7ec5b75488..7767e58ab82 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/query.editor.html +++ b/public/app/plugins/datasource/elasticsearch/partials/query.editor.html @@ -37,32 +37,12 @@ - - -