diff --git a/public/app/plugins/datasource/elasticsearch/datasource.test.ts b/public/app/plugins/datasource/elasticsearch/datasource.test.ts index eff2b4cc49c..9448c185f89 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.test.ts +++ b/public/app/plugins/datasource/elasticsearch/datasource.test.ts @@ -936,6 +936,20 @@ describe('enhanceDataFrame', () => { }, }); }); + + it('adds limit to dataframe', () => { + const df = new MutableDataFrame({ + fields: [ + { + name: 'someField', + values: new ArrayVector([]), + }, + ], + }); + enhanceDataFrame(df, [], 10); + + expect(df.meta?.limit).toBe(10); + }); }); const createElasticQuery = (): DataQueryRequest => { diff --git a/public/app/plugins/datasource/elasticsearch/datasource.ts b/public/app/plugins/datasource/elasticsearch/datasource.ts index cf9ee04eaa8..6a763b8277e 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.ts +++ b/public/app/plugins/datasource/elasticsearch/datasource.ts @@ -559,6 +559,8 @@ export class ElasticDatasource extends DataSourceApi = []; + for (const target of targets) { if (target.hide) { continue; @@ -575,11 +577,13 @@ export class ElasticDatasource extends DataSourceApi m.type === 'logs') as Logs; const limit = log.settings?.limit ? parseInt(log.settings?.limit, 10) : 500; + logLimits.push(limit); target.metrics = []; // Setting this for metrics queries that are typed as logs queryObj = this.queryBuilder.getLogsQuery(target, limit, adhocFilters, target.query); } else { + logLimits.push(); if (target.alias) { target.alias = this.templateSrv.replace(target.alias, options.scopedVars, 'lucene'); } @@ -619,9 +623,10 @@ export class ElasticDatasource extends DataSourceApi { + enhanceDataFrame(dataFrame, this.dataLinks, logLimits[index]); + }); return response; } @@ -855,9 +860,16 @@ export class ElasticDatasource extends DataSourceApi