From ec9aecd82b577baaacd0310ff8cc61da8c203a6f Mon Sep 17 00:00:00 2001 From: Matias Chomicki Date: Wed, 5 Jun 2024 11:46:28 +0200 Subject: [PATCH] Loki: remove query formatting (#88636) * Loki: remove query formatting * Loki formatting: remove feature flag * chore: remove test * Formatting --- .../feature-toggles/index.md | 1 - .../src/types/featureToggles.gen.ts | 1 - pkg/services/featuremgmt/registry.go | 7 - pkg/services/featuremgmt/toggles_gen.csv | 1 - pkg/services/featuremgmt/toggles_gen.go | 4 - pkg/services/featuremgmt/toggles_gen.json | 3545 ++++++++--------- .../datasource/loki/queryUtils.test.ts | 26 - .../app/plugins/datasource/loki/queryUtils.ts | 42 +- .../components/LokiQueryCodeEditor.tsx | 28 +- 9 files changed, 1768 insertions(+), 1887 deletions(-) diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index b132acd9459..43d769862d5 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -137,7 +137,6 @@ Experimental features might be changed or removed without prior notice. | `lokiPredefinedOperations` | Adds predefined query operations to Loki query editor | | `pluginsFrontendSandbox` | Enables the plugins frontend sandbox | | `frontendSandboxMonitorOnly` | Enables monitor only in the plugin frontend sandbox (if enabled) | -| `lokiFormatQuery` | Enables the ability to format Loki queries | | `vizAndWidgetSplit` | Split panels between visualizations and widgets | | `prometheusIncrementalQueryInstrumentation` | Adds RudderStack events to incremental queries | | `awsDatasourcesTempCredentials` | Support temporary security credentials in AWS plugins for Grafana Cloud customers | diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index a229f5bfe4d..94c9266957e 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -81,7 +81,6 @@ export interface FeatureToggles { pluginsFrontendSandbox?: boolean; frontendSandboxMonitorOnly?: boolean; sqlDatasourceDatabaseSelection?: boolean; - lokiFormatQuery?: boolean; recordedQueriesMulti?: boolean; vizAndWidgetSplit?: boolean; prometheusIncrementalQueryInstrumentation?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index a5f762fdfbb..2307eda3d73 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -471,13 +471,6 @@ var ( Owner: grafanaDatavizSquad, HideFromAdminPage: true, }, - { - Name: "lokiFormatQuery", - Description: "Enables the ability to format Loki queries", - FrontendOnly: true, - Stage: FeatureStageExperimental, - Owner: grafanaObservabilityLogsSquad, - }, { Name: "recordedQueriesMulti", Description: "Enables writing multiple items from a single query within Recorded Queries", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 7b8860ca0fd..34e38508a9f 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -62,7 +62,6 @@ lokiPredefinedOperations,experimental,@grafana/observability-logs,false,false,tr pluginsFrontendSandbox,experimental,@grafana/plugins-platform-backend,false,false,true frontendSandboxMonitorOnly,experimental,@grafana/plugins-platform-backend,false,false,true sqlDatasourceDatabaseSelection,preview,@grafana/dataviz-squad,false,false,true -lokiFormatQuery,experimental,@grafana/observability-logs,false,false,true recordedQueriesMulti,GA,@grafana/observability-metrics,false,false,false vizAndWidgetSplit,experimental,@grafana/dashboards-squad,false,false,true prometheusIncrementalQueryInstrumentation,experimental,@grafana/observability-metrics,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index cfafc2cb753..966666f7b3b 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -259,10 +259,6 @@ const ( // Enables previous SQL data source dataset dropdown behavior FlagSqlDatasourceDatabaseSelection = "sqlDatasourceDatabaseSelection" - // FlagLokiFormatQuery - // Enables the ability to format Loki queries - FlagLokiFormatQuery = "lokiFormatQuery" - // FlagRecordedQueriesMulti // Enables writing multiple items from a single query within Recorded Queries FlagRecordedQueriesMulti = "recordedQueriesMulti" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index da8080ff627..e1c031d5127 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -5,201 +5,21 @@ "items": [ { "metadata": { - "name": "alertStateHistoryLokiOnly", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "notificationBanner", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Disable Grafana alerts from emitting annotations when a remote Loki instance is available.", + "description": "Enables the notification banner UI and API", "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "enableElasticsearchBackendQuerying", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable the processing of queries and responses in the Elasticsearch data source through backend", - "stage": "GA", - "codeowner": "@grafana/observability-logs", - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "permissionsFilterRemoveSubquery", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Alternative permission filter implementation that does not use subqueries for fetching the dashboard folder", - "stage": "experimental", - "codeowner": "@grafana/grafana-backend-group" - } - }, - { - "metadata": { - "name": "angularDeprecationUI", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Display Angular warnings in dashboards and panels", - "stage": "GA", - "codeowner": "@grafana/plugins-platform-backend", - "frontend": true - } - }, - { - "metadata": { - "name": "panelFilterVariable", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "frontend": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "topnav", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables topnav support in external plugins. The new Grafana navigation cannot be disabled.", - "stage": "deprecated", "codeowner": "@grafana/grafana-frontend-platform" } }, - { - "metadata": { - "name": "sqlDatasourceDatabaseSelection", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables previous SQL data source dataset dropdown behavior", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true, - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "datasourceQueryTypes", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Show query type endpoints in datasource API servers (currently hardcoded for testdata, expressions, and prometheus)", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "addFieldFromCalculationStatFunctions", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Add cumulative and window functions to the add field from calculation transformation", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "dashboardRestore", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables deleted dashboard restore feature", - "stage": "experimental", - "codeowner": "@grafana/grafana-frontend-platform", - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "individualCookiePreferences", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Support overriding cookie preferences per user", - "stage": "experimental", - "codeowner": "@grafana/grafana-backend-group" - } - }, - { - "metadata": { - "name": "dataplaneFrontendFallback", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Support dataplane contract field name change for transformations and field name matchers where the name is different", - "stage": "GA", - "codeowner": "@grafana/observability-metrics", - "frontend": true, - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "cloudWatchBatchQueries", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Runs CloudWatch metrics queries as separate batches", - "stage": "preview", - "codeowner": "@grafana/aws-datasources" - } - }, - { - "metadata": { - "name": "managedPluginsInstall", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Install managed plugins directly from plugins catalog", - "stage": "GA", - "codeowner": "@grafana/plugins-platform-backend" - } - }, - { - "metadata": { - "name": "disableNumericMetricsSortingInExpressions", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "In server-side expressions, disable the sorting of numeric-kind metrics by their metric name or labels.", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics", - "requiresRestart": true - } - }, { "metadata": { "name": "datasourceProxyDisableRBAC", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Disables applying a plugin route's ReqAction field to authorization", @@ -208,1041 +28,11 @@ "hideFromDocs": true } }, - { - "metadata": { - "name": "autoMigrateWorldmapPanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old worldmap panel to supported geomap panel - broken out from autoMigrateOldPanels to enable granular tracking", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "autoMigrateStatPanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old stat panel to supported stat panel - broken out from autoMigrateOldPanels to enable granular tracking", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "regressionTransformation", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables regression analysis transformation", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "pluginsFrontendSandbox", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the plugins frontend sandbox", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend", - "frontend": true - } - }, - { - "metadata": { - "name": "transformationsVariableSupport", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Allows using variables in transformations", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "alertingQueryOptimization", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Optimizes eligible queries in order to reduce load on datasources", - "stage": "GA", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "groupToNestedTableTransformation", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the group to nested table transformation", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "alertingListViewV2", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the new alert list view design", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "externalCorePlugins", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Allow core plugins to be loaded as external", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend" - } - }, - { - "metadata": { - "name": "kubernetesPlaylists", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Use the kubernetes API in the frontend for playlists, and route /api/playlist requests to k8s", - "stage": "GA", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "lokiQuerySplittingConfig", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Give users the option to configure split durations for Loki queries", - "stage": "experimental", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "alertStateHistoryLokiPrimary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable a remote Loki instance as the primary source for state history reads.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "extraThemes", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables extra themes", - "stage": "experimental", - "codeowner": "@grafana/grafana-frontend-platform", - "frontend": true - } - }, - { - "metadata": { - "name": "transformationsRedesign", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the transformations redesign", - "stage": "GA", - "codeowner": "@grafana/observability-metrics", - "frontend": true, - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "grafanaAPIServerEnsureKubectlAccess", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Start an additional https handler and write kubectl options", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresDevMode": true, - "requiresRestart": true - } - }, - { - "metadata": { - "name": "awsAsyncQueryCaching", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled", - "stage": "GA", - "codeowner": "@grafana/aws-datasources" - } - }, - { - "metadata": { - "name": "flameGraphItemCollapsing", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Allow collapsing of flame graph items", - "stage": "experimental", - "codeowner": "@grafana/observability-traces-and-profiling", - "frontend": true - } - }, - { - "metadata": { - "name": "publicDashboardsScene", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables public dashboard rendering using scenes", - "stage": "experimental", - "codeowner": "@grafana/sharing-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "canvasPanelNesting", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Allow elements nesting", - "stage": "experimental", - "codeowner": "@grafana/dataviz-squad", - "frontend": true, - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "tableSharedCrosshair", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables shared crosshair in table panel", - "stage": "experimental", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "autofixDSUID", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Automatically migrates invalid datasource UIDs", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend" - } - }, - { - "metadata": { - "name": "autoMigratePiechartPanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old piechart panel to supported piechart panel - broken out from autoMigrateOldPanels to enable granular tracking", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "disableSSEDataplane", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Disables dataplane specific processing in server side expressions.", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics" - } - }, - { - "metadata": { - "name": "vizAndWidgetSplit", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Split panels between visualizations and widgets", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "panelMonitoring", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables panel monitoring through logs and measurements", - "stage": "GA", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "prometheusCodeModeMetricNamesSearch", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables search for metric names in Code Mode, to improve performance when working with an enormous number of metric names", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics", - "frontend": true - } - }, - { - "metadata": { - "name": "dashboardSceneForViewers", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables dashboard rendering using Scenes for viewer roles", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "disableEnvelopeEncryption", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Disable envelope encryption (emergency only)", - "stage": "GA", - "codeowner": "@grafana/grafana-as-code", - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "wargamesTesting", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Placeholder feature flag for internal testing", - "stage": "experimental", - "codeowner": "@grafana/hosted-grafana-team" - } - }, - { - "metadata": { - "name": "alertingCentralAlertHistory", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the new central alert history.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "lokiMetricDataplane", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Changes metric responses from Loki to be compliant with the dataplane specification.", - "stage": "GA", - "codeowner": "@grafana/observability-logs", - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "refactorVariablesTimeRange", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Refactor time range variables flow to reduce number of API calls made when query variables are chained", - "stage": "preview", - "codeowner": "@grafana/dashboards-squad", - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "dashboardScene", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables dashboard rendering using scenes for all roles", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "nodeGraphDotLayout", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Changed the layout algorithm for the node graph", - "stage": "experimental", - "codeowner": "@grafana/observability-traces-and-profiling", - "frontend": true - } - }, - { - "metadata": { - "name": "lokiPredefinedOperations", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Adds predefined query operations to Loki query editor", - "stage": "experimental", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "frontendSandboxMonitorOnly", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables monitor only in the plugin frontend sandbox (if enabled)", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend", - "frontend": true - } - }, - { - "metadata": { - "name": "pluginsAPIMetrics", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Sends metrics of public grafana packages usage by plugins", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend", - "frontend": true - } - }, - { - "metadata": { - "name": "authAPIAccessTokenAuth", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the use of Auth API access tokens for authentication", - "stage": "experimental", - "codeowner": "@grafana/identity-access-team", - "hideFromAdminPage": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "faroDatasourceSelector", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable the data source selector within the Frontend Apps section of the Frontend Observability", - "stage": "preview", - "codeowner": "@grafana/app-o11y", - "frontend": true - } - }, - { - "metadata": { - "name": "enableDatagridEditing", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the edit functionality in the datagrid panel", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "logsExploreTableVisualisation", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "A table visualisation for logs in Explore", - "stage": "GA", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "exploreMetrics", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the new Explore Metrics core app", - "stage": "GA", - "codeowner": "@grafana/dashboards-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "jitterAlertRulesWithinGroups", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group", - "stage": "preview", - "codeowner": "@grafana/alerting-squad", - "requiresRestart": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "cachingOptimizeSerializationMemoryUsage", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "If enabled, the caching backend gradually serializes query responses for the cache, comparing against the configured `[caching]max_value_mb` value as it goes. This can can help prevent Grafana from running out of memory while attempting to cache very large query responses.", - "stage": "experimental", - "codeowner": "@grafana/grafana-operator-experience-squad" - } - }, - { - "metadata": { - "name": "panelTitleSearchInV1", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable searching for dashboards using panel title in search v1", - "stage": "experimental", - "codeowner": "@grafana/search-and-storage", - "requiresDevMode": true - } - }, - { - "metadata": { - "name": "correlations", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Correlations page", - "stage": "GA", - "codeowner": "@grafana/explore-squad", - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "exploreContentOutline", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Content outline sidebar", - "stage": "GA", - "codeowner": "@grafana/explore-squad", - "frontend": true, - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "autoMigrateXYChartPanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old XYChart panel to new XYChart2 model", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "prometheusMetricEncyclopedia", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Adds the metrics explorer component to the Prometheus query builder as an option in metric select", - "stage": "GA", - "codeowner": "@grafana/observability-metrics", - "frontend": true, - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "lokiFormatQuery", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the ability to format Loki queries", - "stage": "experimental", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "queryServiceFromUI", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Routes requests to the new query service", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "scopeFilters", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the use of scope filters in Grafana", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "hideFromAdminPage": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "newDashboardWithFiltersAndGroupBy", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables filters and group by variables on all new dashboards. Variables are added only if default data source supports filtering.", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "hideFromAdminPage": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "promQLScope", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "In-development feature that will allow injection of labels into prometheus queries.", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics" - } - }, - { - "metadata": { - "name": "lokiExperimentalStreaming", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Support new streaming approach for loki (prototype, needs special loki build)", - "stage": "experimental", - "codeowner": "@grafana/observability-logs" - } - }, - { - "metadata": { - "name": "editPanelCSVDragAndDrop", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables drag and drop for CSV and Excel files", - "stage": "experimental", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "influxqlStreamingParser", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable streaming JSON parser for InfluxDB datasource InfluxQL query language", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics" - } - }, - { - "metadata": { - "name": "prometheusDataplane", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Changes responses to from Prometheus to be compliant with the dataplane specification. In particular, when this feature toggle is active, the numeric `Field.Name` is set from 'Value' to the value of the `__name__` label.", - "stage": "GA", - "codeowner": "@grafana/observability-metrics", - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "alertingSimplifiedRouting", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables users to easily configure alert notifications by specifying a contact point directly when editing or creating an alert rule", - "stage": "GA", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "logRowsPopoverMenu", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable filtering menu displayed when text of a log line is selected", - "stage": "GA", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "grafanaManagedRecordingRules", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables Grafana-managed recording rules.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad", - "hideFromAdminPage": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "logsExploreTableDefaultVisualization", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Sets the logs table as default visualisation in logs explore", - "stage": "experimental", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "datasourceQueryMultiStatus", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Introduce HTTP 207 Multi Status for api/ds/query", - "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend" - } - }, - { - "metadata": { - "name": "prometheusConfigOverhaulAuth", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Update the Prometheus configuration page with the new auth component", - "stage": "GA", - "codeowner": "@grafana/observability-metrics" - } - }, - { - "metadata": { - "name": "lokiRunQueriesInParallel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables running Loki queries in parallel", - "stage": "privatePreview", - "codeowner": "@grafana/observability-logs" - } - }, - { - "metadata": { - "name": "kubernetesSnapshots", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Routes snapshot requests from /api to the /apis endpoint", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "lokiStructuredMetadata", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the loki data source to request structured metadata from the Loki server", - "stage": "GA", - "codeowner": "@grafana/observability-logs" - } - }, - { - "metadata": { - "name": "prometheusPromQAIL", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Prometheus and AI/ML to assist users in creating a query", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics", - "frontend": true - } - }, - { - "metadata": { - "name": "unifiedStorage", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "SQL-based k8s storage", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "alertmanagerRemoteSecondary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable Grafana to sync configuration and state with a remote Alertmanager.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "lokiQueryHints", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables query hints for Loki", - "stage": "GA", - "codeowner": "@grafana/observability-logs", - "frontend": true - } - }, - { - "metadata": { - "name": "cloudRBACRoles", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enabled grafana cloud specific RBAC roles", - "stage": "experimental", - "codeowner": "@grafana/identity-access-team", - "requiresRestart": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "live-service-web-worker", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "This will use a webworker thread to processes events rather than the main thread", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "mlExpressions", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable support for Machine Learning in server-side expressions", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "libraryPanelRBAC", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables RBAC support for library panels", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "externalServiceAccounts", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Automatic service account and token setup for plugins", - "stage": "preview", - "codeowner": "@grafana/identity-access-team", - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "onPremToCloudMigrations", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "In-development feature that will allow users to easily migrate their on-prem Grafana instances to Grafana Cloud.", - "stage": "experimental", - "codeowner": "@grafana/grafana-operator-experience-squad" - } - }, - { - "metadata": { - "name": "newPDFRendering", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "New implementation for the dashboard-to-PDF rendering", - "stage": "preview", - "codeowner": "@grafana/sharing-squad" - } - }, - { - "metadata": { - "name": "queryOverLive", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Use Grafana Live WebSocket to execute backend queries", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "influxdbRunQueriesInParallel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables running InfluxDB Influxql queries in parallel", - "stage": "privatePreview", - "codeowner": "@grafana/observability-metrics" - } - }, { "metadata": { "name": "recordedQueriesMulti", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables writing multiple items from a single query within Recorded Queries", @@ -1252,135 +42,84 @@ }, { "metadata": { - "name": "enableNativeHTTPHistogram", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "traceQLStreaming", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enables native HTTP Histograms", - "stage": "experimental", - "codeowner": "@grafana/hosted-grafana-team" - } - }, - { - "metadata": { - "name": "annotationPermissionUpdate", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Change the way annotation permissions work by scoping them to folders and dashboards.", + "description": "Enables response streaming of TraceQL queries of the Tempo data source", "stage": "GA", - "codeowner": "@grafana/identity-access-team" - } - }, - { - "metadata": { - "name": "dashboardSceneSolo", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables rendering dashboards using scenes for solo panels", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", + "codeowner": "@grafana/observability-traces-and-profiling", "frontend": true } }, { "metadata": { - "name": "logRequestsInstrumentedAsUnknown", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "sseGroupByDatasource", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Logs the path for requests that are instrumented as unknown", + "description": "Send query to the same datasource in a single request when using server side expressions. The `cloudWatchBatchQueries` feature toggle should be enabled if this used with CloudWatch.", "stage": "experimental", - "codeowner": "@grafana/hosted-grafana-team" + "codeowner": "@grafana/observability-metrics" } }, { "metadata": { - "name": "accessControlOnCall", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "newPDFRendering", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Access control primitives for OnCall", + "description": "New implementation for the dashboard-to-PDF rendering", "stage": "preview", - "codeowner": "@grafana/identity-access-team", - "hideFromAdminPage": true + "codeowner": "@grafana/sharing-squad" } }, { "metadata": { - "name": "influxdbBackendMigration", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "autoMigrateOldPanels", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Query InfluxDB InfluxQL without the proxy", - "stage": "GA", - "codeowner": "@grafana/observability-metrics", + "description": "Migrate old angular panels to supported versions (graph, table-old, worldmap, etc)", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", "frontend": true } }, { "metadata": { - "name": "unifiedRequestLog", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "datasourceQueryTypes", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Writes error logs to the request logger", + "description": "Show query type endpoints in datasource API servers (currently hardcoded for testdata, expressions, and prometheus)", "stage": "experimental", - "codeowner": "@grafana/grafana-backend-group" - } - }, - { - "metadata": { - "name": "alertingNoDataErrorExecution", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Changes how Alerting state manager handles execution of NoData/Error", - "stage": "GA", - "codeowner": "@grafana/alerting-squad", + "codeowner": "@grafana/grafana-app-platform-squad", "requiresRestart": true } }, { "metadata": { - "name": "alertingInsights", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "accessActionSets", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Show the new alerting insights landing page", - "stage": "GA", - "codeowner": "@grafana/alerting-squad", - "frontend": true, - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "pluginsSkipHostEnvVars", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Disables passing host environment variable to plugin processes", + "description": "Introduces action sets for resource permissions", "stage": "experimental", - "codeowner": "@grafana/plugins-platform-backend" + "codeowner": "@grafana/identity-access-team" } }, { "metadata": { "name": "metricsSummary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables metrics summary queries in the Tempo data source", @@ -1392,8 +131,8 @@ { "metadata": { "name": "configurableSchedulerTick", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enable changing the scheduler base interval via configuration option unified_alerting.scheduler_tick_interval", @@ -1405,22 +144,318 @@ }, { "metadata": { - "name": "recoveryThreshold", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "wargamesTesting", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enables feature recovery threshold (aka hysteresis) for threshold server-side expression", + "description": "Placeholder feature flag for internal testing", + "stage": "experimental", + "codeowner": "@grafana/hosted-grafana-team" + } + }, + { + "metadata": { + "name": "alertingSaveStatePeriodic", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Writes the state periodically to the database, asynchronous to rule evaluation", + "stage": "privatePreview", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "live-service-web-worker", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "This will use a webworker thread to processes events rather than the main thread", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "lokiExperimentalStreaming", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Support new streaming approach for loki (prototype, needs special loki build)", + "stage": "experimental", + "codeowner": "@grafana/observability-logs" + } + }, + { + "metadata": { + "name": "exploreContentOutline", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Content outline sidebar", "stage": "GA", + "codeowner": "@grafana/explore-squad", + "frontend": true, + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "lokiLogsDataplane", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Changes logs responses from Loki to be compliant with the dataplane specification.", + "stage": "experimental", + "codeowner": "@grafana/observability-logs" + } + }, + { + "metadata": { + "name": "newDashboardWithFiltersAndGroupBy", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables filters and group by variables on all new dashboards. Variables are added only if default data source supports filtering.", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "transformationsRedesign", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the transformations redesign", + "stage": "GA", + "codeowner": "@grafana/observability-metrics", + "frontend": true, + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "autoMigratePiechartPanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old piechart panel to supported piechart panel - broken out from autoMigrateOldPanels to enable granular tracking", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "dashboardSceneForViewers", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables dashboard rendering using Scenes for viewer roles", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "panelFilterVariable", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "frontend": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "cloudRBACRoles", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enabled grafana cloud specific RBAC roles", + "stage": "experimental", + "codeowner": "@grafana/identity-access-team", + "requiresRestart": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "promQLScope", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "In-development feature that will allow injection of labels into prometheus queries.", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics" + } + }, + { + "metadata": { + "name": "kubernetesAggregator", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable grafana aggregator", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "extraThemes", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables extra themes", + "stage": "experimental", + "codeowner": "@grafana/grafana-frontend-platform", + "frontend": true + } + }, + { + "metadata": { + "name": "permissionsFilterRemoveSubquery", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Alternative permission filter implementation that does not use subqueries for fetching the dashboard folder", + "stage": "experimental", + "codeowner": "@grafana/grafana-backend-group" + } + }, + { + "metadata": { + "name": "externalCorePlugins", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Allow core plugins to be loaded as external", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend" + } + }, + { + "metadata": { + "name": "alertmanagerRemoteOnly", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Disable the internal Alertmanager and only use the external one defined.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "scopeFilters", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the use of scope filters in Grafana", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "queryLibrary", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables Query Library feature in Explore", + "stage": "experimental", + "codeowner": "@grafana/explore-squad" + } + }, + { + "metadata": { + "name": "alertingCentralAlertHistory", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the new central alert history.", + "stage": "experimental", "codeowner": "@grafana/alerting-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "lokiPredefinedOperations", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Adds predefined query operations to Loki query editor", + "stage": "experimental", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "kubernetesPlaylists", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Use the kubernetes API in the frontend for playlists, and route /api/playlist requests to k8s", + "stage": "GA", + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "queryServiceRewrite", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Rewrite requests targeting /ds/query to the query service", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", "requiresRestart": true } }, { "metadata": { "name": "tlsMemcached", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Use TLS-enabled memcached in the enterprise caching feature", @@ -1431,12 +466,136 @@ }, { "metadata": { - "name": "newDashboardSharingComponent", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "annotationPermissionUpdate", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enables the new sharing drawer design", + "description": "Change the way annotation permissions work by scoping them to folders and dashboards.", + "stage": "GA", + "codeowner": "@grafana/identity-access-team" + } + }, + { + "metadata": { + "name": "onPremToCloudMigrations", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "In-development feature that will allow users to easily migrate their on-prem Grafana instances to Grafana Cloud.", + "stage": "experimental", + "codeowner": "@grafana/grafana-operator-experience-squad" + } + }, + { + "metadata": { + "name": "alertingListViewV2", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the new alert list view design", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "dashboardRestore", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables deleted dashboard restore feature", + "stage": "experimental", + "codeowner": "@grafana/grafana-frontend-platform", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "unifiedRequestLog", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Writes error logs to the request logger", + "stage": "experimental", + "codeowner": "@grafana/grafana-backend-group" + } + }, + { + "metadata": { + "name": "logsExploreTableVisualisation", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "A table visualisation for logs in Explore", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "lokiRunQueriesInParallel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables running Loki queries in parallel", + "stage": "privatePreview", + "codeowner": "@grafana/observability-logs" + } + }, + { + "metadata": { + "name": "prometheusPromQAIL", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Prometheus and AI/ML to assist users in creating a query", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics", + "frontend": true + } + }, + { + "metadata": { + "name": "alertingSimplifiedRouting", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables users to easily configure alert notifications by specifying a contact point directly when editing or creating an alert rule", + "stage": "GA", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "cloudWatchNewLabelParsing", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Updates CloudWatch label parsing to be more accurate", + "stage": "GA", + "codeowner": "@grafana/aws-datasources" + } + }, + { + "metadata": { + "name": "publicDashboardsScene", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables public dashboard rendering using scenes", "stage": "experimental", "codeowner": "@grafana/sharing-squad", "frontend": true @@ -1444,73 +603,34 @@ }, { "metadata": { - "name": "notificationBanner", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "editPanelCSVDragAndDrop", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enables the notification banner UI and API", + "description": "Enables drag and drop for CSV and Excel files", "stage": "experimental", - "codeowner": "@grafana/grafana-frontend-platform" - } - }, - { - "metadata": { - "name": "alertingNoNormalState", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Stop maintaining state of alerts that are not firing", - "stage": "preview", - "codeowner": "@grafana/alerting-squad", - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "traceQLStreaming", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables response streaming of TraceQL queries of the Tempo data source", - "stage": "GA", - "codeowner": "@grafana/observability-traces-and-profiling", + "codeowner": "@grafana/dataviz-squad", "frontend": true } }, { "metadata": { - "name": "betterPageScrolling", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "individualCookiePreferences", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Removes CustomScrollbar from the UI, relying on native browser scrollbars", - "stage": "GA", - "codeowner": "@grafana/grafana-frontend-platform", - "frontend": true - } - }, - { - "metadata": { - "name": "ssoSettingsSAML", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Use the new SSO Settings API to configure the SAML connector", - "stage": "preview", - "codeowner": "@grafana/identity-access-team", - "allowSelfServe": true + "description": "Support overriding cookie preferences per user", + "stage": "experimental", + "codeowner": "@grafana/grafana-backend-group" } }, { "metadata": { "name": "alertStateHistoryLokiSecondary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enable Grafana to write alert state history to an external Loki instance in addition to Grafana annotations.", @@ -1520,36 +640,47 @@ }, { "metadata": { - "name": "renderAuthJWT", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "correlations", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Uses JWT-based auth for rendering instead of relying on remote cache", - "stage": "preview", - "codeowner": "@grafana/grafana-as-code", - "hideFromAdminPage": true + "description": "Correlations page", + "stage": "GA", + "codeowner": "@grafana/explore-squad", + "allowSelfServe": true } }, { "metadata": { - "name": "featureToggleAdminPage", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "awsDatasourcesTempCredentials", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enable admin page for managing feature toggles from the Grafana front-end. Grafana Cloud only.", + "description": "Support temporary security credentials in AWS plugins for Grafana Cloud customers", "stage": "experimental", - "codeowner": "@grafana/grafana-operator-experience-squad", - "requiresRestart": true, - "hideFromDocs": true + "codeowner": "@grafana/aws-datasources" + } + }, + { + "metadata": { + "name": "angularDeprecationUI", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Display Angular warnings in dashboards and panels", + "stage": "GA", + "codeowner": "@grafana/plugins-platform-backend", + "frontend": true } }, { "metadata": { "name": "ssoSettingsApi", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables the SSO settings API and the OAuth configuration UIs in Grafana", @@ -1560,12 +691,53 @@ }, { "metadata": { - "name": "canvasPanelPanZoom", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "jitterAlertRulesWithinGroups", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Allow pan and zoom in canvas panel", + "description": "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group", + "stage": "preview", + "codeowner": "@grafana/alerting-squad", + "requiresRestart": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "grafanaManagedRecordingRules", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables Grafana-managed recording rules.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "queryOverLive", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Use Grafana Live WebSocket to execute backend queries", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "autoMigrateStatPanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old stat panel to supported stat panel - broken out from autoMigrateOldPanels to enable granular tracking", "stage": "preview", "codeowner": "@grafana/dataviz-squad", "frontend": true @@ -1573,47 +745,205 @@ }, { "metadata": { - "name": "accessActionSets", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "grafanaAPIServerEnsureKubectlAccess", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Introduces action sets for resource permissions", + "description": "Start an additional https handler and write kubectl options", "stage": "experimental", - "codeowner": "@grafana/identity-access-team" + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresDevMode": true, + "requiresRestart": true } }, { "metadata": { - "name": "pdfTables", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "dashboardScene", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enables generating table data as PDF in reporting", - "stage": "preview", - "codeowner": "@grafana/sharing-squad" - } - }, - { - "metadata": { - "name": "preserveDashboardStateWhenNavigating", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables possibility to preserve dashboard variables and time range when navigating between dashboards", + "description": "Enables dashboard rendering using scenes for all roles", "stage": "experimental", "codeowner": "@grafana/dashboards-squad", - "hideFromAdminPage": true, - "hideFromDocs": true + "frontend": true + } + }, + { + "metadata": { + "name": "managedPluginsInstall", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Install managed plugins directly from plugins catalog", + "stage": "GA", + "codeowner": "@grafana/plugins-platform-backend" + } + }, + { + "metadata": { + "name": "nodeGraphDotLayout", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Changed the layout algorithm for the node graph", + "stage": "experimental", + "codeowner": "@grafana/observability-traces-and-profiling", + "frontend": true + } + }, + { + "metadata": { + "name": "expressionParser", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable new expression parser", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "logsExploreTableDefaultVisualization", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Sets the logs table as default visualisation in logs explore", + "stage": "experimental", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "autoMigrateXYChartPanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old XYChart panel to new XYChart2 model", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "canvasPanelNesting", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Allow elements nesting", + "stage": "experimental", + "codeowner": "@grafana/dataviz-squad", + "frontend": true, + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "accessControlOnCall", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Access control primitives for OnCall", + "stage": "preview", + "codeowner": "@grafana/identity-access-team", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "sqlDatasourceDatabaseSelection", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables previous SQL data source dataset dropdown behavior", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true, + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "newDashboardSharingComponent", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the new sharing drawer design", + "stage": "experimental", + "codeowner": "@grafana/sharing-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "cloudWatchBatchQueries", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Runs CloudWatch metrics queries as separate batches", + "stage": "preview", + "codeowner": "@grafana/aws-datasources" + } + }, + { + "metadata": { + "name": "awsDatasourcesNewFormStyling", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Applies new form styling for configuration and query editors in AWS plugins", + "stage": "GA", + "codeowner": "@grafana/aws-datasources", + "frontend": true + } + }, + { + "metadata": { + "name": "logRowsPopoverMenu", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable filtering menu displayed when text of a log line is selected", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "lokiQueryHints", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables query hints for Loki", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "frontend": true } }, { "metadata": { "name": "publicDashboards", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "[Deprecated] Public dashboards are now enabled by default; to disable them, use the configuration setting. This feature toggle will be removed in the next major version.", @@ -1622,51 +952,11 @@ "allowSelfServe": true } }, - { - "metadata": { - "name": "publicDashboardsEmailSharing", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables public dashboard sharing to be restricted to only allowed emails", - "stage": "preview", - "codeowner": "@grafana/sharing-squad", - "hideFromAdminPage": true, - "hideFromDocs": true - } - }, - { - "metadata": { - "name": "featureHighlights", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Highlight Grafana Enterprise features", - "stage": "GA", - "codeowner": "@grafana/grafana-as-code", - "allowSelfServe": true - } - }, - { - "metadata": { - "name": "disableSecretsCompatibility", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Disable duplicated secret storage in legacy tables", - "stage": "experimental", - "codeowner": "@grafana/hosted-grafana-team", - "requiresRestart": true - } - }, { "metadata": { "name": "nestedFolders", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enable folder nesting", @@ -1676,115 +966,26 @@ }, { "metadata": { - "name": "extractFieldsNameDeduplication", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "prometheusMetricEncyclopedia", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Make sure extracted field names are unique in the dataframe", - "stage": "experimental", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "aiGeneratedDashboardChanges", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable AI powered features for dashboards to auto-summary changes when saving", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "kubernetesFeatureToggles", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Use the kubernetes API for feature toggle management in the frontend", - "stage": "experimental", - "codeowner": "@grafana/grafana-operator-experience-squad", - "frontend": true, - "hideFromAdminPage": true - } - }, - { - "metadata": { - "name": "queryLibrary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables Query Library feature in Explore", - "stage": "experimental", - "codeowner": "@grafana/explore-squad" - } - }, - { - "metadata": { - "name": "autoMigrateGraphPanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old graph panel to supported time series panel - broken out from autoMigrateOldPanels to enable granular tracking", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "cloudWatchCrossAccountQuerying", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables cross-account querying in CloudWatch datasources", + "description": "Adds the metrics explorer component to the Prometheus query builder as an option in metric select", "stage": "GA", - "codeowner": "@grafana/aws-datasources", + "codeowner": "@grafana/observability-metrics", + "frontend": true, "allowSelfServe": true } }, { "metadata": { - "name": "alertmanagerRemotePrimary", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "vizAndWidgetSplit", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "newFolderPicker", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables the nested folder picker without having nested folders enabled", - "stage": "experimental", - "codeowner": "@grafana/grafana-frontend-platform", - "frontend": true - } - }, - { - "metadata": { - "name": "scenes", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Experimental framework to build interactive dashboards", + "description": "Split panels between visualizations and widgets", "stage": "experimental", "codeowner": "@grafana/dashboards-squad", "frontend": true @@ -1792,49 +993,74 @@ }, { "metadata": { - "name": "alertingBacktesting", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "ssoSettingsSAML", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Rule backtesting API for alerting", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" + "description": "Use the new SSO Settings API to configure the SAML connector", + "stage": "preview", + "codeowner": "@grafana/identity-access-team", + "allowSelfServe": true } }, { "metadata": { - "name": "logsContextDatasourceUi", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "pluginsFrontendSandbox", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Allow datasource to provide custom UI for context view", + "description": "Enables the plugins frontend sandbox", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend", + "frontend": true + } + }, + { + "metadata": { + "name": "prometheusIncrementalQueryInstrumentation", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Adds RudderStack events to incremental queries", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics", + "frontend": true + } + }, + { + "metadata": { + "name": "lokiMetricDataplane", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Changes metric responses from Loki to be compliant with the dataplane specification.", "stage": "GA", "codeowner": "@grafana/observability-logs", - "frontend": true, "allowSelfServe": true } }, { "metadata": { - "name": "oauthRequireSubClaim", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "kubernetesSnapshots", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Require that sub claims is present in oauth tokens.", + "description": "Routes snapshot requests from /api to the /apis endpoint", "stage": "experimental", - "codeowner": "@grafana/identity-access-team", - "hideFromAdminPage": true, - "hideFromDocs": true + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true } }, { "metadata": { "name": "sqlExpressions", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables using SQL and DuckDB functions as Expressions.", @@ -1842,11 +1068,101 @@ "codeowner": "@grafana/grafana-app-platform-squad" } }, + { + "metadata": { + "name": "prometheusConfigOverhaulAuth", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Update the Prometheus configuration page with the new auth component", + "stage": "GA", + "codeowner": "@grafana/observability-metrics" + } + }, + { + "metadata": { + "name": "formatString", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable format string transformer", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "queryServiceFromUI", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Routes requests to the new query service", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "tableSharedCrosshair", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables shared crosshair in table panel", + "stage": "experimental", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "dataplaneFrontendFallback", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Support dataplane contract field name change for transformations and field name matchers where the name is different", + "stage": "GA", + "codeowner": "@grafana/observability-metrics", + "frontend": true, + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "pluginsAPIMetrics", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Sends metrics of public grafana packages usage by plugins", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend", + "frontend": true + } + }, + { + "metadata": { + "name": "cachingOptimizeSerializationMemoryUsage", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "If enabled, the caching backend gradually serializes query responses for the cache, comparing against the configured `[caching]max_value_mb` value as it goes. This can can help prevent Grafana from running out of memory while attempting to cache very large query responses.", + "stage": "experimental", + "codeowner": "@grafana/grafana-operator-experience-squad" + } + }, { "metadata": { "name": "alertingDisableSendAlertsExternal", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Disables the ability to send alerts to an external Alertmanager datasource.", @@ -1858,39 +1174,39 @@ }, { "metadata": { - "name": "autoMigrateOldPanels", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "publicDashboardsEmailSharing", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Migrate old angular panels to supported versions (graph, table-old, worldmap, etc)", + "description": "Enables public dashboard sharing to be restricted to only allowed emails", "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true + "codeowner": "@grafana/sharing-squad", + "hideFromAdminPage": true, + "hideFromDocs": true } }, { "metadata": { - "name": "grpcServer", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "disableSSEDataplane", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Run the GRPC server", - "stage": "preview", - "codeowner": "@grafana/grafana-app-platform-squad", - "hideFromAdminPage": true + "description": "Disables dataplane specific processing in server side expressions.", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics" } }, { "metadata": { - "name": "dashgpt", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "dashboardSceneSolo", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enable AI powered features in dashboards", - "stage": "GA", + "description": "Enables rendering dashboards using scenes for solo panels", + "stage": "experimental", "codeowner": "@grafana/dashboards-squad", "frontend": true } @@ -1898,8 +1214,8 @@ { "metadata": { "name": "reportingRetries", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables rendering retries for the reporting feature", @@ -1910,46 +1226,73 @@ }, { "metadata": { - "name": "queryService", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "canvasPanelPanZoom", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Register /apis/query.grafana.app/ -- will eventually replace /api/ds/query", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true + "description": "Allow pan and zoom in canvas panel", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true } }, { "metadata": { - "name": "alertingSaveStatePeriodic", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "oauthRequireSubClaim", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Writes the state periodically to the database, asynchronous to rule evaluation", - "stage": "privatePreview", + "description": "Require that sub claims is present in oauth tokens.", + "stage": "experimental", + "codeowner": "@grafana/identity-access-team", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "datasourceQueryMultiStatus", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Introduce HTTP 207 Multi Status for api/ds/query", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend" + } + }, + { + "metadata": { + "name": "alertingNoNormalState", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Stop maintaining state of alerts that are not firing", + "stage": "preview", + "codeowner": "@grafana/alerting-squad", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "mlExpressions", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable support for Machine Learning in server-side expressions", + "stage": "experimental", "codeowner": "@grafana/alerting-squad" } }, - { - "metadata": { - "name": "lokiLogsDataplane", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Changes logs responses from Loki to be compliant with the dataplane specification.", - "stage": "experimental", - "codeowner": "@grafana/observability-logs" - } - }, { "metadata": { "name": "grafanaAPIServerWithExperimentalAPIs", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Register experimental APIs with the k8s API server", @@ -1961,137 +1304,241 @@ }, { "metadata": { - "name": "sseGroupByDatasource", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "betterPageScrolling", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Send query to the same datasource in a single request when using server side expressions. The `cloudWatchBatchQueries` feature toggle should be enabled if this used with CloudWatch.", - "stage": "experimental", - "codeowner": "@grafana/observability-metrics" - } - }, - { - "metadata": { - "name": "idForwarding", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Generate signed id token for identity that can be forwarded to plugins and external services", - "stage": "experimental", - "codeowner": "@grafana/identity-access-team" - } - }, - { - "metadata": { - "name": "logsInfiniteScrolling", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enables infinite scrolling for the Logs panel in Explore and Dashboards", + "description": "Removes CustomScrollbar from the UI, relying on native browser scrollbars", "stage": "GA", - "codeowner": "@grafana/observability-logs", + "codeowner": "@grafana/grafana-frontend-platform", "frontend": true } }, { "metadata": { - "name": "kubernetesAggregator", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "authAPIAccessTokenAuth", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enable grafana aggregator", + "description": "Enables the use of Auth API access tokens for authentication", "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, - { - "metadata": { - "name": "autoMigrateTablePanel", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Migrate old table panel to supported table panel - broken out from autoMigrateOldPanels to enable granular tracking", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "showDashboardValidationWarnings", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Show warnings when dashboards do not validate against the schema", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad" - } - }, - { - "metadata": { - "name": "formatString", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable format string transformer", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", - "frontend": true - } - }, - { - "metadata": { - "name": "groupByVariable", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Enable groupBy variable support in scenes dashboards", - "stage": "experimental", - "codeowner": "@grafana/dashboards-squad", + "codeowner": "@grafana/identity-access-team", "hideFromAdminPage": true, "hideFromDocs": true } }, { "metadata": { - "name": "cloudWatchNewLabelParsing", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "influxqlStreamingParser", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Updates CloudWatch label parsing to be more accurate", - "stage": "GA", - "codeowner": "@grafana/aws-datasources" + "description": "Enable streaming JSON parser for InfluxDB datasource InfluxQL query language", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics" } }, { "metadata": { - "name": "disableAngular", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "alertStateHistoryLokiPrimary", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Dynamic flag to disable angular at runtime. The preferred method is to set `angular_support_enabled` to `false` in the [security] settings, which allows you to change the state at runtime.", - "stage": "preview", - "codeowner": "@grafana/dataviz-squad", + "description": "Enable a remote Loki instance as the primary source for state history reads.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "frontendSandboxMonitorOnly", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables monitor only in the plugin frontend sandbox (if enabled)", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend", + "frontend": true + } + }, + { + "metadata": { + "name": "alertingNoDataErrorExecution", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Changes how Alerting state manager handles execution of NoData/Error", + "stage": "GA", + "codeowner": "@grafana/alerting-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "flameGraphItemCollapsing", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Allow collapsing of flame graph items", + "stage": "experimental", + "codeowner": "@grafana/observability-traces-and-profiling", + "frontend": true + } + }, + { + "metadata": { + "name": "kubernetesFeatureToggles", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Use the kubernetes API for feature toggle management in the frontend", + "stage": "experimental", + "codeowner": "@grafana/grafana-operator-experience-squad", "frontend": true, "hideFromAdminPage": true } }, + { + "metadata": { + "name": "autofixDSUID", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Automatically migrates invalid datasource UIDs", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend" + } + }, + { + "metadata": { + "name": "enableDatagridEditing", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the edit functionality in the datagrid panel", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "alertingInsights", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Show the new alerting insights landing page", + "stage": "GA", + "codeowner": "@grafana/alerting-squad", + "frontend": true, + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "enableNativeHTTPHistogram", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables native HTTP Histograms", + "stage": "experimental", + "codeowner": "@grafana/hosted-grafana-team" + } + }, + { + "metadata": { + "name": "addFieldFromCalculationStatFunctions", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Add cumulative and window functions to the add field from calculation transformation", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "renderAuthJWT", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Uses JWT-based auth for rendering instead of relying on remote cache", + "stage": "preview", + "codeowner": "@grafana/grafana-as-code", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "refactorVariablesTimeRange", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Refactor time range variables flow to reduce number of API calls made when query variables are chained", + "stage": "preview", + "codeowner": "@grafana/dashboards-squad", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "awsAsyncQueryCaching", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled", + "stage": "GA", + "codeowner": "@grafana/aws-datasources" + } + }, + { + "metadata": { + "name": "aiGeneratedDashboardChanges", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable AI powered features for dashboards to auto-summary changes when saving", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "cloudWatchCrossAccountQuerying", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables cross-account querying in CloudWatch datasources", + "stage": "GA", + "codeowner": "@grafana/aws-datasources", + "allowSelfServe": true + } + }, { "metadata": { "name": "mysqlAnsiQuotes", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Use double quotes to escape keyword in a MySQL query", @@ -2102,8 +1549,8 @@ { "metadata": { "name": "lokiQuerySplitting", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Split large interval queries into subqueries with smaller time intervals", @@ -2115,59 +1562,35 @@ }, { "metadata": { - "name": "prometheusIncrementalQueryInstrumentation", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "prometheusDataplane", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Adds RudderStack events to incremental queries", - "stage": "experimental", + "description": "Changes responses to from Prometheus to be compliant with the dataplane specification. In particular, when this feature toggle is active, the numeric `Field.Name` is set from 'Value' to the value of the `__name__` label.", + "stage": "GA", "codeowner": "@grafana/observability-metrics", + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "panelMonitoring", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables panel monitoring through logs and measurements", + "stage": "GA", + "codeowner": "@grafana/dataviz-squad", "frontend": true } }, - { - "metadata": { - "name": "awsDatasourcesTempCredentials", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Support temporary security credentials in AWS plugins for Grafana Cloud customers", - "stage": "experimental", - "codeowner": "@grafana/aws-datasources" - } - }, - { - "metadata": { - "name": "alertmanagerRemoteOnly", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Disable the internal Alertmanager and only use the external one defined.", - "stage": "experimental", - "codeowner": "@grafana/alerting-squad" - } - }, - { - "metadata": { - "name": "queryServiceRewrite", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" - }, - "spec": { - "description": "Rewrite requests targeting /ds/query to the query service", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, { "metadata": { "name": "teamHttpHeaders", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Enables Team LBAC for datasources to apply team headers to the client requests", @@ -2177,22 +1600,257 @@ }, { "metadata": { - "name": "awsDatasourcesNewFormStyling", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "extractFieldsNameDeduplication", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Applies new form styling for configuration and query editors in AWS plugins", - "stage": "GA", - "codeowner": "@grafana/aws-datasources", + "description": "Make sure extracted field names are unique in the dataframe", + "stage": "experimental", + "codeowner": "@grafana/dataviz-squad", "frontend": true } }, + { + "metadata": { + "name": "newFolderPicker", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the nested folder picker without having nested folders enabled", + "stage": "experimental", + "codeowner": "@grafana/grafana-frontend-platform", + "frontend": true + } + }, + { + "metadata": { + "name": "preserveDashboardStateWhenNavigating", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables possibility to preserve dashboard variables and time range when navigating between dashboards", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "disableEnvelopeEncryption", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Disable envelope encryption (emergency only)", + "stage": "GA", + "codeowner": "@grafana/grafana-as-code", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "unifiedStorage", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "SQL-based k8s storage", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "logsInfiniteScrolling", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables infinite scrolling for the Logs panel in Explore and Dashboards", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "disableNumericMetricsSortingInExpressions", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "In server-side expressions, disable the sorting of numeric-kind metrics by their metric name or labels.", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "autoMigrateGraphPanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old graph panel to supported time series panel - broken out from autoMigrateOldPanels to enable granular tracking", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "dashgpt", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable AI powered features in dashboards", + "stage": "GA", + "codeowner": "@grafana/dashboards-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "groupToNestedTableTransformation", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the group to nested table transformation", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "groupByVariable", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable groupBy variable support in scenes dashboards", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "hideFromAdminPage": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "alertmanagerRemotePrimary", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "exploreMetrics", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the new Explore Metrics core app", + "stage": "GA", + "codeowner": "@grafana/dashboards-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "autoMigrateTablePanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old table panel to supported table panel - broken out from autoMigrateOldPanels to enable granular tracking", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "disableAngular", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Dynamic flag to disable angular at runtime. The preferred method is to set `angular_support_enabled` to `false` in the [security] settings, which allows you to change the state at runtime.", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true, + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "featureToggleAdminPage", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable admin page for managing feature toggles from the Grafana front-end. Grafana Cloud only.", + "stage": "experimental", + "codeowner": "@grafana/grafana-operator-experience-squad", + "requiresRestart": true, + "hideFromDocs": true + } + }, + { + "metadata": { + "name": "idForwarding", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Generate signed id token for identity that can be forwarded to plugins and external services", + "stage": "experimental", + "codeowner": "@grafana/identity-access-team" + } + }, + { + "metadata": { + "name": "lokiQuerySplittingConfig", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Give users the option to configure split durations for Loki queries", + "stage": "experimental", + "codeowner": "@grafana/observability-logs", + "frontend": true + } + }, + { + "metadata": { + "name": "alertingQueryOptimization", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Optimizes eligible queries in order to reduce load on datasources", + "stage": "GA", + "codeowner": "@grafana/alerting-squad" + } + }, { "metadata": { "name": "panelTitleSearch", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Search for dashboards using panel title", @@ -2204,8 +1862,8 @@ { "metadata": { "name": "storage", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { "description": "Configurable storage for dashboards, datasources, and resources", @@ -2215,16 +1873,345 @@ }, { "metadata": { - "name": "expressionParser", - "resourceVersion": "1717508735652", - "creationTimestamp": "2024-06-04T13:45:35Z" + "name": "disableSecretsCompatibility", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" }, "spec": { - "description": "Enable new expression parser", + "description": "Disable duplicated secret storage in legacy tables", + "stage": "experimental", + "codeowner": "@grafana/hosted-grafana-team", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "logsContextDatasourceUi", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Allow datasource to provide custom UI for context view", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "frontend": true, + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "showDashboardValidationWarnings", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Show warnings when dashboards do not validate against the schema", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad" + } + }, + { + "metadata": { + "name": "recoveryThreshold", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables feature recovery threshold (aka hysteresis) for threshold server-side expression", + "stage": "GA", + "codeowner": "@grafana/alerting-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "prometheusCodeModeMetricNamesSearch", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables search for metric names in Code Mode, to improve performance when working with an enormous number of metric names", + "stage": "experimental", + "codeowner": "@grafana/observability-metrics", + "frontend": true + } + }, + { + "metadata": { + "name": "regressionTransformation", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables regression analysis transformation", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "logRequestsInstrumentedAsUnknown", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Logs the path for requests that are instrumented as unknown", + "stage": "experimental", + "codeowner": "@grafana/hosted-grafana-team" + } + }, + { + "metadata": { + "name": "alertStateHistoryLokiOnly", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Disable Grafana alerts from emitting annotations when a remote Loki instance is available.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "libraryPanelRBAC", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables RBAC support for library panels", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "requiresRestart": true + } + }, + { + "metadata": { + "name": "pdfTables", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables generating table data as PDF in reporting", + "stage": "preview", + "codeowner": "@grafana/sharing-squad" + } + }, + { + "metadata": { + "name": "topnav", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables topnav support in external plugins. The new Grafana navigation cannot be disabled.", + "stage": "deprecated", + "codeowner": "@grafana/grafana-frontend-platform" + } + }, + { + "metadata": { + "name": "alertingBacktesting", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Rule backtesting API for alerting", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "queryService", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Register /apis/query.grafana.app/ -- will eventually replace /api/ds/query", "stage": "experimental", "codeowner": "@grafana/grafana-app-platform-squad", "requiresRestart": true } + }, + { + "metadata": { + "name": "alertmanagerRemoteSecondary", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable Grafana to sync configuration and state with a remote Alertmanager.", + "stage": "experimental", + "codeowner": "@grafana/alerting-squad" + } + }, + { + "metadata": { + "name": "grpcServer", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Run the GRPC server", + "stage": "preview", + "codeowner": "@grafana/grafana-app-platform-squad", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "faroDatasourceSelector", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable the data source selector within the Frontend Apps section of the Frontend Observability", + "stage": "preview", + "codeowner": "@grafana/app-o11y", + "frontend": true + } + }, + { + "metadata": { + "name": "pluginsSkipHostEnvVars", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Disables passing host environment variable to plugin processes", + "stage": "experimental", + "codeowner": "@grafana/plugins-platform-backend" + } + }, + { + "metadata": { + "name": "transformationsVariableSupport", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Allows using variables in transformations", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "panelTitleSearchInV1", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable searching for dashboards using panel title in search v1", + "stage": "experimental", + "codeowner": "@grafana/search-and-storage", + "requiresDevMode": true + } + }, + { + "metadata": { + "name": "featureHighlights", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Highlight Grafana Enterprise features", + "stage": "GA", + "codeowner": "@grafana/grafana-as-code", + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "autoMigrateWorldmapPanel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Migrate old worldmap panel to supported geomap panel - broken out from autoMigrateOldPanels to enable granular tracking", + "stage": "preview", + "codeowner": "@grafana/dataviz-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "influxdbBackendMigration", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Query InfluxDB InfluxQL without the proxy", + "stage": "GA", + "codeowner": "@grafana/observability-metrics", + "frontend": true + } + }, + { + "metadata": { + "name": "influxdbRunQueriesInParallel", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables running InfluxDB Influxql queries in parallel", + "stage": "privatePreview", + "codeowner": "@grafana/observability-metrics" + } + }, + { + "metadata": { + "name": "scenes", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Experimental framework to build interactive dashboards", + "stage": "experimental", + "codeowner": "@grafana/dashboards-squad", + "frontend": true + } + }, + { + "metadata": { + "name": "enableElasticsearchBackendQuerying", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enable the processing of queries and responses in the Elasticsearch data source through backend", + "stage": "GA", + "codeowner": "@grafana/observability-logs", + "allowSelfServe": true + } + }, + { + "metadata": { + "name": "externalServiceAccounts", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Automatic service account and token setup for plugins", + "stage": "preview", + "codeowner": "@grafana/identity-access-team", + "hideFromAdminPage": true + } + }, + { + "metadata": { + "name": "lokiStructuredMetadata", + "resourceVersion": "1717578796182", + "creationTimestamp": "2024-06-05T09:13:16Z" + }, + "spec": { + "description": "Enables the loki data source to request structured metadata from the Loki server", + "stage": "GA", + "codeowner": "@grafana/observability-logs" + } } ] } \ No newline at end of file diff --git a/public/app/plugins/datasource/loki/queryUtils.test.ts b/public/app/plugins/datasource/loki/queryUtils.test.ts index 8675b9e522e..59512e3ba41 100644 --- a/public/app/plugins/datasource/loki/queryUtils.test.ts +++ b/public/app/plugins/datasource/loki/queryUtils.test.ts @@ -1,6 +1,5 @@ import { String } from '@grafana/lezer-logql'; -import { createLokiDatasource } from './__mocks__/datasource'; import { getHighlighterExpressionsFromQuery, getLokiQueryType, @@ -17,7 +16,6 @@ import { getLogQueryFromMetricsQuery, getNormalizedLokiQuery, getNodePositionsFromQuery, - formatLogqlQuery, getLogQueryFromMetricsQueryAtPosition, } from './queryUtils'; import { LokiQuery, LokiQueryType } from './types'; @@ -491,27 +489,3 @@ describe('getNodePositionsFromQuery', () => { expect(nodePositions.length).toBe(0); }); }); - -describe('formatLogqlQuery', () => { - const ds = createLokiDatasource(); - - it('formats a logs query', () => { - expect(formatLogqlQuery('{job="grafana"}', ds)).toBe('{job="grafana"}'); - }); - - it('formats a metrics query', () => { - expect(formatLogqlQuery('count_over_time({job="grafana"}[1m])', ds)).toBe( - 'count_over_time(\n {job="grafana"}\n [1m]\n)' - ); - }); - - it('formats a metrics query with variables', () => { - // mock the interpolateString return value so it passes the isValid check - ds.interpolateString = jest.fn(() => 'rate({job="grafana"}[1s])'); - - expect(formatLogqlQuery('rate({job="grafana"}[$__range])', ds)).toBe('rate(\n {job="grafana"}\n [$__range]\n)'); - expect(formatLogqlQuery('rate({job="grafana"}[$__interval])', ds)).toBe( - 'rate(\n {job="grafana"}\n [$__interval]\n)' - ); - }); -}); diff --git a/public/app/plugins/datasource/loki/queryUtils.ts b/public/app/plugins/datasource/loki/queryUtils.ts index bfde36f52db..cf4320b19cb 100644 --- a/public/app/plugins/datasource/loki/queryUtils.ts +++ b/public/app/plugins/datasource/loki/queryUtils.ts @@ -18,19 +18,15 @@ import { Matcher, Identifier, Range, - formatLokiQuery, Logfmt, Json, OrFilter, FilterOp, } from '@grafana/lezer-logql'; -import { reportInteraction } from '@grafana/runtime'; import { DataQuery } from '@grafana/schema'; -import { placeHolderScopedVars } from './components/monaco-query-field/monaco-completion-provider/validation'; -import { LokiDatasource } from './datasource'; import { getStreamSelectorPositions, NodePosition } from './modifyQuery'; -import { ErrorId, replaceVariables, returnVariables } from './querybuilder/parsingUtils'; +import { ErrorId } from './querybuilder/parsingUtils'; import { LokiQuery, LokiQueryType } from './types'; /** @@ -320,39 +316,3 @@ export const getLokiQueryFromDataQuery = (query?: DataQuery): LokiQuery | undefi return query; }; - -export function formatLogqlQuery(query: string, datasource: LokiDatasource) { - const isInvalid = isQueryWithError(datasource.interpolateString(query, placeHolderScopedVars)); - - reportInteraction('grafana_loki_format_query_clicked', { - is_invalid: isInvalid, - query_type: isLogsQuery(query) ? 'logs' : 'metric', - }); - - if (isInvalid) { - return query; - } - - let transformedQuery = replaceVariables(query); - const transformationMatches = []; - const tree = parser.parse(transformedQuery); - - // Variables are considered errors inside of the parser, so we need to remove them before formatting - // We replace all variables with [0s] and keep track of the replaced variables - // After formatting we replace [0s] with the original variable - if (tree.topNode.firstChild?.firstChild?.type.id === MetricExpr) { - const pattern = /\[__V_[0-2]__\w+__V__\]/g; - transformationMatches.push(...transformedQuery.matchAll(pattern)); - transformedQuery = transformedQuery.replace(pattern, '[0s]'); - } - - let formatted = formatLokiQuery(transformedQuery); - - if (tree.topNode.firstChild?.firstChild?.type.id === MetricExpr) { - transformationMatches.forEach((match) => { - formatted = formatted.replace('[0s]', match[0]); - }); - } - - return returnVariables(formatted); -} diff --git a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryCodeEditor.tsx b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryCodeEditor.tsx index 2d45f8c96eb..fba03b1185a 100644 --- a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryCodeEditor.tsx +++ b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryCodeEditor.tsx @@ -2,13 +2,11 @@ import { css } from '@emotion/css'; import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; -import { config } from '@grafana/runtime'; -import { useStyles2, IconButton, Tooltip, Icon, Stack } from '@grafana/ui'; +import { useStyles2 } from '@grafana/ui'; import { testIds } from '../../components/LokiQueryEditor'; import { LokiQueryField } from '../../components/LokiQueryField'; import { LokiQueryEditorProps } from '../../components/types'; -import { formatLogqlQuery } from '../../queryUtils'; import { LokiQueryBuilderExplained } from './LokiQueryBuilderExplained'; @@ -29,9 +27,6 @@ export function LokiQueryCodeEditor({ }: Props) { const styles = useStyles2(getStyles); - const lokiFormatQuery = config.featureToggles.lokiFormatQuery; - const onClickFormatQueryButton = async () => onChange({ ...query, expr: formatLogqlQuery(query.expr, datasource) }); - return (
- {lokiFormatQuery && ( -
-
- - - - - - -
-
- )} - - } /> {showExplain && }