From 001331e2ac0a83b2bb577631ba5b050e3eec13d1 Mon Sep 17 00:00:00 2001 From: Andrej Ocenas Date: Mon, 19 Jul 2021 17:29:51 +0200 Subject: [PATCH] Explore: Fix query cancellation when opening an url with split panes (#36847) * Add exploreId to requestId * Fix tests --- public/app/core/utils/explore.test.ts | 7 ++++--- public/app/core/utils/explore.ts | 5 +++-- public/app/features/explore/state/query.ts | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/public/app/core/utils/explore.test.ts b/public/app/core/utils/explore.test.ts index 2b65bb9e309..e0146dc2d97 100644 --- a/public/app/core/utils/explore.test.ts +++ b/public/app/core/utils/explore.test.ts @@ -16,6 +16,7 @@ import store from 'app/core/store'; import { dateTime, ExploreUrlState, LogsSortOrder } from '@grafana/data'; import { RefreshPicker } from '@grafana/ui'; import { serializeStateToUrlParam } from '@grafana/data/src/utils/url'; +import { ExploreId } from '../../types'; const DEFAULT_EXPLORE_STATE: ExploreUrlState = { datasource: '', @@ -417,21 +418,21 @@ describe('when buildQueryTransaction', () => { const queries = [{ refId: 'A' }]; const queryOptions = { maxDataPoints: 1000, minInterval: '15s' }; const range = { from: dateTime().subtract(1, 'd'), to: dateTime(), raw: { from: '1h', to: '1h' } }; - const transaction = buildQueryTransaction(queries, queryOptions, range, false); + const transaction = buildQueryTransaction(ExploreId.left, queries, queryOptions, range, false); expect(transaction.request.intervalMs).toEqual(60000); }); it('it should calculate interval taking minInterval into account', () => { const queries = [{ refId: 'A' }]; const queryOptions = { maxDataPoints: 1000, minInterval: '15s' }; const range = { from: dateTime().subtract(1, 'm'), to: dateTime(), raw: { from: '1h', to: '1h' } }; - const transaction = buildQueryTransaction(queries, queryOptions, range, false); + const transaction = buildQueryTransaction(ExploreId.left, queries, queryOptions, range, false); expect(transaction.request.intervalMs).toEqual(15000); }); it('it should calculate interval taking maxDataPoints into account', () => { const queries = [{ refId: 'A' }]; const queryOptions = { maxDataPoints: 10, minInterval: '15s' }; const range = { from: dateTime().subtract(1, 'd'), to: dateTime(), raw: { from: '1h', to: '1h' } }; - const transaction = buildQueryTransaction(queries, queryOptions, range, false); + const transaction = buildQueryTransaction(ExploreId.left, queries, queryOptions, range, false); expect(transaction.request.interval).toEqual('2h'); }); }); diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts index a3cc13a6f70..e792ef1cef8 100644 --- a/public/app/core/utils/explore.ts +++ b/public/app/core/utils/explore.ts @@ -29,7 +29,7 @@ import { v4 as uuidv4 } from 'uuid'; import { getNextRefIdChar } from './query'; // Types import { RefreshPicker } from '@grafana/ui'; -import { QueryOptions, QueryTransaction } from 'app/types/explore'; +import { ExploreId, QueryOptions, QueryTransaction } from 'app/types/explore'; import { config } from '../config'; import { TimeSrv } from 'app/features/dashboard/services/TimeSrv'; import { DataSourceSrv } from '@grafana/runtime'; @@ -116,6 +116,7 @@ export async function getExploreUrl(args: GetExploreUrlArguments): Promise