diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts index 26b6a527d95..4bb9cde3cea 100644 --- a/public/app/core/utils/explore.ts +++ b/public/app/core/utils/explore.ts @@ -57,12 +57,19 @@ export async function getExploreUrl( } } - if (exploreDatasource && exploreDatasource.meta.explore) { + if (panelDatasource) { const range = timeSrv.timeRangeForUrl(); - const state = { - ...exploreDatasource.getExploreState(exploreTargets), - range, - }; + let state: Partial = { range }; + if (exploreDatasource.getExploreState) { + state = { ...state, ...exploreDatasource.getExploreState(exploreTargets) }; + } else { + state = { + ...state, + datasource: panelDatasource.name, + queries: exploreTargets.map(t => ({ ...t, datasource: panelDatasource.name })), + }; + } + const exploreState = JSON.stringify(state); url = renderUrl('/explore', { state: exploreState }); } diff --git a/public/app/features/panel/metrics_panel_ctrl.ts b/public/app/features/panel/metrics_panel_ctrl.ts index 68167447222..6754d27bd64 100644 --- a/public/app/features/panel/metrics_panel_ctrl.ts +++ b/public/app/features/panel/metrics_panel_ctrl.ts @@ -233,12 +233,7 @@ class MetricsPanelCtrl extends PanelCtrl { getAdditionalMenuItems() { const items = []; - if ( - config.exploreEnabled && - this.contextSrv.isEditor && - this.datasource && - (this.datasource.meta.explore || this.datasource.meta.id === 'mixed') - ) { + if (config.exploreEnabled && this.contextSrv.isEditor && this.datasource) { items.push({ text: 'Explore', click: 'ctrl.explore();',