mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
This reverts commit b0925ed4ee
.
This commit is contained in:
parent
e3815111ea
commit
f8eb3c8720
@ -25,7 +25,7 @@ import { CustomVariableModel } from '../../../features/variables/types';
|
|||||||
|
|
||||||
import { isMetricsQuery, LokiDatasource, RangeQueryOptions } from './datasource';
|
import { isMetricsQuery, LokiDatasource, RangeQueryOptions } from './datasource';
|
||||||
import { makeMockLokiDatasource } from './mocks';
|
import { makeMockLokiDatasource } from './mocks';
|
||||||
import { LokiQuery, LokiQueryType, LokiResponse, LokiResultType } from './types';
|
import { LokiQuery, LokiResponse, LokiResultType } from './types';
|
||||||
|
|
||||||
jest.mock('@grafana/runtime', () => ({
|
jest.mock('@grafana/runtime', () => ({
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@ -997,15 +997,6 @@ describe('LokiDatasource', () => {
|
|||||||
|
|
||||||
expect(ds.getLogsVolumeDataProvider(options)).toBeDefined();
|
expect(ds.getLogsVolumeDataProvider(options)).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not create provider if there is only an instant logs query', () => {
|
|
||||||
const ds = createLokiDSForTests();
|
|
||||||
const options = getQueryOptions<LokiQuery>({
|
|
||||||
targets: [{ expr: '{label=value', refId: 'A', queryType: LokiQueryType.Instant }],
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(ds.getLogsVolumeDataProvider(options)).not.toBeDefined();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('importing queries', () => {
|
describe('importing queries', () => {
|
||||||
|
@ -139,28 +139,22 @@ export class LokiDatasource
|
|||||||
}
|
}
|
||||||
|
|
||||||
getLogsVolumeDataProvider(request: DataQueryRequest<LokiQuery>): Observable<DataQueryResponse> | undefined {
|
getLogsVolumeDataProvider(request: DataQueryRequest<LokiQuery>): Observable<DataQueryResponse> | undefined {
|
||||||
const isQuerySuitable = (query: LokiQuery) => {
|
const isLogsVolumeAvailable = request.targets.some((target) => target.expr && !isMetricsQuery(target.expr));
|
||||||
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);
|
|
||||||
|
|
||||||
if (!isLogsVolumeAvailable) {
|
if (!isLogsVolumeAvailable) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const logsVolumeRequest = cloneDeep(request);
|
const logsVolumeRequest = cloneDeep(request);
|
||||||
logsVolumeRequest.targets = logsVolumeRequest.targets.filter(isQuerySuitable).map((target) => {
|
logsVolumeRequest.targets = logsVolumeRequest.targets
|
||||||
return {
|
.filter((target) => target.expr && !isMetricsQuery(target.expr))
|
||||||
...target,
|
.map((target) => {
|
||||||
instant: false,
|
return {
|
||||||
volumeQuery: true,
|
...target,
|
||||||
expr: `sum by (level) (count_over_time(${target.expr}[$__interval]))`,
|
instant: false,
|
||||||
};
|
volumeQuery: true,
|
||||||
});
|
expr: `sum by (level) (count_over_time(${target.expr}[$__interval]))`,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
return queryLogsVolume(this, logsVolumeRequest, {
|
return queryLogsVolume(this, logsVolumeRequest, {
|
||||||
extractLevel,
|
extractLevel,
|
||||||
|
Loading…
Reference in New Issue
Block a user