diff --git a/public/app/plugins/datasource/elasticsearch/datasource.ts b/public/app/plugins/datasource/elasticsearch/datasource.ts index 54d637a4f28..aa2b9f0d655 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.ts +++ b/public/app/plugins/datasource/elasticsearch/datasource.ts @@ -332,9 +332,11 @@ export class ElasticDatasource extends DataSourceApi { return _.find(metrics, { id: id }); }; + +export function hasMetricOfType(target: any, type: string): boolean { + return target && target.metrics && target.metrics.some((m: any) => m.type === type); +} diff --git a/public/app/plugins/datasource/elasticsearch/specs/query_def.test.ts b/public/app/plugins/datasource/elasticsearch/specs/query_def.test.ts index f3d1874338f..d581ad0fc0d 100644 --- a/public/app/plugins/datasource/elasticsearch/specs/query_def.test.ts +++ b/public/app/plugins/datasource/elasticsearch/specs/query_def.test.ts @@ -86,25 +86,25 @@ describe('ElasticQueryDef', () => { describe('pipeline aggs depending on esverison', () => { describe('using esversion undefined', () => { test('should not get pipeline aggs', () => { - expect(queryDef.getMetricAggTypes(undefined).length).toBe(9); + expect(queryDef.getMetricAggTypes(undefined).length).toBe(10); }); }); describe('using esversion 1', () => { test('should not get pipeline aggs', () => { - expect(queryDef.getMetricAggTypes(1).length).toBe(9); + expect(queryDef.getMetricAggTypes(1).length).toBe(10); }); }); describe('using esversion 2', () => { test('should get pipeline aggs', () => { - expect(queryDef.getMetricAggTypes(2).length).toBe(12); + expect(queryDef.getMetricAggTypes(2).length).toBe(13); }); }); describe('using esversion 5', () => { test('should get pipeline aggs', () => { - expect(queryDef.getMetricAggTypes(5).length).toBe(12); + expect(queryDef.getMetricAggTypes(5).length).toBe(13); }); }); });