3
0
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 ()

* Elasticsearch: use field configured in query editor as field for date_histogram aggregations

* add tests
This commit is contained in:
Giordano Ricci 2021-11-05 12:11:07 +00:00 committed by GitHub
parent a852ddc10d
commit d524dc6108
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 1 deletions
public/app/plugins/datasource/elasticsearch

View File

@ -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';

View File

@ -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');
});
});
});
});
});