Range Splitting: ignore empty queries from splitting and fix result resetting (#64053)

Range splitting: ignore empty queries from splitting
This commit is contained in:
Matias Chomicki 2023-03-07 13:09:55 +01:00 committed by GitHub
parent accef84ca5
commit 69d3ae8ec1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 1 deletions

View File

@ -13,6 +13,7 @@ import {
obfuscate,
combineResponses,
cloneQueryResponse,
requestSupportsPartitioning,
} from './queryUtils';
import { LokiQuery, LokiQueryType } from './types';
@ -526,3 +527,47 @@ describe('combineResponses', () => {
});
});
});
describe('requestSupportsPartitioning', () => {
it('hidden requests are not partitioned', () => {
const requests: LokiQuery[] = [
{
expr: '{a="b"}',
refId: 'A',
hide: true,
},
];
expect(requestSupportsPartitioning(requests)).toBe(false);
});
it('special requests are not partitioned', () => {
const requests: LokiQuery[] = [
{
expr: '{a="b"}',
refId: 'do-not-chunk',
},
];
expect(requestSupportsPartitioning(requests)).toBe(false);
});
it('empty requests are not partitioned', () => {
const requests: LokiQuery[] = [
{
expr: '',
refId: 'A',
},
];
expect(requestSupportsPartitioning(requests)).toBe(false);
});
it('all other requests are partitioned', () => {
const requests: LokiQuery[] = [
{
expr: '{a="b"}',
refId: 'A',
},
{
expr: 'count_over_time({a="b"}[1h])',
refId: 'B',
},
];
expect(requestSupportsPartitioning(requests)).toBe(true);
});
});

View File

@ -305,7 +305,10 @@ export function getStreamSelectorsFromQuery(query: string): string[] {
}
export function requestSupportsPartitioning(allQueries: LokiQuery[]) {
const queries = allQueries.filter((query) => !query.hide).filter((query) => !query.refId.includes('do-not-chunk'));
const queries = allQueries
.filter((query) => !query.hide)
.filter((query) => !query.refId.includes('do-not-chunk'))
.filter((query) => query.expr);
const instantQueries = queries.some((query) => query.queryType === LokiQueryType.Instant);
if (instantQueries) {