mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Elasticsearch: use field configured in query editor as field for date_histogram aggregations (#41258)
* Elasticsearch: use field configured in query editor as field for date_histogram aggregations * add tests
This commit is contained in:
parent
a852ddc10d
commit
d524dc6108
public/app/plugins/datasource/elasticsearch
@ -96,7 +96,7 @@ export class ElasticQueryBuilder {
|
||||
const esAgg: any = {};
|
||||
const settings = aggDef.settings || {};
|
||||
esAgg.interval = settings.interval;
|
||||
esAgg.field = this.timeField;
|
||||
esAgg.field = aggDef.field || this.timeField;
|
||||
esAgg.min_doc_count = settings.min_doc_count || 0;
|
||||
esAgg.extended_bounds = { min: '$timeFrom', max: '$timeTo' };
|
||||
esAgg.format = 'epoch_millis';
|
||||
|
@ -885,6 +885,45 @@ describe('ElasticQueryBuilder', () => {
|
||||
|
||||
expect(query.aggs['2'].date_histogram.time_zone).toBe(expectedTimezone);
|
||||
});
|
||||
|
||||
describe('field property', () => {
|
||||
it('should use timeField from datasource when not specified', () => {
|
||||
const expectedTimezone = 'America/Los_angeles';
|
||||
const query = builder.build({
|
||||
refId: 'A',
|
||||
metrics: [{ type: 'count', id: '1' }],
|
||||
timeField: '@timestamp',
|
||||
bucketAggs: [
|
||||
{
|
||||
type: 'date_histogram',
|
||||
id: '2',
|
||||
settings: { min_doc_count: '1', timeZone: expectedTimezone },
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
expect(query.aggs['2'].date_histogram.field).toBe('@timestamp');
|
||||
});
|
||||
|
||||
it('should use field from bucket agg when specified', () => {
|
||||
const expectedTimezone = 'America/Los_angeles';
|
||||
const query = builder.build({
|
||||
refId: 'A',
|
||||
metrics: [{ type: 'count', id: '1' }],
|
||||
timeField: '@timestamp',
|
||||
bucketAggs: [
|
||||
{
|
||||
type: 'date_histogram',
|
||||
id: '2',
|
||||
field: '@time',
|
||||
settings: { min_doc_count: '1', timeZone: expectedTimezone },
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
expect(query.aggs['2'].date_histogram.field).toBe('@time');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user