From 39c04a8e3633ed894cbadc9dfd2561b8f40815fa Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Fri, 14 Apr 2023 16:50:10 -0700 Subject: [PATCH] Chore: Remove deprecated dashboardId from panel query runner (#64786) --- packages/grafana-data/src/events/common.ts | 2 +- packages/grafana-data/src/types/datasource.ts | 2 -- packages/grafana-data/src/types/queryRunner.ts | 2 +- packages/grafana-runtime/src/analytics/types.ts | 1 + pkg/api/dashboard_test.go | 4 +++- .../internal/input-datasource/src/testHelpers.ts | 2 +- public/app/angular/panel/metrics_panel_ctrl.ts | 2 +- public/app/core/utils/explore.ts | 1 - .../PanelEditor/PanelEditorTableView.test.tsx | 2 -- .../components/PanelEditor/PanelEditorTableView.tsx | 1 - .../dashboard/dashgrid/PanelStateWrapper.tsx | 1 - .../app/features/dashboard/state/DashboardModel.ts | 1 + public/app/features/dashboard/state/PanelModel.ts | 4 ---- .../features/dashboard/state/analyticsProcessor.ts | 1 + public/app/features/explore/Explore.test.tsx | 1 - public/app/features/query/state/PanelQueryRunner.ts | 4 ---- public/app/features/query/state/QueryRunner.ts | 4 ++-- .../app/features/query/state/queryAnalytics.test.ts | 12 +++--------- public/app/features/query/state/queryAnalytics.ts | 1 - .../datasource/azuremonitor/__mocks__/panelData.ts | 1 - .../datasource/elasticsearch/datasource.test.ts | 1 - .../datasource/jaeger/components/SearchForm.test.tsx | 1 - .../app/plugins/datasource/jaeger/datasource.test.ts | 1 - .../datasource/opentsdb/specs/datasource.test.ts | 1 - .../plugins/datasource/prometheus/datasource.test.ts | 3 +-- .../app/plugins/datasource/prometheus/datasource.tsx | 2 -- public/test/helpers/getQueryOptions.ts | 2 +- 27 files changed, 17 insertions(+), 43 deletions(-) diff --git a/packages/grafana-data/src/events/common.ts b/packages/grafana-data/src/events/common.ts index e83ce88e0d6..f66cdbd3c13 100644 --- a/packages/grafana-data/src/events/common.ts +++ b/packages/grafana-data/src/events/common.ts @@ -43,7 +43,7 @@ export class AnnotationChangeEvent extends BusEventWithPayload = { - dashboardId: string; + dashboardId: string; // eeep, this should be UID orgId?: number; userId?: number; grafanaVersion?: string; diff --git a/packages/grafana-data/src/types/datasource.ts b/packages/grafana-data/src/types/datasource.ts index 02a196f0240..f8fb6161b00 100644 --- a/packages/grafana-data/src/types/datasource.ts +++ b/packages/grafana-data/src/types/datasource.ts @@ -514,8 +514,6 @@ export interface DataQueryRequest { rangeRaw?: RawTimeRange; timeInfo?: string; // The query time description (blue text in the upper right) panelId?: number; - /** @deprecate */ - dashboardId?: number; dashboardUID?: string; publicDashboardAccessToken?: string; diff --git a/packages/grafana-data/src/types/queryRunner.ts b/packages/grafana-data/src/types/queryRunner.ts index cd0c0b3e12c..9634e5f5941 100644 --- a/packages/grafana-data/src/types/queryRunner.ts +++ b/packages/grafana-data/src/types/queryRunner.ts @@ -15,7 +15,7 @@ export interface QueryRunnerOptions { datasource: DataSourceRef | DataSourceApi | null; queries: DataQuery[]; panelId?: number; - dashboardId?: number; + dashboardUID?: string; timezone: TimeZone; timeRange: TimeRange; timeInfo?: string; // String description of time range for display diff --git a/packages/grafana-runtime/src/analytics/types.ts b/packages/grafana-runtime/src/analytics/types.ts index 5f6812ead7e..742b9aac991 100644 --- a/packages/grafana-runtime/src/analytics/types.ts +++ b/packages/grafana-runtime/src/analytics/types.ts @@ -9,6 +9,7 @@ import { EchoEvent, EchoEventType } from '../services/EchoSrv'; * @public */ export interface DashboardInfo { + /** @deprecated -- use UID not internal ID */ dashboardId: number; dashboardUid: string; dashboardName: string; diff --git a/pkg/api/dashboard_test.go b/pkg/api/dashboard_test.go index ca4cbba1b87..30e9f643622 100644 --- a/pkg/api/dashboard_test.go +++ b/pkg/api/dashboard_test.go @@ -140,7 +140,8 @@ func newTestLive(t *testing.T, store db.DB) *live.GrafanaLive { func TestDashboardAPIEndpoint(t *testing.T) { t.Run("Given a dashboard with a parent folder which does not have an ACL", func(t *testing.T) { fakeDash := dashboards.NewDashboard("Child dash") - fakeDash.ID = 1 + fakeDash.SetID(1) + fakeDash.SetUID("test-uid-one") fakeDash.FolderID = 1 fakeDash.HasACL = false fakeDashboardVersionService := dashvertest.NewDashboardVersionServiceFake() @@ -188,6 +189,7 @@ func TestDashboardAPIEndpoint(t *testing.T) { sc.sqlStore = mockSQLStore dash := getDashboardShouldReturn200WithConfig(t, sc, nil, nil, dashboardService, nil) + assert.Equal(t, fakeDash.UID, dash.Dashboard.Get("uid").MustString()) assert.False(t, dash.Meta.CanEdit) assert.False(t, dash.Meta.CanSave) assert.False(t, dash.Meta.CanAdmin) diff --git a/plugins-bundled/internal/input-datasource/src/testHelpers.ts b/plugins-bundled/internal/input-datasource/src/testHelpers.ts index ed92a3dd85d..d4f0902542c 100644 --- a/plugins-bundled/internal/input-datasource/src/testHelpers.ts +++ b/plugins-bundled/internal/input-datasource/src/testHelpers.ts @@ -14,7 +14,7 @@ export function getQueryOptions( scopedVars: {}, timezone: 'browser', panelId: 1, - dashboardId: 1, + dashboardUID: 'test-uid-1', interval: '60s', intervalMs: 60000, maxDataPoints: 500, diff --git a/public/app/angular/panel/metrics_panel_ctrl.ts b/public/app/angular/panel/metrics_panel_ctrl.ts index 385cf430e80..c92c02485a7 100644 --- a/public/app/angular/panel/metrics_panel_ctrl.ts +++ b/public/app/angular/panel/metrics_panel_ctrl.ts @@ -194,7 +194,7 @@ class MetricsPanelCtrl extends PanelCtrl { datasource: panel.datasource, queries: panel.targets, panelId: panel.id, - dashboardId: this.dashboard.id, + dashboardUID: this.dashboard.uid, timezone: this.dashboard.getTimezone(), timeInfo: this.timeInfo, timeRange: this.range, diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts index 022045c3b72..9d7de0088e4 100644 --- a/public/app/core/utils/explore.ts +++ b/public/app/core/utils/explore.ts @@ -142,7 +142,6 @@ export function buildQueryTransaction( const request: DataQueryRequest = { app: CoreApp.Explore, - dashboardId: 0, // TODO probably should be taken from preferences but does not seem to be used anyway. timezone: timeZone || DefaultTimeZone, startTime: Date.now(), diff --git a/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.test.tsx b/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.test.tsx index 28ec042494e..989cce72a87 100644 --- a/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.test.tsx +++ b/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.test.tsx @@ -146,7 +146,6 @@ describe('PanelEditorTableView', () => { // panel queries should have the updated time range expect(props.panel.runAllPanelQueries).toHaveBeenNthCalledWith(1, { - dashboardId: props.dashboard.id, dashboardTimezone: '', dashboardUID: props.dashboard.uid, timeData: timeRangeUpdated, @@ -167,7 +166,6 @@ describe('PanelEditorTableView', () => { // panel queries should have the updated time range expect(props.panel.runAllPanelQueries).toHaveBeenLastCalledWith({ - dashboardId: props.dashboard.id, dashboardTimezone: '', dashboardUID: props.dashboard.uid, timeData: timeRangeUpdated2, diff --git a/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx b/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx index 904ae31ec5d..065131123df 100644 --- a/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx +++ b/public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx @@ -34,7 +34,6 @@ export function PanelEditorTableView({ width, height, panel, dashboard }: Props) const sub = panel.events.subscribe(RefreshEvent, () => { const timeData = applyPanelTimeOverrides(panel, timeSrv.timeRange()); panel.runAllPanelQueries({ - dashboardId: dashboard.id, dashboardUID: dashboard.uid, dashboardTimezone: dashboard.getTimezone(), timeData, diff --git a/public/app/features/dashboard/dashgrid/PanelStateWrapper.tsx b/public/app/features/dashboard/dashgrid/PanelStateWrapper.tsx index 73d9929ba7b..931f2aa676d 100644 --- a/public/app/features/dashboard/dashgrid/PanelStateWrapper.tsx +++ b/public/app/features/dashboard/dashgrid/PanelStateWrapper.tsx @@ -348,7 +348,6 @@ export class PanelStateWrapper extends PureComponent { this.setState({ refreshWhenInView: false }); } panel.runAllPanelQueries({ - dashboardId: dashboard.id, dashboardUID: dashboard.uid, dashboardTimezone: dashboard.getTimezone(), publicDashboardAccessToken: dashboard.meta.publicDashboardAccessToken, diff --git a/public/app/features/dashboard/state/DashboardModel.ts b/public/app/features/dashboard/state/DashboardModel.ts index b4cb4fbc8fc..16067227c18 100644 --- a/public/app/features/dashboard/state/DashboardModel.ts +++ b/public/app/features/dashboard/state/DashboardModel.ts @@ -68,6 +68,7 @@ export interface DashboardLink { } export class DashboardModel implements TimeModel { + /** @deprecated use UID */ id: any; // TODO: use propert type and fix all the places where uid is set to null uid: any; diff --git a/public/app/features/dashboard/state/PanelModel.ts b/public/app/features/dashboard/state/PanelModel.ts index ecda98f0cc1..bbb3f10e42f 100644 --- a/public/app/features/dashboard/state/PanelModel.ts +++ b/public/app/features/dashboard/state/PanelModel.ts @@ -45,8 +45,6 @@ export interface GridPos { } type RunPanelQueryOptions = { - /** @deprecate */ - dashboardId: number; dashboardUID: string; dashboardTimezone: string; timeData: TimeOverrideResult; @@ -340,7 +338,6 @@ export class PanelModel implements DataConfigSource, IPanelModel { } runAllPanelQueries({ - dashboardId, dashboardUID, dashboardTimezone, timeData, @@ -351,7 +348,6 @@ export class PanelModel implements DataConfigSource, IPanelModel { datasource: this.datasource, queries: this.targets, panelId: this.id, - dashboardId: dashboardId, dashboardUID: dashboardUID, publicDashboardAccessToken, timezone: dashboardTimezone, diff --git a/public/app/features/dashboard/state/analyticsProcessor.ts b/public/app/features/dashboard/state/analyticsProcessor.ts index 258cf71ee45..416fda502ba 100644 --- a/public/app/features/dashboard/state/analyticsProcessor.ts +++ b/public/app/features/dashboard/state/analyticsProcessor.ts @@ -4,6 +4,7 @@ import { DashboardModel } from './DashboardModel'; export function emitDashboardViewEvent(dashboard: DashboardModel) { const eventData: DashboardViewEventPayload = { + /** @deprecated */ dashboardId: dashboard.id, dashboardName: dashboard.title, dashboardUid: dashboard.uid, diff --git a/public/app/features/explore/Explore.test.tsx b/public/app/features/explore/Explore.test.tsx index 045eb9ce7bd..fd726b323f7 100644 --- a/public/app/features/explore/Explore.test.tsx +++ b/public/app/features/explore/Explore.test.tsx @@ -23,7 +23,6 @@ const makeEmptyQueryResponse = (loadingState: LoadingState) => { requestId: '1', intervalMs: 0, interval: '1s', - dashboardId: 0, panelId: 1, range: baseEmptyResponse.timeRange, scopedVars: { diff --git a/public/app/features/query/state/PanelQueryRunner.ts b/public/app/features/query/state/PanelQueryRunner.ts index fbd9b8efcde..19aea5e7c5d 100644 --- a/public/app/features/query/state/PanelQueryRunner.ts +++ b/public/app/features/query/state/PanelQueryRunner.ts @@ -48,8 +48,6 @@ export interface QueryRunnerOptions< datasource: DataSourceRef | DataSourceApi | null; queries: TQuery[]; panelId?: number; - /** @deprecate */ - dashboardId?: number; dashboardUID?: string; publicDashboardAccessToken?: string; timezone: TimeZone; @@ -205,7 +203,6 @@ export class PanelQueryRunner { timezone, datasource, panelId, - dashboardId, dashboardUID, publicDashboardAccessToken, timeRange, @@ -228,7 +225,6 @@ export class PanelQueryRunner { requestId: getNextRequestId(), timezone, panelId, - dashboardId, dashboardUID, publicDashboardAccessToken, range: timeRange, diff --git a/public/app/features/query/state/QueryRunner.ts b/public/app/features/query/state/QueryRunner.ts index 7ed29e31db3..0788016038f 100644 --- a/public/app/features/query/state/QueryRunner.ts +++ b/public/app/features/query/state/QueryRunner.ts @@ -42,7 +42,7 @@ export class QueryRunner implements QueryRunnerSrv { datasource, panelId, app, - dashboardId, + dashboardUID, timeRange, timeInfo, cacheTimeout, @@ -61,7 +61,7 @@ export class QueryRunner implements QueryRunnerSrv { requestId: getNextRequestId(), timezone, panelId, - dashboardId, + dashboardUID, range: timeRange, timeInfo, interval: '', diff --git a/public/app/features/query/state/queryAnalytics.test.ts b/public/app/features/query/state/queryAnalytics.test.ts index 7399a41c4e0..b4a7de819f2 100644 --- a/public/app/features/query/state/queryAnalytics.test.ts +++ b/public/app/features/query/state/queryAnalytics.test.ts @@ -89,7 +89,6 @@ function getTestData(requestApp: string, series: DataFrame[] = []): PanelData { return { request: { app: requestApp, - dashboardId: 1, panelId: 2, startTime: now.unix(), endTime: now.add(1, 's').unix(), @@ -111,7 +110,6 @@ function getTestDataForExplore(requestApp: string, series: DataFrame[] = []): Pa return { request: { app: requestApp, - dashboardId: 0, startTime: now.unix(), endTime: now.add(1, 's').unix(), } as DataQueryRequest, @@ -136,12 +134,11 @@ describe('emitDataRequestEvent - from a dashboard panel', () => { expect.objectContaining({ eventName: MetaAnalyticsEventName.DataRequest, datasourceName: datasource.name, - datasourceId: datasource.id, datasourceUid: datasource.uid, datasourceType: datasource.type, source: 'dashboard', panelId: 2, - dashboardId: 1, + dashboardUid: 'test', // from dashboard srv dataSize: 0, duration: 1, totalQueries: 0, @@ -159,12 +156,11 @@ describe('emitDataRequestEvent - from a dashboard panel', () => { expect.objectContaining({ eventName: MetaAnalyticsEventName.DataRequest, datasourceName: datasource.name, - datasourceId: datasource.id, datasourceUid: datasource.uid, datasourceType: datasource.type, source: 'dashboard', panelId: 2, - dashboardId: 1, + dashboardUid: 'test', dataSize: 2, duration: 1, totalQueries: 2, @@ -182,12 +178,11 @@ describe('emitDataRequestEvent - from a dashboard panel', () => { expect.objectContaining({ eventName: MetaAnalyticsEventName.DataRequest, datasourceName: datasource.name, - datasourceId: datasource.id, datasourceUid: datasource.uid, datasourceType: datasource.type, source: 'dashboard', panelId: 2, - dashboardId: 1, + dashboardUid: 'test', // from dashboard srv dataSize: 2, duration: 1, totalQueries: 1, @@ -227,7 +222,6 @@ describe('emitDataRequestEvent - from Explore', () => { eventName: MetaAnalyticsEventName.DataRequest, source: 'explore', datasourceName: 'test', - datasourceId: 1, datasourceUid: 'test', dataSize: 0, duration: 1, diff --git a/public/app/features/query/state/queryAnalytics.ts b/public/app/features/query/state/queryAnalytics.ts index 102cb954567..71c261d18bd 100644 --- a/public/app/features/query/state/queryAnalytics.ts +++ b/public/app/features/query/state/queryAnalytics.ts @@ -66,7 +66,6 @@ export function emitDataRequestEvent(datasource: DataSourceApi) { const cachedQueries = Object.values(queryCacheStatus).filter((val) => val === true).length; eventData.panelId = data.request!.panelId; - eventData.dashboardId = data.request!.dashboardId; eventData.totalQueries = totalQueries; eventData.cachedQueries = cachedQueries; diff --git a/public/app/plugins/datasource/azuremonitor/__mocks__/panelData.ts b/public/app/plugins/datasource/azuremonitor/__mocks__/panelData.ts index 640f96c5db6..c2a1bd63b80 100644 --- a/public/app/plugins/datasource/azuremonitor/__mocks__/panelData.ts +++ b/public/app/plugins/datasource/azuremonitor/__mocks__/panelData.ts @@ -28,7 +28,6 @@ export default function createMockPanelData(overrides?: DeepPartial) requestId: 'request', timezone: 'browser', panelId: 1, - dashboardId: 0, timeInfo: '', interval: '20s', intervalMs: 20000, diff --git a/public/app/plugins/datasource/elasticsearch/datasource.test.ts b/public/app/plugins/datasource/elasticsearch/datasource.test.ts index 81da363795a..c5bd3b8a5f6 100644 --- a/public/app/plugins/datasource/elasticsearch/datasource.test.ts +++ b/public/app/plugins/datasource/elasticsearch/datasource.test.ts @@ -1204,7 +1204,6 @@ describe('addAdhocFilters', () => { const createElasticQuery = (): DataQueryRequest => { return { requestId: '', - dashboardId: 0, interval: '', panelId: 0, intervalMs: 1, diff --git a/public/app/plugins/datasource/jaeger/components/SearchForm.test.tsx b/public/app/plugins/datasource/jaeger/components/SearchForm.test.tsx index eec5ffdf694..61d5000d677 100644 --- a/public/app/plugins/datasource/jaeger/components/SearchForm.test.tsx +++ b/public/app/plugins/datasource/jaeger/components/SearchForm.test.tsx @@ -194,7 +194,6 @@ const defaultSettings: DataSourceInstanceSettings = { const defaultQuery: DataQueryRequest = { requestId: '1', - dashboardId: 0, interval: '0', intervalMs: 10, panelId: 0, diff --git a/public/app/plugins/datasource/jaeger/datasource.test.ts b/public/app/plugins/datasource/jaeger/datasource.test.ts index 34f3a56bca1..86416be5eef 100644 --- a/public/app/plugins/datasource/jaeger/datasource.test.ts +++ b/public/app/plugins/datasource/jaeger/datasource.test.ts @@ -352,7 +352,6 @@ const defaultSettings: DataSourceInstanceSettings = { const defaultQuery: DataQueryRequest = { requestId: '1', - dashboardId: 0, interval: '0', intervalMs: 10, panelId: 0, diff --git a/public/app/plugins/datasource/opentsdb/specs/datasource.test.ts b/public/app/plugins/datasource/opentsdb/specs/datasource.test.ts index dfea25098fe..85dc68d61b2 100644 --- a/public/app/plugins/datasource/opentsdb/specs/datasource.test.ts +++ b/public/app/plugins/datasource/opentsdb/specs/datasource.test.ts @@ -187,7 +187,6 @@ describe('opentsdb', () => { requestId: 'Q103', timezone: 'browser', panelId: 2, - dashboardId: 189, dashboardUID: 'tyzmfPIVz', publicDashboardAccessToken: '', range: { diff --git a/public/app/plugins/datasource/prometheus/datasource.test.ts b/public/app/plugins/datasource/prometheus/datasource.test.ts index c7fb6b5f2a5..4ac51646a40 100644 --- a/public/app/plugins/datasource/prometheus/datasource.test.ts +++ b/public/app/plugins/datasource/prometheus/datasource.test.ts @@ -2008,7 +2008,7 @@ describe('PrometheusDatasource for POST', () => { }); describe('When querying prometheus via check headers X-Dashboard-Id X-Panel-Id and X-Dashboard-UID', () => { - const options = { dashboardId: 1, panelId: 2, dashboardUID: 'WFlOM-jM1' } as DataQueryRequest; + const options = { panelId: 2, dashboardUID: 'WFlOM-jM1' } as DataQueryRequest; const httpOptions = { headers: {} as { [key: string]: number | undefined }, } as PromQueryRequest; @@ -2032,7 +2032,6 @@ describe('PrometheusDatasource for POST', () => { it('with proxy access tracing headers should be added', () => { ds._addTracingHeaders(httpOptions, options); - expect(httpOptions.headers['X-Dashboard-Id']).toBe(options.dashboardId); expect(httpOptions.headers['X-Panel-Id']).toBe(options.panelId); expect(httpOptions.headers['X-Dashboard-UID']).toBe(options.dashboardUID); }); diff --git a/public/app/plugins/datasource/prometheus/datasource.tsx b/public/app/plugins/datasource/prometheus/datasource.tsx index e4c03719d26..991a6a9bc1f 100644 --- a/public/app/plugins/datasource/prometheus/datasource.tsx +++ b/public/app/plugins/datasource/prometheus/datasource.tsx @@ -195,7 +195,6 @@ export class PrometheusDatasource _addTracingHeaders(httpOptions: PromQueryRequest, options: DataQueryRequest) { httpOptions.headers = {}; if (this.access === 'proxy') { - httpOptions.headers['X-Dashboard-Id'] = options.dashboardId; httpOptions.headers['X-Dashboard-UID'] = options.dashboardUID; httpOptions.headers['X-Panel-Id'] = options.panelId; } @@ -1058,7 +1057,6 @@ export class PrometheusDatasource targets: [{ refId: 'test', expr: '1+1', instant: true }], requestId: `${this.id}-health`, scopedVars: {}, - dashboardId: 0, panelId: 0, interval: '1m', intervalMs: 60000, diff --git a/public/test/helpers/getQueryOptions.ts b/public/test/helpers/getQueryOptions.ts index ed92a3dd85d..d4f0902542c 100644 --- a/public/test/helpers/getQueryOptions.ts +++ b/public/test/helpers/getQueryOptions.ts @@ -14,7 +14,7 @@ export function getQueryOptions( scopedVars: {}, timezone: 'browser', panelId: 1, - dashboardId: 1, + dashboardUID: 'test-uid-1', interval: '60s', intervalMs: 60000, maxDataPoints: 500,