|
|
@@ -5,6 +5,7 @@ import './metric_agg';
|
|
|
|
|
|
import angular from 'angular';
|
|
|
import _ from 'lodash';
|
|
|
+import queryDef from './query_def';
|
|
|
import {QueryCtrl} from 'app/plugins/sdk';
|
|
|
|
|
|
export class ElasticQueryCtrl extends QueryCtrl {
|
|
|
@@ -39,7 +40,44 @@ export class ElasticQueryCtrl extends QueryCtrl {
|
|
|
}
|
|
|
|
|
|
getCollapsedText() {
|
|
|
- var text = 'Count(), Avg(@value), Group by(@timestamp, 1min) Query';
|
|
|
+ var metricAggs = this.target.metrics;
|
|
|
+ var bucketAggs = this.target.bucketAggs;
|
|
|
+ var metricAggTypes = queryDef.getMetricAggTypes(this.esVersion);
|
|
|
+ var bucketAggTypes = queryDef.bucketAggTypes;
|
|
|
+ var text = '';
|
|
|
+
|
|
|
+ if (this.target.query) {
|
|
|
+ text += 'Query: ' + this.target.query + ', ';
|
|
|
+ }
|
|
|
+
|
|
|
+ text += 'Metrics: ';
|
|
|
+
|
|
|
+ _.each(metricAggs, (metric, index) => {
|
|
|
+ var aggDef = _.findWhere(metricAggTypes, {value: metric.type});
|
|
|
+ text += aggDef.text + '(';
|
|
|
+ if (aggDef.requiresField) {
|
|
|
+ text += metric.field;
|
|
|
+ }
|
|
|
+ text += '), ';
|
|
|
+ });
|
|
|
+
|
|
|
+ _.each(bucketAggs, (bucketAgg, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ text += ' Group by: ';
|
|
|
+ }
|
|
|
+
|
|
|
+ var aggDef = _.findWhere(bucketAggTypes, {value: bucketAgg.type});
|
|
|
+ text += aggDef.text + '(';
|
|
|
+ if (aggDef.requiresField) {
|
|
|
+ text += bucketAgg.field;
|
|
|
+ }
|
|
|
+ text += '), ';
|
|
|
+ });
|
|
|
+
|
|
|
+ if (this.target.alias) {
|
|
|
+ text += 'Alias: ' + this.target.alias;
|
|
|
+ }
|
|
|
+
|
|
|
return text;
|
|
|
}
|
|
|
|