diff --git a/public/app/plugins/datasource/loki/datasource.test.ts b/public/app/plugins/datasource/loki/datasource.test.ts index 785f3b7b9c2..ac3223f6e9c 100644 --- a/public/app/plugins/datasource/loki/datasource.test.ts +++ b/public/app/plugins/datasource/loki/datasource.test.ts @@ -25,7 +25,7 @@ import { CustomVariableModel } from '../../../features/variables/types'; import { isMetricsQuery, LokiDatasource, RangeQueryOptions } from './datasource'; import { makeMockLokiDatasource } from './mocks'; -import { LokiQuery, LokiQueryType, LokiResponse, LokiResultType } from './types'; +import { LokiQuery, LokiResponse, LokiResultType } from './types'; jest.mock('@grafana/runtime', () => ({ // @ts-ignore @@ -997,15 +997,6 @@ describe('LokiDatasource', () => { expect(ds.getLogsVolumeDataProvider(options)).toBeDefined(); }); - - it('does not create provider if there is only an instant logs query', () => { - const ds = createLokiDSForTests(); - const options = getQueryOptions({ - targets: [{ expr: '{label=value', refId: 'A', queryType: LokiQueryType.Instant }], - }); - - expect(ds.getLogsVolumeDataProvider(options)).not.toBeDefined(); - }); }); describe('importing queries', () => { diff --git a/public/app/plugins/datasource/loki/datasource.ts b/public/app/plugins/datasource/loki/datasource.ts index 7aa5ebafbc2..d7cbe8b8c93 100644 --- a/public/app/plugins/datasource/loki/datasource.ts +++ b/public/app/plugins/datasource/loki/datasource.ts @@ -139,28 +139,22 @@ export class LokiDatasource } getLogsVolumeDataProvider(request: DataQueryRequest): Observable | undefined { - const isQuerySuitable = (query: LokiQuery) => { - const normalized = getNormalizedLokiQuery(query); - const { expr } = normalized; - // it has to be a logs-producing range-query - return expr && !isMetricsQuery(expr) && normalized.queryType === LokiQueryType.Range; - }; - - const isLogsVolumeAvailable = request.targets.some(isQuerySuitable); - + const isLogsVolumeAvailable = request.targets.some((target) => target.expr && !isMetricsQuery(target.expr)); if (!isLogsVolumeAvailable) { return undefined; } const logsVolumeRequest = cloneDeep(request); - logsVolumeRequest.targets = logsVolumeRequest.targets.filter(isQuerySuitable).map((target) => { - return { - ...target, - instant: false, - volumeQuery: true, - expr: `sum by (level) (count_over_time(${target.expr}[$__interval]))`, - }; - }); + logsVolumeRequest.targets = logsVolumeRequest.targets + .filter((target) => target.expr && !isMetricsQuery(target.expr)) + .map((target) => { + return { + ...target, + instant: false, + volumeQuery: true, + expr: `sum by (level) (count_over_time(${target.expr}[$__interval]))`, + }; + }); return queryLogsVolume(this, logsVolumeRequest, { extractLevel,