From 2bb46847416037f144d4f7940d3f838901f356cf Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Wed, 30 Oct 2019 09:51:13 -0700 Subject: [PATCH] DataSource: don't filter hidden queries automatically (#20088) --- packages/grafana-ui/src/types/datasource.ts | 7 ------ pkg/plugins/datasource_plugin.go | 23 +++++++++---------- .../dashboard/state/PanelQueryRunner.ts | 4 ---- .../plugins/datasource/cloudwatch/plugin.json | 1 - .../plugins/datasource/graphite/plugin.json | 1 - .../datasource/input/InputDatasource.ts | 3 +++ .../datasource/mixed/MixedDataSource.ts | 7 ------ .../app/plugins/datasource/mixed/plugin.json | 1 - .../plugins/datasource/testdata/datasource.ts | 3 +++ yarn.lock | 5 ++++ 10 files changed, 22 insertions(+), 33 deletions(-) diff --git a/packages/grafana-ui/src/types/datasource.ts b/packages/grafana-ui/src/types/datasource.ts index 0f056c610e4..dae57884912 100644 --- a/packages/grafana-ui/src/types/datasource.ts +++ b/packages/grafana-ui/src/types/datasource.ts @@ -109,13 +109,6 @@ export interface DataSourcePluginMeta extends PluginMeta { queryOptions?: PluginMetaQueryOptions; sort?: number; streaming?: boolean; - - /** - * By default, hidden queries are not passed to the datasource - * Set this to true in plugin.json to have hidden queries passed to the - * DataSource query method - */ - hiddenQueries?: boolean; } interface PluginMetaQueryOptions { diff --git a/pkg/plugins/datasource_plugin.go b/pkg/plugins/datasource_plugin.go index a332bce955a..870913dc649 100644 --- a/pkg/plugins/datasource_plugin.go +++ b/pkg/plugins/datasource_plugin.go @@ -26,18 +26,17 @@ import ( // DataSourcePlugin contains all metadata about a datasource plugin type DataSourcePlugin struct { FrontendPluginBase - Annotations bool `json:"annotations"` - Metrics bool `json:"metrics"` - Alerting bool `json:"alerting"` - Explore bool `json:"explore"` - Table bool `json:"tables"` - HiddenQueries bool `json:"hiddenQueries"` - Logs bool `json:"logs"` - QueryOptions map[string]bool `json:"queryOptions,omitempty"` - BuiltIn bool `json:"builtIn,omitempty"` - Mixed bool `json:"mixed,omitempty"` - Routes []*AppPluginRoute `json:"routes"` - Streaming bool `json:"streaming"` + Annotations bool `json:"annotations"` + Metrics bool `json:"metrics"` + Alerting bool `json:"alerting"` + Explore bool `json:"explore"` + Table bool `json:"tables"` + Logs bool `json:"logs"` + QueryOptions map[string]bool `json:"queryOptions,omitempty"` + BuiltIn bool `json:"builtIn,omitempty"` + Mixed bool `json:"mixed,omitempty"` + Routes []*AppPluginRoute `json:"routes"` + Streaming bool `json:"streaming"` Backend bool `json:"backend,omitempty"` Executable string `json:"executable,omitempty"` diff --git a/public/app/features/dashboard/state/PanelQueryRunner.ts b/public/app/features/dashboard/state/PanelQueryRunner.ts index 85e9c7eca2d..052ba7c714d 100644 --- a/public/app/features/dashboard/state/PanelQueryRunner.ts +++ b/public/app/features/dashboard/state/PanelQueryRunner.ts @@ -118,10 +118,6 @@ export class PanelQueryRunner { try { const ds = await getDataSource(datasource, request.scopedVars); - if (ds.meta && !ds.meta.hiddenQueries) { - request.targets = request.targets.filter(q => !q.hide); - } - // Attach the datasource name to each query request.targets = request.targets.map(query => { if (!query.datasource) { diff --git a/public/app/plugins/datasource/cloudwatch/plugin.json b/public/app/plugins/datasource/cloudwatch/plugin.json index 2e71355975c..212bb20a059 100644 --- a/public/app/plugins/datasource/cloudwatch/plugin.json +++ b/public/app/plugins/datasource/cloudwatch/plugin.json @@ -4,7 +4,6 @@ "id": "cloudwatch", "category": "cloud", - "hiddenQueries": true, "metrics": true, "alerting": true, "annotations": true, diff --git a/public/app/plugins/datasource/graphite/plugin.json b/public/app/plugins/datasource/graphite/plugin.json index a1cc0335b68..3dd13bfcc8f 100644 --- a/public/app/plugins/datasource/graphite/plugin.json +++ b/public/app/plugins/datasource/graphite/plugin.json @@ -6,7 +6,6 @@ "includes": [{ "type": "dashboard", "name": "Graphite Carbon Metrics", "path": "dashboards/carbon_metrics.json" }], - "hiddenQueries": true, "metrics": true, "alerting": true, "annotations": true, diff --git a/public/app/plugins/datasource/input/InputDatasource.ts b/public/app/plugins/datasource/input/InputDatasource.ts index 6f01cec23b3..70ee942b623 100644 --- a/public/app/plugins/datasource/input/InputDatasource.ts +++ b/public/app/plugins/datasource/input/InputDatasource.ts @@ -49,6 +49,9 @@ export class InputDatasource extends DataSourceApi { query(options: DataQueryRequest): Promise { const results: DataFrame[] = []; for (const query of options.targets) { + if (query.hide) { + continue; + } let data = this.data; if (query.data) { data = query.data.map(v => toDataFrame(v)); diff --git a/public/app/plugins/datasource/mixed/MixedDataSource.ts b/public/app/plugins/datasource/mixed/MixedDataSource.ts index fe3602a3247..96287a54b2b 100644 --- a/public/app/plugins/datasource/mixed/MixedDataSource.ts +++ b/public/app/plugins/datasource/mixed/MixedDataSource.ts @@ -37,13 +37,6 @@ export class MixedDatasource extends DataSourceApi { mergeMap((dataSourceApi: DataSourceApi) => { const datasourceRequest = cloneDeep(request); - // Remove any unused hidden queries - let newTargets = targets.slice(); - if (!dataSourceApi.meta.hiddenQueries) { - newTargets = newTargets.filter((t: DataQuery) => !t.hide); - } - - datasourceRequest.targets = newTargets; datasourceRequest.requestId = `${dsName}${datasourceRequest.requestId || ''}`; // all queries hidden return empty result for for this requestId diff --git a/public/app/plugins/datasource/mixed/plugin.json b/public/app/plugins/datasource/mixed/plugin.json index 8d362e3bb5b..b28c58710f0 100644 --- a/public/app/plugins/datasource/mixed/plugin.json +++ b/public/app/plugins/datasource/mixed/plugin.json @@ -6,7 +6,6 @@ "builtIn": true, "mixed": true, "metrics": true, - "hiddenQueries": true, "queryOptions": { "minInterval": true diff --git a/public/app/plugins/datasource/testdata/datasource.ts b/public/app/plugins/datasource/testdata/datasource.ts index 0176335aee7..d8779c435ca 100644 --- a/public/app/plugins/datasource/testdata/datasource.ts +++ b/public/app/plugins/datasource/testdata/datasource.ts @@ -27,6 +27,9 @@ export class TestDataDataSource extends DataSourceApi { // Start streams and prepare queries for (const target of options.targets) { + if (target.hide) { + continue; + } if (target.scenarioId === 'streaming_client') { streams.push(runStream(target, options)); } else { diff --git a/yarn.lock b/yarn.lock index 3c5a44356d7..a5f9bff9331 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5821,6 +5821,11 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" +caniuse-db@1.0.30000772: + version "1.0.30000772" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000772.tgz#51aae891768286eade4a3d8319ea76d6a01b512b" + integrity sha1-UarokXaChureSj2DGep21qAbUSs= + caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000947, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30000999: version "1.0.30000999" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43"