mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge pull request #12598 from kichristensen/TimeRangeVariables
Support timeFilter in query templating for InfluxDB
This commit is contained in:
commit
03aed21d4b
@ -187,6 +187,11 @@ export default class InfluxDatasource {
|
|||||||
return this.$q.when({ results: [] });
|
return this.$q.when({ results: [] });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options && options.range) {
|
||||||
|
var timeFilter = this.getTimeFilter({ rangeRaw: options.range });
|
||||||
|
query = query.replace('$timeFilter', timeFilter);
|
||||||
|
}
|
||||||
|
|
||||||
return this._influxRequest('GET', '/query', { q: query, epoch: 'ms' }, options);
|
return this._influxRequest('GET', '/query', { q: query, epoch: 'ms' }, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
import InfluxDatasource from '../datasource';
|
||||||
|
import $q from 'q';
|
||||||
|
import { TemplateSrvStub } from 'test/specs/helpers';
|
||||||
|
|
||||||
|
describe('InfluxDataSource', () => {
|
||||||
|
let ctx: any = {
|
||||||
|
backendSrv: {},
|
||||||
|
$q: $q,
|
||||||
|
templateSrv: new TemplateSrvStub(),
|
||||||
|
instanceSettings: { url: 'url', name: 'influxDb', jsonData: {} },
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
ctx.instanceSettings.url = '/api/datasources/proxy/1';
|
||||||
|
ctx.ds = new InfluxDatasource(ctx.instanceSettings, ctx.$q, ctx.backendSrv, ctx.templateSrv);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('When issuing metricFindQuery', () => {
|
||||||
|
let query = 'SELECT max(value) FROM measurement WHERE $timeFilter';
|
||||||
|
let queryOptions: any = {
|
||||||
|
range: {
|
||||||
|
from: '2018-01-01T00:00:00Z',
|
||||||
|
to: '2018-01-02T00:00:00Z',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let requestQuery;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
ctx.backendSrv.datasourceRequest = function(req) {
|
||||||
|
requestQuery = req.params.q;
|
||||||
|
return ctx.$q.when({
|
||||||
|
results: [
|
||||||
|
{
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: 'measurement',
|
||||||
|
columns: ['max'],
|
||||||
|
values: [[1]],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
await ctx.ds.metricFindQuery(query, queryOptions).then(function(_) {});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should replace $timefilter', () => {
|
||||||
|
expect(requestQuery).toMatch('time >= 1514764800000ms and time <= 1514851200000ms');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user