2022-04-01 14:32:00 +08:00
// To change feature flags, edit:
// pkg/services/featuremgmt/registry.go
// Then run tests in:
// pkg/services/featuremgmt/toggles_gen_test.go
2022-06-10 19:02:52 +08:00
// twice to generate and validate the feature flag files
2024-03-21 19:04:49 +08:00
//
// Alternatively, use `make gen-feature-toggles`
2022-04-01 14:32:00 +08:00
2022-01-27 01:44:20 +08:00
package featuremgmt
2023-12-04 12:45:51 +08:00
import (
2024-02-10 07:34:12 +08:00
"embed"
"encoding/json"
featuretoggle "github.com/grafana/grafana/pkg/apis/featuretoggle/v0alpha1"
2023-12-04 12:45:51 +08:00
)
2022-01-27 01:44:20 +08:00
var (
// Register each toggle here
standardFeatureFlags = [ ] FeatureFlag {
{
2023-11-15 01:04:54 +08:00
Name : "disableEnvelopeEncryption" ,
Description : "Disable envelope encryption (emergency only)" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaAsCodeSquad ,
HideFromAdminPage : true ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : false ,
2022-01-27 01:44:20 +08:00
} ,
{
Name : "live-service-web-worker" ,
Description : "This will use a webworker thread to processes events rather than the main thread" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2022-01-27 01:44:20 +08:00
FrontendOnly : true ,
2023-03-08 00:04:20 +08:00
Owner : grafanaAppPlatformSquad ,
2022-01-27 01:44:20 +08:00
} ,
{
Name : "queryOverLive" ,
2022-12-01 05:50:20 +08:00
Description : "Use Grafana Live WebSocket to execute backend queries" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2022-01-27 01:44:20 +08:00
FrontendOnly : true ,
2023-03-08 00:04:20 +08:00
Owner : grafanaAppPlatformSquad ,
2022-01-27 01:44:20 +08:00
} ,
2022-02-16 02:26:03 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "panelTitleSearch" ,
Description : "Search for dashboards using panel title" ,
Stage : FeatureStagePublicPreview ,
Owner : grafanaAppPlatformSquad ,
HideFromAdminPage : true ,
2022-02-16 02:26:03 +08:00
} ,
2022-04-08 02:30:19 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "publicDashboards" ,
2023-12-19 18:43:54 +08:00
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." ,
2023-11-03 23:59:07 +08:00
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaSharingSquad ,
Expression : "true" , // enabled by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2022-04-08 02:30:19 +08:00
} ,
2023-01-04 03:45:15 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "publicDashboardsEmailSharing" ,
Description : "Enables public dashboard sharing to be restricted to only allowed emails" ,
Stage : FeatureStagePublicPreview ,
Owner : grafanaSharingSquad ,
HideFromDocs : true ,
HideFromAdminPage : true ,
2023-01-04 03:45:15 +08:00
} ,
2022-03-02 06:46:52 +08:00
{
2023-06-19 18:03:51 +08:00
Name : "lokiExperimentalStreaming" ,
Description : "Support new streaming approach for loki (prototype, needs special loki build)" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-08 20:42:47 +08:00
Owner : grafanaObservabilityLogsSquad ,
2022-03-02 06:46:52 +08:00
} ,
2022-02-03 19:53:23 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "featureHighlights" ,
Description : "Highlight Grafana Enterprise features" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaAsCodeSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2022-02-03 19:53:23 +08:00
} ,
2022-02-16 00:54:27 +08:00
{
Name : "migrationLocking" ,
Description : "Lock database during migrations" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStagePublicPreview ,
2023-03-08 13:57:50 +08:00
Owner : grafanaBackendPlatformSquad ,
2022-02-16 00:54:27 +08:00
} ,
2022-03-18 01:19:23 +08:00
{
Name : "storage" ,
Description : "Configurable storage for dashboards, datasources, and resources" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-08 00:04:20 +08:00
Owner : grafanaAppPlatformSquad ,
2022-03-18 01:19:23 +08:00
} ,
2022-09-16 21:14:27 +08:00
{
2024-01-22 16:27:11 +08:00
Name : "correlations" ,
Description : "Correlations page" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaExploreSquad ,
AllowSelfServe : true ,
2022-09-16 21:14:27 +08:00
} ,
2023-10-14 00:57:13 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "exploreContentOutline" ,
Description : "Content outline sidebar" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaExploreSquad ,
Expression : "true" , // enabled by default
FrontendOnly : true ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-10-14 00:57:13 +08:00
} ,
2022-05-04 00:02:20 +08:00
{
Name : "datasourceQueryMultiStatus" ,
Description : "Introduce HTTP 207 Multi Status for api/ds/query" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-08 00:04:20 +08:00
Owner : grafanaPluginsPlatformSquad ,
2022-05-04 00:02:20 +08:00
} ,
2022-06-11 08:12:56 +08:00
{
2023-03-23 12:02:36 +08:00
Name : "autoMigrateOldPanels" ,
Description : "Migrate old angular panels to supported versions (graph, table-old, worldmap, etc)" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStagePublicPreview ,
2022-06-11 08:12:56 +08:00
FrontendOnly : true ,
2023-03-08 00:04:20 +08:00
Owner : grafanaDatavizSquad ,
2022-06-11 08:12:56 +08:00
} ,
2024-02-09 06:00:48 +08:00
{
Name : "autoMigrateGraphPanel" ,
Description : "Migrate old graph panel to supported time series panel - broken out from autoMigrateOldPanels to enable granular tracking" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
2024-02-15 00:06:25 +08:00
{
Name : "autoMigrateTablePanel" ,
Description : "Migrate old table panel to supported table panel - broken out from autoMigrateOldPanels to enable granular tracking" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
{
Name : "autoMigratePiechartPanel" ,
Description : "Migrate old piechart panel to supported piechart panel - broken out from autoMigrateOldPanels to enable granular tracking" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
{
Name : "autoMigrateWorldmapPanel" ,
Description : "Migrate old worldmap panel to supported geomap panel - broken out from autoMigrateOldPanels to enable granular tracking" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
{
Name : "autoMigrateStatPanel" ,
Description : "Migrate old stat panel to supported stat panel - broken out from autoMigrateOldPanels to enable granular tracking" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
2023-03-23 23:43:45 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "disableAngular" ,
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 : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
HideFromAdminPage : true ,
2022-05-25 04:17:11 +08:00
} ,
2022-06-01 03:03:34 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "canvasPanelNesting" ,
Description : "Allow elements nesting" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
HideFromAdminPage : true ,
2022-06-01 03:03:34 +08:00
} ,
2023-11-07 00:35:59 +08:00
{
Name : "newVizTooltips" ,
Description : "New visualizations tooltips UX" ,
2024-01-06 09:40:11 +08:00
Stage : FeatureStagePublicPreview ,
2023-11-07 00:35:59 +08:00
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
2024-01-06 09:40:11 +08:00
AllowSelfServe : false ,
2023-11-07 00:35:59 +08:00
} ,
2022-07-07 14:53:02 +08:00
{
Name : "scenes" ,
Description : "Experimental framework to build interactive dashboards" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2022-07-07 14:53:02 +08:00
FrontendOnly : true ,
2023-03-08 00:04:20 +08:00
Owner : grafanaDashboardsSquad ,
2022-07-07 14:53:02 +08:00
} ,
2022-07-13 04:27:37 +08:00
{
Name : "disableSecretsCompatibility" ,
Description : "Disable duplicated secret storage in legacy tables" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2022-07-13 04:27:37 +08:00
RequiresRestart : true ,
2023-03-09 01:25:12 +08:00
Owner : hostedGrafanaTeam ,
2022-07-13 04:27:37 +08:00
} ,
2022-06-10 16:56:55 +08:00
{
Name : "logRequestsInstrumentedAsUnknown" ,
Description : "Logs the path for requests that are instrumented as unknown" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-09 01:25:12 +08:00
Owner : hostedGrafanaTeam ,
2022-06-10 18:13:31 +08:00
} ,
2022-06-20 22:25:43 +08:00
{
2023-07-26 19:07:18 +08:00
// Some plugins rely on topnav feature flag being enabled, so we cannot remove this until we
// can afford the breaking change, or we've detemined no one else is relying on it
2022-06-20 22:25:43 +08:00
Name : "topnav" ,
2023-07-26 19:07:18 +08:00
Description : "Enables topnav support in external plugins. The new Grafana navigation cannot be disabled." ,
Stage : FeatureStageDeprecated ,
2023-03-30 17:42:43 +08:00
Expression : "true" , // enabled by default
2023-06-05 19:24:17 +08:00
Owner : grafanaFrontendPlatformSquad ,
2022-06-20 22:25:43 +08:00
} ,
2024-01-19 01:12:14 +08:00
{
Name : "returnToPrevious" ,
Description : "Enables the return to previous context functionality" ,
2024-02-17 00:00:51 +08:00
Stage : FeatureStagePublicPreview ,
2024-01-19 01:12:14 +08:00
FrontendOnly : true ,
Owner : grafanaFrontendPlatformSquad ,
} ,
2022-08-25 00:57:59 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "grpcServer" ,
Description : "Run the GRPC server" ,
Stage : FeatureStagePublicPreview ,
Owner : grafanaAppPlatformSquad ,
HideFromAdminPage : true ,
2022-10-07 03:48:53 +08:00
} ,
{
Storage: Unified Storage based on Entity API (#71977)
* first round of entityapi updates
- quote column names and clean up insert/update queries
- replace grn with guid
- streamline table structure
fixes
streamline entity history
move EntitySummary into proto
remove EntitySummary
add guid to json
fix tests
change DB_Uuid to DB_NVarchar
fix folder test
convert interface to any
more cleanup
start entity store under grafana-apiserver dskit target
CRUD working, kind of
rough cut of wiring entity api to kube-apiserver
fake grafana user in context
add key to entity
list working
revert unnecessary changes
move entity storage files to their own package, clean up
use accessor to read/write grafana annotations
implement separate Create and Update functions
* go mod tidy
* switch from Kind to resource
* basic grpc storage server
* basic support for grpc entity store
* don't connect to database unless it's needed, pass user identity over grpc
* support getting user from k8s context, fix some mysql issues
* assign owner to snowflake dependency
* switch from ulid to uuid for guids
* cleanup, rename Search to List
* remove entityListResult
* EntityAPI: remove extra user abstraction (#79033)
* remove extra user abstraction
* add test stub (but
* move grpc context setup into client wrapper, fix lint issue
* remove unused constants
* remove custom json stuff
* basic list filtering, add todo
* change target to storage-server, allow entityStore flag in prod mode
* fix issue with Update
* EntityAPI: make test work, need to resolve expected differences (#79123)
* make test work, need to resolve expected differences
* remove the fields not supported by legacy
* sanitize out the bits legacy does not support
* sanitize out the bits legacy does not support
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* update feature toggle generated files
* remove unused http headers
* update feature flag strategy
* devmode
* update readme
* spelling
* readme
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-12-07 04:21:21 +08:00
Name : "unifiedStorage" ,
Description : "SQL-based k8s storage" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2022-10-07 03:48:53 +08:00
RequiresDevMode : true ,
Storage: Unified Storage based on Entity API (#71977)
* first round of entityapi updates
- quote column names and clean up insert/update queries
- replace grn with guid
- streamline table structure
fixes
streamline entity history
move EntitySummary into proto
remove EntitySummary
add guid to json
fix tests
change DB_Uuid to DB_NVarchar
fix folder test
convert interface to any
more cleanup
start entity store under grafana-apiserver dskit target
CRUD working, kind of
rough cut of wiring entity api to kube-apiserver
fake grafana user in context
add key to entity
list working
revert unnecessary changes
move entity storage files to their own package, clean up
use accessor to read/write grafana annotations
implement separate Create and Update functions
* go mod tidy
* switch from Kind to resource
* basic grpc storage server
* basic support for grpc entity store
* don't connect to database unless it's needed, pass user identity over grpc
* support getting user from k8s context, fix some mysql issues
* assign owner to snowflake dependency
* switch from ulid to uuid for guids
* cleanup, rename Search to List
* remove entityListResult
* EntityAPI: remove extra user abstraction (#79033)
* remove extra user abstraction
* add test stub (but
* move grpc context setup into client wrapper, fix lint issue
* remove unused constants
* remove custom json stuff
* basic list filtering, add todo
* change target to storage-server, allow entityStore flag in prod mode
* fix issue with Update
* EntityAPI: make test work, need to resolve expected differences (#79123)
* make test work, need to resolve expected differences
* remove the fields not supported by legacy
* sanitize out the bits legacy does not support
* sanitize out the bits legacy does not support
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* update feature toggle generated files
* remove unused http headers
* update feature flag strategy
* devmode
* update readme
* spelling
* readme
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-12-07 04:21:21 +08:00
RequiresRestart : true , // new SQL tables created
2023-03-08 00:04:20 +08:00
Owner : grafanaAppPlatformSquad ,
2022-10-07 03:48:53 +08:00
} ,
2022-11-28 19:39:12 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "cloudWatchCrossAccountQuerying" ,
Description : "Enables cross-account querying in CloudWatch datasources" ,
Stage : FeatureStageGeneralAvailability ,
Expression : "true" , // enabled by default
Owner : awsDatasourcesSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2022-10-07 18:39:14 +08:00
} ,
2022-10-14 21:51:05 +08:00
{
Name : "showDashboardValidationWarnings" ,
2022-12-01 05:50:20 +08:00
Description : "Show warnings when dashboards do not validate against the schema" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-09 19:09:19 +08:00
Owner : grafanaDashboardsSquad ,
2022-10-14 21:51:05 +08:00
} ,
2022-10-12 19:43:35 +08:00
{
Name : "mysqlAnsiQuotes" ,
2022-12-01 05:50:20 +08:00
Description : "Use double quotes to escape keyword in a MySQL query" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-08 13:57:50 +08:00
Owner : grafanaBackendPlatformSquad ,
2022-10-12 19:43:35 +08:00
} ,
2022-10-20 00:10:09 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "accessControlOnCall" ,
Description : "Access control primitives for OnCall" ,
Stage : FeatureStagePublicPreview ,
Owner : identityAccessTeam ,
HideFromAdminPage : true ,
2022-10-20 00:10:09 +08:00
} ,
2022-10-26 22:15:14 +08:00
{
2023-04-17 20:54:32 +08:00
Name : "nestedFolders" ,
Description : "Enable folder nesting" ,
2024-03-22 21:13:43 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-04-17 20:54:32 +08:00
Owner : grafanaBackendPlatformSquad ,
2024-03-22 21:13:43 +08:00
Expression : "true" , // enabled by default
2022-10-26 22:15:14 +08:00
} ,
2023-06-28 17:40:29 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "nestedFolderPicker" ,
Description : "Enables the new folder picker to work with nested folders. Requires the nestedFolders feature toggle" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaFrontendPlatformSquad ,
FrontendOnly : true ,
Expression : "true" , // enabled by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-06-28 17:40:29 +08:00
} ,
2022-12-14 22:44:14 +08:00
{
Name : "alertingBacktesting" ,
Description : "Rule backtesting API for alerting" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-09 00:03:06 +08:00
Owner : grafanaAlertingSquad ,
2022-12-14 22:44:14 +08:00
} ,
2023-01-24 17:43:44 +08:00
{
Name : "editPanelCSVDragAndDrop" ,
Description : "Enables drag and drop for CSV and Excel files" ,
FrontendOnly : true ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-01-24 17:43:44 +08:00
} ,
2023-01-14 07:29:29 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "alertingNoNormalState" ,
Description : "Stop maintaining state of alerts that are not firing" ,
Stage : FeatureStagePublicPreview ,
RequiresRestart : false ,
Owner : grafanaAlertingSquad ,
HideFromAdminPage : true ,
2023-01-14 07:29:29 +08:00
} ,
2023-01-27 22:12:01 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "logsContextDatasourceUi" ,
Description : "Allow datasource to provide custom UI for context view" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Owner : grafanaObservabilityLogsSquad ,
Expression : "true" , // turned on by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-01-27 22:12:01 +08:00
} ,
2023-02-10 01:27:02 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "lokiQuerySplitting" ,
Description : "Split large interval queries into subqueries with smaller time intervals" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Owner : grafanaObservabilityLogsSquad ,
Expression : "true" , // turned on by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-02-10 01:27:02 +08:00
} ,
2023-03-20 23:51:36 +08:00
{
Name : "lokiQuerySplittingConfig" ,
Description : "Give users the option to configure split durations for Loki queries" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-20 23:51:36 +08:00
FrontendOnly : true ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-02-21 18:19:07 +08:00
{
Name : "individualCookiePreferences" ,
Description : "Support overriding cookie preferences per user" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-09 02:12:22 +08:00
Owner : grafanaBackendPlatformSquad ,
2023-02-21 18:19:07 +08:00
} ,
2023-03-08 02:41:05 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "prometheusMetricEncyclopedia" ,
Description : "Adds the metrics explorer component to the Prometheus query builder as an option in metric select" ,
Expression : "true" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-03-08 02:41:05 +08:00
} ,
2023-03-16 01:12:16 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "influxdbBackendMigration" ,
Description : "Query InfluxDB InfluxQL without the proxy" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Owner : grafanaObservabilityMetricsSquad ,
Expression : "true" , // enabled by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : false ,
2023-03-16 01:12:16 +08:00
} ,
2023-11-30 01:29:35 +08:00
{
Name : "influxqlStreamingParser" ,
Description : "Enable streaming JSON parser for InfluxDB datasource InfluxQL query language" ,
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2024-02-01 18:58:24 +08:00
{
Name : "influxdbRunQueriesInParallel" ,
Description : "Enables running InfluxDB Influxql queries in parallel" ,
Stage : FeatureStagePrivatePreview ,
FrontendOnly : false ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2023-03-29 23:26:32 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "prometheusDataplane" ,
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." ,
Expression : "true" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-03-29 23:26:32 +08:00
} ,
2023-04-13 21:07:08 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "lokiMetricDataplane" ,
Description : "Changes metric responses from Loki to be compliant with the dataplane specification." ,
Stage : FeatureStageGeneralAvailability ,
Expression : "true" ,
Owner : grafanaObservabilityLogsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-04-13 21:07:08 +08:00
} ,
2023-07-13 15:58:00 +08:00
{
Name : "lokiLogsDataplane" ,
Description : "Changes logs responses from Loki to be compliant with the dataplane specification." ,
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-04-25 01:29:54 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "dataplaneFrontendFallback" ,
Description : "Support dataplane contract field name change for transformations and field name matchers where the name is different" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Expression : "true" ,
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-04-25 01:29:54 +08:00
} ,
{
Name : "disableSSEDataplane" ,
Description : "Disables dataplane specific processing in server side expressions." ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-04-25 01:29:54 +08:00
Owner : grafanaObservabilityMetricsSquad ,
} ,
2023-03-31 02:53:21 +08:00
{
Name : "alertStateHistoryLokiSecondary" ,
Description : "Enable Grafana to write alert state history to an external Loki instance in addition to Grafana annotations." ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-31 02:53:21 +08:00
Owner : grafanaAlertingSquad ,
} ,
{
Name : "alertStateHistoryLokiPrimary" ,
Description : "Enable a remote Loki instance as the primary source for state history reads." ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-31 02:53:21 +08:00
Owner : grafanaAlertingSquad ,
} ,
{
Name : "alertStateHistoryLokiOnly" ,
Description : "Disable Grafana alerts from emitting annotations when a remote Loki instance is available." ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-31 02:53:21 +08:00
Owner : grafanaAlertingSquad ,
} ,
2023-03-31 21:38:09 +08:00
{
Name : "unifiedRequestLog" ,
Description : "Writes error logs to the request logger" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-03-31 21:38:09 +08:00
Owner : grafanaBackendPlatformSquad ,
} ,
2023-04-04 00:53:38 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "renderAuthJWT" ,
Description : "Uses JWT-based auth for rendering instead of relying on remote cache" ,
Stage : FeatureStagePublicPreview ,
Owner : grafanaAsCodeSquad ,
HideFromAdminPage : true ,
2023-04-04 00:53:38 +08:00
} ,
2023-06-06 21:12:09 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "refactorVariablesTimeRange" ,
Description : "Refactor time range variables flow to reduce number of API calls made when query variables are chained" ,
Stage : FeatureStagePublicPreview ,
Owner : grafanaDashboardsSquad ,
HideFromAdminPage : true , // Non-feature, used to test out a bug fix that impacts the performance of template variables.
2023-06-06 21:12:09 +08:00
} ,
2023-04-12 20:20:43 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "enableElasticsearchBackendQuerying" ,
Description : "Enable the processing of queries and responses in the Elasticsearch data source through backend" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaObservabilityLogsSquad ,
Expression : "true" , // enabled by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-04-12 20:20:43 +08:00
} ,
2023-05-05 08:35:10 +08:00
{
Name : "faroDatasourceSelector" ,
2023-05-23 22:42:22 +08:00
Description : "Enable the data source selector within the Frontend Apps section of the Frontend Observability" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStagePublicPreview ,
2023-05-05 08:35:10 +08:00
FrontendOnly : true ,
Owner : appO11ySquad ,
} ,
2023-04-24 22:46:31 +08:00
{
Name : "enableDatagridEditing" ,
Description : "Enables the edit functionality in the datagrid panel" ,
FrontendOnly : true ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStagePublicPreview ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-04-24 22:46:31 +08:00
} ,
2023-05-10 21:37:04 +08:00
{
Name : "extraThemes" ,
Description : "Enables extra themes" ,
FrontendOnly : true ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-06-05 19:24:17 +08:00
Owner : grafanaFrontendPlatformSquad ,
2023-05-10 21:37:04 +08:00
} ,
2023-06-02 18:52:36 +08:00
{
Name : "lokiPredefinedOperations" ,
Description : "Adds predefined query operations to Loki query editor" ,
FrontendOnly : true ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-06-02 18:52:36 +08:00
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-06-05 16:51:36 +08:00
{
Name : "pluginsFrontendSandbox" ,
Description : "Enables the plugins frontend sandbox" ,
2023-06-09 00:16:55 +08:00
Stage : FeatureStageExperimental ,
2023-06-05 16:51:36 +08:00
FrontendOnly : true ,
Owner : grafanaPluginsPlatformSquad ,
} ,
2023-07-06 22:43:20 +08:00
{
Name : "dashboardEmbed" ,
Description : "Allow embedding dashboard for external use in Code editors" ,
FrontendOnly : true ,
Stage : FeatureStageExperimental ,
Owner : grafanaAsCodeSquad ,
} ,
2023-07-05 19:48:25 +08:00
{
Name : "frontendSandboxMonitorOnly" ,
Description : "Enables monitor only in the plugin frontend sandbox (if enabled)" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaPluginsPlatformSquad ,
} ,
2023-06-07 00:28:52 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "sqlDatasourceDatabaseSelection" ,
Description : "Enables previous SQL data source dataset dropdown behavior" ,
FrontendOnly : true ,
Stage : FeatureStagePublicPreview ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-11-15 01:04:54 +08:00
HideFromAdminPage : true ,
2023-06-07 00:28:52 +08:00
} ,
2023-07-21 20:03:56 +08:00
{
Name : "lokiFormatQuery" ,
Description : "Enables the ability to format Loki queries" ,
FrontendOnly : true ,
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-06-14 20:34:22 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "recordedQueriesMulti" ,
Description : "Enables writing multiple items from a single query within Recorded Queries" ,
Stage : FeatureStageGeneralAvailability ,
Expression : "true" ,
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : false ,
2023-06-14 20:34:22 +08:00
} ,
Plugins: Angular detector: Remote patterns fetching (#69843)
* Plugins: Angular detector: Remote patterns fetching
* Renamed PatternType to GCOMPatternType
* Renamed files
* Renamed more files
* Moved files again
* Add type checks, unexport GCOM structs
* Cache failures, update log messages, fix GCOM URL
* Fail silently for unknown pattern types, update docstrings
* Fix tests
* Rename gcomPattern.Value to gcomPattern.Pattern
* Refactoring
* Add FlagPluginsRemoteAngularDetectionPatterns feature flag
* Fix tests
* Re-generate feature flags
* Add TestProvideInspector, renamed TestDefaultStaticDetectorsInspector
* Add TestProvideInspector
* Add TestContainsBytesDetector and TestRegexDetector
* Renamed getter to provider
* More tests
* TestStaticDetectorsProvider, TestSequenceDetectorsProvider
* GCOM tests
* Lint
* Made detector.detect unexported, updated docstrings
* Allow changing grafana.com URL
* Fix API path, add more logs
* Update tryUpdateRemoteDetectors docstring
* Use angulardetector http client
* Return false, nil if module.js does not exist
* Chore: Split angualrdetector into angularinspector and angulardetector packages
Moved files around, changed references and fixed tests:
- Split the old angulardetector package into angular/angulardetector and angular/angularinspector
- angulardetector provides the detection structs/interfaces (Detector, DetectorsProvider...)
- angularinspector provides the actual angular detection service used directly in pluginsintegration
- Exported most of the stuff that was private and now put into angulardetector, as it is not required by angularinspector
* Renamed detector.go -> angulardetector.go and inspector.go -> angularinspector.go
Forgot to rename those two files to match the package's names
* Renamed angularinspector.ProvideInspector to angularinspector.ProvideService
* Renamed "harcoded" to "static" and "remote" to "dynamic"
from PR review, matches the same naming schema used for signing keys fetching
* Fix merge conflict on updated angular patterns
* Removed GCOM cache
* Renamed Detect to DetectAngular and Detector to AngularDetector
* Fix call to NewGCOMDetectorsProvider in newDynamicInspector
* Removed unused test function newError500GCOMScenario
* Added angularinspector service definition in pluginsintegration
* Moved dynamic inspector into pluginsintegration
* Move gcom angulardetectorsprovider into pluginsintegration
* Log errUnknownPatternType at debug level
* re-generate feature flags
* fix error log
2023-06-26 21:33:21 +08:00
{
Name : "pluginsDynamicAngularDetectionPatterns" ,
Description : "Enables fetching Angular detection patterns for plugins from GCOM and fallback to hardcoded ones" ,
2024-03-22 00:22:06 +08:00
Stage : FeatureStageGeneralAvailability ,
Plugins: Angular detector: Remote patterns fetching (#69843)
* Plugins: Angular detector: Remote patterns fetching
* Renamed PatternType to GCOMPatternType
* Renamed files
* Renamed more files
* Moved files again
* Add type checks, unexport GCOM structs
* Cache failures, update log messages, fix GCOM URL
* Fail silently for unknown pattern types, update docstrings
* Fix tests
* Rename gcomPattern.Value to gcomPattern.Pattern
* Refactoring
* Add FlagPluginsRemoteAngularDetectionPatterns feature flag
* Fix tests
* Re-generate feature flags
* Add TestProvideInspector, renamed TestDefaultStaticDetectorsInspector
* Add TestProvideInspector
* Add TestContainsBytesDetector and TestRegexDetector
* Renamed getter to provider
* More tests
* TestStaticDetectorsProvider, TestSequenceDetectorsProvider
* GCOM tests
* Lint
* Made detector.detect unexported, updated docstrings
* Allow changing grafana.com URL
* Fix API path, add more logs
* Update tryUpdateRemoteDetectors docstring
* Use angulardetector http client
* Return false, nil if module.js does not exist
* Chore: Split angualrdetector into angularinspector and angulardetector packages
Moved files around, changed references and fixed tests:
- Split the old angulardetector package into angular/angulardetector and angular/angularinspector
- angulardetector provides the detection structs/interfaces (Detector, DetectorsProvider...)
- angularinspector provides the actual angular detection service used directly in pluginsintegration
- Exported most of the stuff that was private and now put into angulardetector, as it is not required by angularinspector
* Renamed detector.go -> angulardetector.go and inspector.go -> angularinspector.go
Forgot to rename those two files to match the package's names
* Renamed angularinspector.ProvideInspector to angularinspector.ProvideService
* Renamed "harcoded" to "static" and "remote" to "dynamic"
from PR review, matches the same naming schema used for signing keys fetching
* Fix merge conflict on updated angular patterns
* Removed GCOM cache
* Renamed Detect to DetectAngular and Detector to AngularDetector
* Fix call to NewGCOMDetectorsProvider in newDynamicInspector
* Removed unused test function newError500GCOMScenario
* Added angularinspector service definition in pluginsintegration
* Moved dynamic inspector into pluginsintegration
* Move gcom angulardetectorsprovider into pluginsintegration
* Log errUnknownPatternType at debug level
* re-generate feature flags
* fix error log
2023-06-26 21:33:21 +08:00
FrontendOnly : false ,
Owner : grafanaPluginsPlatformSquad ,
2024-03-22 00:22:06 +08:00
Expression : "true" , // enabled by default
Plugins: Angular detector: Remote patterns fetching (#69843)
* Plugins: Angular detector: Remote patterns fetching
* Renamed PatternType to GCOMPatternType
* Renamed files
* Renamed more files
* Moved files again
* Add type checks, unexport GCOM structs
* Cache failures, update log messages, fix GCOM URL
* Fail silently for unknown pattern types, update docstrings
* Fix tests
* Rename gcomPattern.Value to gcomPattern.Pattern
* Refactoring
* Add FlagPluginsRemoteAngularDetectionPatterns feature flag
* Fix tests
* Re-generate feature flags
* Add TestProvideInspector, renamed TestDefaultStaticDetectorsInspector
* Add TestProvideInspector
* Add TestContainsBytesDetector and TestRegexDetector
* Renamed getter to provider
* More tests
* TestStaticDetectorsProvider, TestSequenceDetectorsProvider
* GCOM tests
* Lint
* Made detector.detect unexported, updated docstrings
* Allow changing grafana.com URL
* Fix API path, add more logs
* Update tryUpdateRemoteDetectors docstring
* Use angulardetector http client
* Return false, nil if module.js does not exist
* Chore: Split angualrdetector into angularinspector and angulardetector packages
Moved files around, changed references and fixed tests:
- Split the old angulardetector package into angular/angulardetector and angular/angularinspector
- angulardetector provides the detection structs/interfaces (Detector, DetectorsProvider...)
- angularinspector provides the actual angular detection service used directly in pluginsintegration
- Exported most of the stuff that was private and now put into angulardetector, as it is not required by angularinspector
* Renamed detector.go -> angulardetector.go and inspector.go -> angularinspector.go
Forgot to rename those two files to match the package's names
* Renamed angularinspector.ProvideInspector to angularinspector.ProvideService
* Renamed "harcoded" to "static" and "remote" to "dynamic"
from PR review, matches the same naming schema used for signing keys fetching
* Fix merge conflict on updated angular patterns
* Removed GCOM cache
* Renamed Detect to DetectAngular and Detector to AngularDetector
* Fix call to NewGCOMDetectorsProvider in newDynamicInspector
* Removed unused test function newError500GCOMScenario
* Added angularinspector service definition in pluginsintegration
* Moved dynamic inspector into pluginsintegration
* Move gcom angulardetectorsprovider into pluginsintegration
* Log errUnknownPatternType at debug level
* re-generate feature flags
* fix error log
2023-06-26 21:33:21 +08:00
} ,
2023-06-27 18:22:13 +08:00
{
Name : "vizAndWidgetSplit" ,
2023-10-03 22:43:27 +08:00
Description : "Split panels between visualizations and widgets" ,
2023-06-27 18:22:13 +08:00
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
} ,
2023-07-06 03:39:49 +08:00
{
Name : "prometheusIncrementalQueryInstrumentation" ,
Description : "Adds RudderStack events to incremental queries" ,
FrontendOnly : true ,
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2023-07-12 21:52:42 +08:00
{
Name : "logsExploreTableVisualisation" ,
Description : "A table visualisation for logs in Explore" ,
2024-02-13 00:12:05 +08:00
Stage : FeatureStageGeneralAvailability ,
Expression : "true" , // enabled by default,
2023-07-12 21:52:42 +08:00
FrontendOnly : true ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-07-06 23:06:11 +08:00
{
Name : "awsDatasourcesTempCredentials" ,
Description : "Support temporary security credentials in AWS plugins for Grafana Cloud customers" ,
Stage : FeatureStageExperimental ,
Owner : awsDatasourcesSquad ,
} ,
2023-07-13 00:35:49 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "transformationsRedesign" ,
Description : "Enables the transformations redesign" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Expression : "true" , // enabled by default
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 02:55:21 +08:00
AllowSelfServe : true ,
2023-07-13 00:35:49 +08:00
} ,
2023-07-14 01:37:50 +08:00
{
Name : "mlExpressions" ,
Description : "Enable support for Machine Learning in server-side expressions" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
} ,
2023-07-14 22:10:46 +08:00
{
2023-07-26 21:33:16 +08:00
Name : "traceQLStreaming" ,
Description : "Enables response streaming of TraceQL queries of the Tempo data source" ,
2024-03-12 22:10:13 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-07-14 22:10:46 +08:00
FrontendOnly : true ,
Owner : grafanaObservabilityTracesAndProfilingSquad ,
} ,
2023-08-28 22:02:12 +08:00
{
Name : "metricsSummary" ,
Description : "Enables metrics summary queries in the Tempo data source" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaObservabilityTracesAndProfilingSquad ,
} ,
2023-10-07 02:55:22 +08:00
{
2023-12-21 02:28:56 +08:00
Name : "grafanaAPIServerWithExperimentalAPIs" ,
Description : "Register experimental APIs with the k8s API server" ,
Stage : FeatureStageExperimental ,
RequiresRestart : true ,
RequiresDevMode : true ,
Owner : grafanaAppPlatformSquad ,
2023-10-07 02:55:22 +08:00
} ,
Storage: Unified Storage based on Entity API (#71977)
* first round of entityapi updates
- quote column names and clean up insert/update queries
- replace grn with guid
- streamline table structure
fixes
streamline entity history
move EntitySummary into proto
remove EntitySummary
add guid to json
fix tests
change DB_Uuid to DB_NVarchar
fix folder test
convert interface to any
more cleanup
start entity store under grafana-apiserver dskit target
CRUD working, kind of
rough cut of wiring entity api to kube-apiserver
fake grafana user in context
add key to entity
list working
revert unnecessary changes
move entity storage files to their own package, clean up
use accessor to read/write grafana annotations
implement separate Create and Update functions
* go mod tidy
* switch from Kind to resource
* basic grpc storage server
* basic support for grpc entity store
* don't connect to database unless it's needed, pass user identity over grpc
* support getting user from k8s context, fix some mysql issues
* assign owner to snowflake dependency
* switch from ulid to uuid for guids
* cleanup, rename Search to List
* remove entityListResult
* EntityAPI: remove extra user abstraction (#79033)
* remove extra user abstraction
* add test stub (but
* move grpc context setup into client wrapper, fix lint issue
* remove unused constants
* remove custom json stuff
* basic list filtering, add todo
* change target to storage-server, allow entityStore flag in prod mode
* fix issue with Update
* EntityAPI: make test work, need to resolve expected differences (#79123)
* make test work, need to resolve expected differences
* remove the fields not supported by legacy
* sanitize out the bits legacy does not support
* sanitize out the bits legacy does not support
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* update feature toggle generated files
* remove unused http headers
* update feature flag strategy
* devmode
* update readme
* spelling
* readme
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-12-07 04:21:21 +08:00
{
Name : "grafanaAPIServerEnsureKubectlAccess" ,
Description : "Start an additional https handler and write kubectl options" ,
Stage : FeatureStageExperimental ,
RequiresDevMode : true ,
RequiresRestart : true ,
Owner : grafanaAppPlatformSquad ,
} ,
2023-07-19 04:43:32 +08:00
{
Name : "featureToggleAdminPage" ,
Description : "Enable admin page for managing feature toggles from the Grafana front-end" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaOperatorExperienceSquad ,
RequiresRestart : true ,
} ,
2023-07-21 23:34:07 +08:00
{
Name : "awsAsyncQueryCaching" ,
2024-01-18 05:53:25 +08:00
Description : "Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled" ,
2024-01-06 03:56:30 +08:00
Stage : FeatureStageGeneralAvailability ,
Expression : "true" , // enabled by default
2023-07-21 23:34:07 +08:00
Owner : awsDatasourcesSquad ,
} ,
2023-08-02 15:39:25 +08:00
{
Name : "permissionsFilterRemoveSubquery" ,
Description : "Alternative permission filter implementation that does not use subqueries for fetching the dashboard folder" ,
Stage : FeatureStageExperimental ,
Owner : grafanaBackendPlatformSquad ,
} ,
2023-07-27 00:09:53 +08:00
{
2023-11-03 23:59:07 +08:00
Name : "prometheusConfigOverhaulAuth" ,
Description : "Update the Prometheus configuration page with the new auth component" ,
Owner : grafanaObservabilityMetricsSquad ,
Stage : FeatureStageGeneralAvailability ,
Expression : "true" , // on by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : false ,
2023-07-27 00:09:53 +08:00
} ,
2023-07-27 00:44:12 +08:00
{
Name : "configurableSchedulerTick" ,
Description : "Enable changing the scheduler base interval via configuration option unified_alerting.scheduler_tick_interval" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
RequiresRestart : true ,
HideFromDocs : true ,
} ,
2023-08-03 00:27:43 +08:00
{
Name : "influxdbSqlSupport" ,
Description : "Enable InfluxDB SQL query language support with new querying UI" ,
2023-12-19 21:12:36 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-08-03 00:27:43 +08:00
FrontendOnly : false ,
Owner : grafanaObservabilityMetricsSquad ,
2023-12-19 21:12:36 +08:00
RequiresRestart : true ,
AllowSelfServe : true ,
Expression : "true" , // enabled by default
2023-08-03 00:27:43 +08:00
} ,
2023-08-15 22:27:15 +08:00
{
Name : "alertingNoDataErrorExecution" ,
Description : "Changes how Alerting state manager handles execution of NoData/Error" ,
2024-01-11 13:34:18 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-08-15 22:27:15 +08:00
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
RequiresRestart : true ,
2024-01-11 13:34:18 +08:00
Expression : "true" , // enabled by default
2023-08-15 22:27:15 +08:00
} ,
2023-08-29 22:05:47 +08:00
{
Name : "angularDeprecationUI" ,
2024-02-16 20:46:14 +08:00
Description : "Display Angular warnings in dashboards and panels" ,
Stage : FeatureStageGeneralAvailability ,
2023-08-29 22:05:47 +08:00
FrontendOnly : true ,
Owner : grafanaPluginsPlatformSquad ,
2024-02-16 20:46:14 +08:00
Expression : "true" , // Enabled by default
2023-08-29 22:05:47 +08:00
} ,
2023-08-31 04:22:05 +08:00
{
2023-11-18 00:51:51 +08:00
Name : "dashgpt" ,
Description : "Enable AI powered features in dashboards" ,
2024-03-22 00:58:27 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-11-18 00:51:51 +08:00
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
2024-03-22 00:58:27 +08:00
Expression : "true" , // enabled by default
2023-08-31 04:22:05 +08:00
} ,
2024-03-05 20:01:31 +08:00
{
Name : "aiGeneratedDashboardChanges" ,
Description : "Enable AI powered features for dashboards to auto-summary changes when saving" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
} ,
2023-08-31 15:47:47 +08:00
{
Name : "reportingRetries" ,
Description : "Enables rendering retries for the reporting feature" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : false ,
Owner : grafanaSharingSquad ,
RequiresRestart : true ,
} ,
2023-09-08 04:02:07 +08:00
{
Name : "sseGroupByDatasource" ,
2024-01-19 02:07:57 +08:00
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." ,
2023-09-08 04:02:07 +08:00
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2023-10-12 07:30:50 +08:00
{
Name : "libraryPanelRBAC" ,
Description : "Enables RBAC support for library panels" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaDashboardsSquad ,
RequiresRestart : true ,
} ,
2023-09-19 17:34:01 +08:00
{
Name : "lokiRunQueriesInParallel" ,
Description : "Enables running Loki queries in parallel" ,
Stage : FeatureStagePrivatePreview ,
FrontendOnly : false ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-09-14 02:32:01 +08:00
{
Name : "wargamesTesting" ,
Description : "Placeholder feature flag for internal testing" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : hostedGrafanaTeam ,
} ,
2023-09-14 20:58:04 +08:00
{
2023-11-15 01:04:54 +08:00
Name : "alertingInsights" ,
Description : "Show the new alerting insights landing page" ,
FrontendOnly : true ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaAlertingSquad ,
Expression : "true" , // enabled by default
2023-12-19 02:55:21 +08:00
AllowSelfServe : false ,
2023-11-15 01:04:54 +08:00
HideFromAdminPage : true , // This is moving away from being a feature toggle.
2023-09-14 20:58:04 +08:00
} ,
2023-09-22 16:50:13 +08:00
{
Name : "externalCorePlugins" ,
Description : "Allow core plugins to be loaded as external" ,
Stage : FeatureStageExperimental ,
Owner : grafanaPluginsPlatformSquad ,
} ,
2023-09-21 19:36:32 +08:00
{
Name : "pluginsAPIMetrics" ,
Description : "Sends metrics of public grafana packages usage by plugins" ,
FrontendOnly : true ,
Stage : FeatureStageExperimental ,
Owner : grafanaPluginsPlatformSquad ,
} ,
2023-09-25 23:21:28 +08:00
{
2023-12-12 16:26:45 +08:00
Name : "idForwarding" ,
Description : "Generate signed id token for identity that can be forwarded to plugins and external services" ,
Stage : FeatureStageExperimental ,
Owner : identityAccessTeam ,
2023-09-25 23:21:28 +08:00
} ,
2023-09-28 15:26:37 +08:00
{
2024-02-05 16:31:20 +08:00
Name : "externalServiceAccounts" ,
Description : "Automatic service account and token setup for plugins" ,
HideFromAdminPage : true ,
Stage : FeatureStagePublicPreview ,
Owner : identityAccessTeam ,
2023-09-28 15:26:37 +08:00
} ,
2023-10-09 13:19:08 +08:00
{
Name : "panelMonitoring" ,
Description : "Enables panel monitoring through logs and measurements" ,
2024-02-16 13:29:59 +08:00
Stage : FeatureStageGeneralAvailability ,
Expression : "true" , // enabled by default
2023-10-09 13:19:08 +08:00
Owner : grafanaDatavizSquad ,
FrontendOnly : true ,
} ,
2023-10-04 02:23:55 +08:00
{
Name : "enableNativeHTTPHistogram" ,
Description : "Enables native HTTP Histograms" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : hostedGrafanaTeam ,
} ,
2023-10-14 02:17:12 +08:00
{
Name : "formatString" ,
Description : "Enable format string transformer" ,
2024-01-06 02:39:02 +08:00
Stage : FeatureStagePublicPreview ,
2023-10-14 02:17:12 +08:00
FrontendOnly : true ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-10-14 02:17:12 +08:00
} ,
2023-10-04 22:28:46 +08:00
{
Name : "transformationsVariableSupport" ,
Description : "Allows using variables in transformations" ,
FrontendOnly : true ,
2023-11-24 20:22:54 +08:00
Stage : FeatureStagePublicPreview ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-10-04 22:28:46 +08:00
} ,
2023-10-06 03:00:36 +08:00
{
2023-11-09 03:14:05 +08:00
Name : "kubernetesPlaylists" ,
Description : "Use the kubernetes API in the frontend for playlists, and route /api/playlist requests to k8s" ,
2023-11-01 01:26:39 +08:00
Stage : FeatureStageExperimental ,
Owner : grafanaAppPlatformSquad ,
RequiresRestart : true , // changes the API routing
} ,
2023-12-06 06:31:49 +08:00
{
Name : "kubernetesSnapshots" ,
2024-02-03 06:19:45 +08:00
Description : "Routes snapshot requests from /api to the /apis endpoint" ,
2023-12-06 06:31:49 +08:00
Stage : FeatureStageExperimental ,
Owner : grafanaAppPlatformSquad ,
RequiresRestart : true , // changes the API routing
} ,
2024-02-01 02:36:51 +08:00
{
Name : "kubernetesQueryServiceRewrite" ,
Description : "Rewrite requests targeting /ds/query to the query service" ,
Stage : FeatureStageExperimental ,
Owner : grafanaAppPlatformSquad ,
RequiresRestart : true , // changes the API routing
RequiresDevMode : true ,
} ,
2023-10-21 03:09:41 +08:00
{
Name : "cloudWatchBatchQueries" ,
Description : "Runs CloudWatch metrics queries as separate batches" ,
Stage : FeatureStagePublicPreview ,
Owner : awsDatasourcesSquad ,
} ,
2023-10-10 22:51:50 +08:00
{
Name : "recoveryThreshold" ,
Description : "Enables feature recovery threshold (aka hysteresis) for threshold server-side expression" ,
2024-01-06 01:59:41 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-10-10 22:51:50 +08:00
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
RequiresRestart : true ,
2024-01-06 01:59:41 +08:00
Expression : "true" ,
2023-10-10 22:51:50 +08:00
} ,
2023-11-17 00:06:14 +08:00
{
Name : "lokiStructuredMetadata" ,
Description : "Enables the loki data source to request structured metadata from the Loki server" ,
2024-02-15 00:24:56 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-11-17 00:06:14 +08:00
FrontendOnly : false ,
Owner : grafanaObservabilityLogsSquad ,
2024-02-15 00:24:56 +08:00
Expression : "true" ,
2023-11-17 00:06:14 +08:00
} ,
2023-10-17 18:23:54 +08:00
{
Name : "teamHttpHeaders" ,
2024-03-02 01:05:59 +08:00
Description : "Enables Team LBAC for datasources to apply team headers to the client requests" ,
Stage : FeatureStagePublicPreview ,
2023-10-17 18:23:54 +08:00
FrontendOnly : false ,
2023-11-03 20:20:39 +08:00
Owner : identityAccessTeam ,
2023-10-17 18:23:54 +08:00
} ,
2023-10-12 16:59:10 +08:00
{
Name : "awsDatasourcesNewFormStyling" ,
Description : "Applies new form styling for configuration and query editors in AWS plugins" ,
2024-01-30 19:25:16 +08:00
Stage : FeatureStagePublicPreview ,
2023-10-12 16:59:10 +08:00
FrontendOnly : true ,
Owner : awsDatasourcesSquad ,
} ,
2023-10-13 00:56:49 +08:00
{
Name : "cachingOptimizeSerializationMemoryUsage" ,
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 : FeatureStageExperimental ,
Owner : grafanaOperatorExperienceSquad ,
FrontendOnly : false ,
} ,
2023-10-13 20:04:24 +08:00
{
Name : "panelTitleSearchInV1" ,
Description : "Enable searching for dashboards using panel title in search v1" ,
RequiresDevMode : true ,
Stage : FeatureStageExperimental ,
Owner : grafanaBackendPlatformSquad ,
} ,
2023-10-18 21:17:03 +08:00
{
Name : "managedPluginsInstall" ,
Description : "Install managed plugins directly from plugins catalog" ,
2024-03-19 23:34:46 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-10-18 21:17:03 +08:00
RequiresDevMode : false ,
Owner : grafanaPluginsPlatformSquad ,
2024-03-19 23:34:46 +08:00
Expression : "true" , // enabled by default
2023-10-18 21:17:03 +08:00
} ,
Prometheus: PromQAIL frontend, drawer, feature toggle, workflow, etc. (#73020)
* initial commit for PromQAIL
* add feature toggle and start button
* add drawer
* set up drawer and state
* fix styles and start the conditional text display
* add data info list going to ai
* add logos and style
* metric display table style, neeed to make responsive
* make feature toggle frontend only
* add logic for want prompt for list or not, add helpers, addquerysuggestion type
* make query suggestion component
* add buttons to add or refine prompt
* refactor logic to add interactions to have multiple AI or historical interactions
* refactor and enable multiple questions, all flow
* add colorful AI icon to drawer open button
* fix linting
* refactor for hooking up promQail app and only giving one suggestion
* design fixes
* fix next prompt button styling
* historical suggestions give us 5, fixed that and some design things
* hook up the api, provide defense filler if it's down, refactor lots
* use query, fix linting
* add metadata to explain for ai suggestions
* styling fixes
* give metadata for historical suggestions by parsing query on the fly
* no prompt field to query-suggestion endpoint if prompt is empty
* fix linting
* use suggest rte for historical list, fix long code style
* use suggest rte for historical list, fix long code style
* fix historical bug
* added prompt file
* updated llm logic in explainer helper
* bump @grafana/experimental from 1.7.0 to 1.7.2
* use llmservice and vectorservice
* cleanup prompts + streaming explainer
* promqail feature toggle: fix re-order
* PromQL non-llm failback recommendation logic (#75469)
* added template recommendation logic directly in helpers
* also added selected labels to recommendation
* PromQail: query gen: fix prompt formatting and fetch metric labels to be used (#75450)
* PromQail: query gen: fix prompt formatting and fetch metric labels to be used
* Code fixes as suggested
* Use newly decided collection name for promql templates
* Prometheus: Promqail tests and bug fixes (#75852)
* add tests for drawer
* refine one prompt at a time, fix css
* scroll into view on interaction change
* fix styles for light
* disable prompt input after getting sugestions for that interaction
* make buttons disappear after selecting refine prompt or show historical queries to prevent user from clicking many times
* fix border radius
* fix new eslint rule about css requiring objects and not template literals
* add scrollIntoView for test
* grafana_prometheus_promqail_explanation_feedback - add feedback rudderstack interaction for explanation
* add form link to feedback for query suggestions
* fix bugs
* for prettier
* PromQL Builder Explainer: Added promql documentation and updated prompt (#75593)
* added promql documentation and updated prompt
* refactor prompt generation into isolated function
* updated prompt to answer with a question
* removed commented code
* updated metadata logic
* updated documentation body logic
* Prometheus: PromQAIL UI fixes (#76654)
* align buttons at 16px
* only autoscroll when an interaction has been added or the suggestions have been updated
* add 12px below explain for suggested queries
* add . after suggestion number
* fix linting error
* Prometheus: PromQAIL feedback improvements (#76711)
* align buttons at 16px
* only autoscroll when an interaction has been added or the suggestions have been updated
* add 12px below explain for suggested queries
* add . after suggestion number
* add text indication for explanation feedback
* add form for suggestion feedback, add form for not helpful explanation feedback
* fix linting error
* make radio button feedback required
* required text, padding additions, thank you for your feedback
* PromQL Builder Suggestion: Added type level templates and removed explainer steps for fallback suggestion logic (#75764)
* adding more detailed templates to promql fallback suggest
* remove debug logs
* added missing explain logic
* Fix brendan's type issue
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
* make yarn.lock equal to current in main
* fix feature toggles
* fix prettier issues
---------
Co-authored-by: Edward Qian <edward.qian@grafana.com>
Co-authored-by: Yasir Ekinci <yas.ekinci@grafana.com>
Co-authored-by: Edward Qian <edward.c.qian@gmail.com>
Co-authored-by: Gerry Boland <gerboland@users.noreply.github.com>
2023-10-19 23:45:32 +08:00
{
Name : "prometheusPromQAIL" ,
Description : "Prometheus and AI/ML to assist users in creating a query" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2023-11-03 22:39:58 +08:00
{
Name : "addFieldFromCalculationStatFunctions" ,
Description : "Add cumulative and window functions to the add field from calculation transformation" ,
2024-01-06 02:39:02 +08:00
Stage : FeatureStagePublicPreview ,
2023-11-03 22:39:58 +08:00
FrontendOnly : true ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-11-03 22:39:58 +08:00
} ,
2023-10-31 00:27:08 +08:00
{
Name : "alertmanagerRemoteSecondary" ,
Description : "Enable Grafana to sync configuration and state with a remote Alertmanager." ,
Stage : FeatureStageExperimental ,
Owner : grafanaAlertingSquad ,
} ,
{
Name : "alertmanagerRemotePrimary" ,
Description : "Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager." ,
Stage : FeatureStageExperimental ,
Owner : grafanaAlertingSquad ,
} ,
{
Name : "alertmanagerRemoteOnly" ,
Description : "Disable the internal Alertmanager and only use the external one defined." ,
Stage : FeatureStageExperimental ,
Owner : grafanaAlertingSquad ,
} ,
2023-10-31 21:30:13 +08:00
{
Name : "annotationPermissionUpdate" ,
2024-03-22 06:45:23 +08:00
Description : "Change the way annotation permissions work by scoping them to folders and dashboards." ,
Stage : FeatureStageGeneralAvailability ,
2023-10-31 21:30:13 +08:00
RequiresDevMode : false ,
2024-03-22 06:45:23 +08:00
Expression : "true" , // enabled by default
2023-11-03 20:20:39 +08:00
Owner : identityAccessTeam ,
2023-10-31 21:30:13 +08:00
} ,
2023-11-02 23:47:42 +08:00
{
Name : "extractFieldsNameDeduplication" ,
Description : "Make sure extracted field names are unique in the dataframe" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-11-02 23:47:42 +08:00
} ,
2023-11-03 03:02:25 +08:00
{
Name : "dashboardSceneForViewers" ,
Description : "Enables dashboard rendering using Scenes for viewer roles" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
} ,
2024-02-11 16:08:47 +08:00
{
Name : "dashboardSceneSolo" ,
Description : "Enables rendering dashboards using scenes for solo panels" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
} ,
2023-11-13 16:51:21 +08:00
{
Name : "dashboardScene" ,
Description : "Enables dashboard rendering using scenes for all roles" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
} ,
2023-11-03 20:15:54 +08:00
{
Name : "panelFilterVariable" ,
Description : "Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
HideFromDocs : true ,
} ,
2023-11-06 21:39:22 +08:00
{
Name : "pdfTables" ,
Description : "Enables generating table data as PDF in reporting" ,
2024-01-05 22:57:13 +08:00
Stage : FeatureStagePublicPreview ,
2023-11-06 21:39:22 +08:00
FrontendOnly : false ,
Owner : grafanaSharingSquad ,
} ,
2023-11-08 17:50:01 +08:00
{
2024-02-23 00:33:27 +08:00
Name : "ssoSettingsApi" ,
Description : "Enables the SSO settings API and the OAuth configuration UIs in Grafana" ,
Stage : FeatureStagePublicPreview ,
AllowSelfServe : true ,
FrontendOnly : false ,
Owner : identityAccessTeam ,
2023-11-08 17:50:01 +08:00
} ,
2024-01-03 03:52:21 +08:00
{
Name : "canvasPanelPanZoom" ,
Description : "Allow pan and zoom in canvas panel" ,
2024-01-06 09:40:11 +08:00
Stage : FeatureStagePublicPreview ,
2024-01-03 03:52:21 +08:00
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
2023-11-09 18:54:03 +08:00
{
Name : "logsInfiniteScrolling" ,
Description : "Enables infinite scrolling for the Logs panel in Explore and Dashboards" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-11-09 22:31:07 +08:00
{
Name : "flameGraphItemCollapsing" ,
Description : "Allow collapsing of flame graph items" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaObservabilityTracesAndProfilingSquad ,
} ,
2023-11-15 19:28:29 +08:00
{
Name : "datatrails" ,
Description : "Enables the new core app datatrails" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaDashboardsSquad ,
HideFromDocs : true ,
} ,
2023-11-10 21:14:39 +08:00
{
Name : "alertingSimplifiedRouting" ,
2024-02-16 06:58:34 +08:00
Description : "Enables users to easily configure alert notifications by specifying a contact point directly when editing or creating an alert rule" ,
Stage : FeatureStagePublicPreview ,
2023-11-10 21:14:39 +08:00
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
} ,
2023-11-16 17:48:10 +08:00
{
Name : "logRowsPopoverMenu" ,
Description : "Enable filtering menu displayed when text of a log line is selected" ,
2024-01-09 00:03:39 +08:00
Stage : FeatureStageGeneralAvailability ,
2023-11-16 17:48:10 +08:00
FrontendOnly : true ,
2024-01-09 00:03:39 +08:00
Expression : "true" ,
2023-11-16 17:48:10 +08:00
Owner : grafanaObservabilityLogsSquad ,
} ,
2023-11-16 01:09:14 +08:00
{
Name : "pluginsSkipHostEnvVars" ,
Description : "Disables passing host environment variable to plugin processes" ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaPluginsPlatformSquad ,
} ,
2023-12-13 17:33:14 +08:00
{
Name : "tableSharedCrosshair" ,
Description : "Enables shared crosshair in table panel" ,
FrontendOnly : true ,
Stage : FeatureStageExperimental ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-12-13 17:33:14 +08:00
} ,
2023-11-24 22:49:16 +08:00
{
Name : "regressionTransformation" ,
Description : "Enables regression analysis transformation" ,
2024-01-06 02:39:02 +08:00
Stage : FeatureStagePublicPreview ,
2023-11-24 22:49:16 +08:00
FrontendOnly : true ,
2024-02-10 08:24:08 +08:00
Owner : grafanaDatavizSquad ,
2023-11-24 22:49:16 +08:00
} ,
2023-12-19 04:43:16 +08:00
{
// this is mainly used a a way to quickly disable query hints as a safe guard for our infrastructure
Name : "lokiQueryHints" ,
Description : "Enables query hints for Loki" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Expression : "true" ,
Owner : grafanaObservabilityLogsSquad ,
AllowSelfServe : false ,
} ,
2024-01-18 13:32:44 +08:00
{
Name : "kubernetesFeatureToggles" ,
Description : "Use the kubernetes API for feature toggle management in the frontend" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaOperatorExperienceSquad ,
AllowSelfServe : false ,
HideFromAdminPage : true ,
} ,
2024-01-10 19:25:54 +08:00
{
Name : "enablePluginsTracingByDefault" ,
Description : "Enable plugin tracing for all external plugins" ,
FrontendOnly : false ,
2024-03-22 17:22:36 +08:00
Stage : FeatureStageGeneralAvailability ,
2024-01-10 19:25:54 +08:00
Owner : grafanaPluginsPlatformSquad ,
RequiresRestart : true ,
2024-03-22 17:22:36 +08:00
Expression : "true" , // enabled by default
2024-01-10 19:25:54 +08:00
} ,
2024-01-10 21:19:01 +08:00
{
Name : "cloudRBACRoles" ,
Description : "Enabled grafana cloud specific RBAC roles" ,
Stage : FeatureStageExperimental ,
Owner : identityAccessTeam ,
HideFromDocs : true ,
RequiresRestart : true ,
} ,
2024-01-11 04:52:58 +08:00
{
Name : "alertingQueryOptimization" ,
Description : "Optimizes eligible queries in order to reduce load on datasources" ,
Stage : FeatureStageGeneralAvailability ,
Owner : grafanaAlertingSquad ,
AllowSelfServe : false ,
} ,
2024-01-15 19:43:19 +08:00
{
Name : "newFolderPicker" ,
Description : "Enables the nested folder picker without having nested folders enabled" ,
Stage : FeatureStageExperimental ,
Owner : grafanaFrontendPlatformSquad ,
FrontendOnly : true ,
} ,
2024-01-19 02:48:11 +08:00
{
Name : "jitterAlertRulesWithinGroups" ,
Description : "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group" ,
FrontendOnly : false ,
2024-01-26 06:46:22 +08:00
Stage : FeatureStagePublicPreview ,
2024-01-19 02:48:11 +08:00
Owner : grafanaAlertingSquad ,
AllowSelfServe : false ,
HideFromDocs : true ,
HideFromAdminPage : false ,
RequiresRestart : true ,
} ,
2024-01-23 00:09:08 +08:00
{
Name : "onPremToCloudMigrations" ,
Description : "In-development feature that will allow users to easily migrate their on-prem Grafana instances to Grafana Cloud." ,
Stage : FeatureStageExperimental ,
Owner : grafanaOperatorExperienceSquad ,
} ,
2024-01-24 00:03:30 +08:00
{
Name : "alertingSaveStatePeriodic" ,
Description : "Writes the state periodically to the database, asynchronous to rule evaluation" ,
Stage : FeatureStagePrivatePreview ,
FrontendOnly : false ,
Owner : grafanaAlertingSquad ,
} ,
2024-01-30 04:22:17 +08:00
{
Name : "promQLScope" ,
Description : "In-development feature that will allow injection of labels into prometheus queries." ,
Stage : FeatureStageExperimental ,
Owner : grafanaObservabilityMetricsSquad ,
} ,
2024-02-28 05:16:00 +08:00
{
Name : "sqlExpressions" ,
Description : "Enables using SQL and DuckDB functions as Expressions." ,
Stage : FeatureStageExperimental ,
FrontendOnly : false ,
Owner : grafanaAppPlatformSquad ,
} ,
2024-02-01 00:26:12 +08:00
{
Name : "nodeGraphDotLayout" ,
Description : "Changed the layout algorithm for the node graph" ,
Stage : FeatureStageExperimental ,
FrontendOnly : true ,
Owner : grafanaObservabilityTracesAndProfilingSquad ,
} ,
2024-02-07 22:28:26 +08:00
{
Name : "groupToNestedTableTransformation" ,
Description : "Enables the group to nested table transformation" ,
Stage : FeatureStagePublicPreview ,
FrontendOnly : true ,
Owner : grafanaDatavizSquad ,
} ,
2024-02-08 20:09:34 +08:00
{
Name : "newPDFRendering" ,
2024-03-22 16:50:53 +08:00
Description : "New implementation for the dashboard-to-PDF rendering" ,
Stage : FeatureStagePublicPreview ,
2024-02-08 20:09:34 +08:00
Owner : grafanaSharingSquad ,
} ,
2024-02-13 04:59:35 +08:00
{
Name : "kubernetesAggregator" ,
Description : "Enable grafana aggregator" ,
Stage : FeatureStageExperimental ,
Owner : grafanaAppPlatformSquad ,
RequiresRestart : true ,
} ,
2024-02-17 08:59:11 +08:00
{
Name : "expressionParser" ,
Description : "Enable new expression parser" ,
Stage : FeatureStageExperimental ,
Owner : grafanaAppPlatformSquad ,
RequiresRestart : true ,
} ,
2024-02-15 01:18:04 +08:00
{
Name : "groupByVariable" ,
Description : "Enable groupBy variable support in scenes dashboards" ,
Stage : FeatureStageExperimental ,
Owner : grafanaDashboardsSquad ,
AllowSelfServe : false ,
HideFromDocs : true ,
HideFromAdminPage : true ,
} ,
2024-03-06 23:06:47 +08:00
{
Name : "betterPageScrolling" ,
Description : "Removes CustomScrollbar from the UI, relying on native browser scrollbars" ,
Stage : FeatureStageGeneralAvailability ,
FrontendOnly : true ,
Owner : grafanaFrontendPlatformSquad ,
Expression : "true" , // enabled by default
} ,
2024-03-05 23:41:19 +08:00
{
Name : "scopeFilters" ,
Description : "Enables the use of scope filters in Grafana" ,
FrontendOnly : false ,
Stage : FeatureStageExperimental ,
Owner : grafanaDashboardsSquad ,
RequiresRestart : false ,
AllowSelfServe : false ,
HideFromDocs : true ,
HideFromAdminPage : true ,
} ,
2024-03-14 19:04:45 +08:00
{
Name : "ssoSettingsSAML" ,
Description : "Use the new SSO Settings API to configure the SAML connector" ,
Stage : FeatureStageExperimental ,
Owner : identityAccessTeam ,
HideFromDocs : true ,
HideFromAdminPage : true ,
} ,
2022-01-27 01:44:20 +08:00
}
)
2024-02-10 07:34:12 +08:00
//go:embed toggles_gen.json
var f embed . FS
// Get the cached feature list (exposed as a k8s resource)
func GetEmbeddedFeatureList ( ) ( featuretoggle . FeatureList , error ) {
features := featuretoggle . FeatureList { }
body , err := f . ReadFile ( "toggles_gen.json" )
if err == nil {
err = json . Unmarshal ( body , & features )
}
return features , err
}