mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
stackdriver: make it possible to use aggregation template variable
This commit is contained in:
parent
a951e577b7
commit
2a6aec721e
@ -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 {
|
|||||||
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 {
|
|||||||
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', () => {
|
|||||||
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: () => {},
|
{
|
||||||
target: { valueType: 'DOUBLE', metricKind: 'GAUGE', aggregation: { crossSeriesReducer: '', groupBys: [] } },
|
$on: () => {},
|
||||||
});
|
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', () => {
|
|||||||
|
|
||||||
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: () => {},
|
{
|
||||||
target: {
|
$on: () => {},
|
||||||
valueType: 'DOUBLE',
|
target: {
|
||||||
metricKind: 'GAUGE',
|
valueType: 'DOUBLE',
|
||||||
aggregation: { crossSeriesReducer: 'REDUCE_NONE', groupBys: ['resource.label.projectid'] },
|
metricKind: 'GAUGE',
|
||||||
|
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', () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user