From a499586f1542938cbeb7287d3d70fa918043198a Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2019 12:13:24 +0000 Subject: [PATCH] Elasticsearch: Support rendering in logs panel (#20229) * Elasticsearch: Support rendering in logs panel - add "Logs" metric query type so panels can inform the datasource that the query is a logs query - datasource modifies target when metric query type `logs` is detected - then existing log result processeing paths are followed * Fix failing test, number of agg types changed --- public/app/plugins/datasource/elasticsearch/datasource.ts | 4 +++- public/app/plugins/datasource/elasticsearch/query_def.ts | 5 +++++ .../datasource/elasticsearch/specs/query_def.test.ts | 8 ++++---- 3 files changed, 12 insertions(+), 5 deletions(-) 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); }); }); });