diff --git a/public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx b/public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx index 3da8317592b..310a6314b96 100644 --- a/public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx +++ b/public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx @@ -49,7 +49,10 @@ export class PanelEditorQueries extends PureComponent { onOptionsChange = (options: QueryGroupOptions) => { const { panel } = this.props; - panel.datasource = options.dataSource.default ? null : options.dataSource.name!; + const newDataSourceName = options.dataSource.default ? null : options.dataSource.name!; + const dataSourceChanged = newDataSourceName !== panel.datasource; + + panel.datasource = newDataSourceName; panel.targets = options.queries; panel.timeFrom = options.timeRange?.from; panel.timeShift = options.timeRange?.shift; @@ -57,6 +60,11 @@ export class PanelEditorQueries extends PureComponent { panel.interval = options.minInterval; panel.maxDataPoints = options.maxDataPoints; + if (dataSourceChanged) { + // trigger queries when changing data source + setTimeout(this.onRunQueries, 10); + } + this.setState({ options: options }); };