Commit 2a6aec72 by Erik Sundell

stackdriver: make it possible to use aggregation template variable

parent a951e577
...@@ -20,8 +20,10 @@ ...@@ -20,8 +20,10 @@
<div class="gf-form offset-width-9"> <div class="gf-form offset-width-9">
<label class="gf-form-label query-keyword width-12">Aligner</label> <label class="gf-form-label query-keyword width-12">Aligner</label>
<div class="gf-form-select-wrapper gf-form-select-wrapper--caret-indent"> <div class="gf-form-select-wrapper gf-form-select-wrapper--caret-indent">
<select class="gf-form-input width-14" ng-model="ctrl.target.aggregation.perSeriesAligner" ng-options="f.value as f.text for f in ctrl.alignOptions" <gf-form-dropdown model="ctrl.target.aggregation.perSeriesAligner" get-options="ctrl.alignOptions" class="gf-form width-12"
ng-change="refresh()"></select> disabled type="text" allow-custom="true" lookup-text="true" css-class="min-width-12" on-change="refresh()"></gf-form-dropdown>
<!-- <select class="gf-form-input width-14" ng-model="ctrl.target.aggregation.perSeriesAligner" ng-options="f.value as f.text for f in ctrl.alignOptions"
ng-change="refresh()"></select> -->
</div> </div>
<div class="gf-form gf-form--grow"> <div class="gf-form gf-form--grow">
......
...@@ -26,7 +26,7 @@ export class StackdriverAggregationCtrl { ...@@ -26,7 +26,7 @@ export class StackdriverAggregationCtrl {
target: any; target: any;
/** @ngInject */ /** @ngInject */
constructor(private $scope) { constructor(private $scope, private templateSrv) {
this.$scope.ctrl = this; this.$scope.ctrl = this;
this.target = $scope.target; this.target = $scope.target;
this.alignmentPeriods = options.alignmentPeriods; this.alignmentPeriods = options.alignmentPeriods;
...@@ -51,7 +51,7 @@ export class StackdriverAggregationCtrl { ...@@ -51,7 +51,7 @@ export class StackdriverAggregationCtrl {
setAggOptions() { setAggOptions() {
this.aggOptions = getAggregationOptionsByMetric(this.target.valueType, this.target.metricKind); this.aggOptions = getAggregationOptionsByMetric(this.target.valueType, this.target.metricKind);
if (!this.aggOptions.find(o => o.value === this.target.aggregation.crossSeriesReducer)) { if (!this.aggOptions.find(o => o.value === this.templateSrv.replace(this.target.aggregation.crossSeriesReducer))) {
this.deselectAggregationOption('REDUCE_NONE'); this.deselectAggregationOption('REDUCE_NONE');
} }
......
...@@ -6,10 +6,19 @@ describe('StackdriverAggregationCtrl', () => { ...@@ -6,10 +6,19 @@ describe('StackdriverAggregationCtrl', () => {
describe('when new query result is returned from the server', () => { describe('when new query result is returned from the server', () => {
describe('and result is double and gauge and no group by is used', () => { describe('and result is double and gauge and no group by is used', () => {
beforeEach(async () => { beforeEach(async () => {
ctrl = new StackdriverAggregationCtrl({ ctrl = new StackdriverAggregationCtrl(
{
$on: () => {}, $on: () => {},
target: { valueType: 'DOUBLE', metricKind: 'GAUGE', aggregation: { crossSeriesReducer: '', groupBys: [] } }, target: {
}); valueType: 'DOUBLE',
metricKind: 'GAUGE',
aggregation: { crossSeriesReducer: '', groupBys: [] },
},
},
{
replace: s => s,
}
);
}); });
it('should populate all aggregate options except two', () => { it('should populate all aggregate options except two', () => {
...@@ -31,14 +40,19 @@ describe('StackdriverAggregationCtrl', () => { ...@@ -31,14 +40,19 @@ describe('StackdriverAggregationCtrl', () => {
describe('and result is double and gauge and a group by is used', () => { describe('and result is double and gauge and a group by is used', () => {
beforeEach(async () => { beforeEach(async () => {
ctrl = new StackdriverAggregationCtrl({ ctrl = new StackdriverAggregationCtrl(
{
$on: () => {}, $on: () => {},
target: { target: {
valueType: 'DOUBLE', valueType: 'DOUBLE',
metricKind: 'GAUGE', metricKind: 'GAUGE',
aggregation: { crossSeriesReducer: 'REDUCE_NONE', groupBys: ['resource.label.projectid'] }, aggregation: { crossSeriesReducer: 'REDUCE_NONE', groupBys: ['resource.label.projectid'] },
}, },
}); },
{
replace: s => s,
}
);
}); });
it('should populate all aggregate options except three', () => { it('should populate all aggregate options except three', () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment