03d6d8f854
* Changes galore * Freedom 🗽 * Add feature flag * Latest changes * Basic auto cell type * Partially working bar-gauge * Brokenish but whatevs * Include the toggle doc * TableNG: Context menu (#94094) * feat(table-ng): context menu init commit * betterer * feat(table-ng): re-use contextmenu component * fix(table-ng): close context menu issue * TableNG: Sorting columns (#94200) feat(table-ng): sorting column * fix feature toggle conflict * TableNG: Sorting with custom table header (#95351) * TableNG: Header Toggle (#95310) * TableNG: Multi-column sorting (#95395) feat(table-ng): multi-sorting * TableNG: Column width options (#95426) * feat(table-ng): column width * mouse handle drag event * move resizing task * TableNG: Fix icon sorting direction (#95653) fix(table-ng): sorting icon direction * TableNG: Show table footer (#95313) * TableNG: Show table footer * Revert betterer * Update betterer * Incorporate reducer calculations into footer * Update imports in FooterRow * Use getFooterValue for summary cell render * TableNG: Min column width (#95657) * feat(table-ng): min column width * feat(table-ng): set a min width constant * TableNG: Column alignment (#95679) * feat(table-ng): column alignment * cleaning * feat(table-ng): header cell alignment * optimizations * feat(table-ng): footer cell alignment * calc counter * TableNG: use compiled fn for columns -> records conversion (#95914) * use compiled fn for columns -> records conversion * TableNG: Move key rev and fix width overrides (#95921) * meh * add index to records --------- Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com> * TableNG: Sparkline Cell Parity (#95690) * sparkline value * todo * Remove unsued shallowField * Pass justifyContent to sparkline --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: BarGauge cell updates (#95521) * fix bargauge cell * merge and fix props * cleanup imports * TableNG: Text wrapping (#96041) * feat(table-ng): fix long text cell width * feat(table-ng): fix long text cell width 2 * comment out column rowHeight * fix long text column width * fix types * fix types * naming * Check current header cell ref is defined for key * cleaning * make table re-render when data changed * eslint --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Text overflow (#96641) * feat(table-ng): text overflow * cleaning * TableNG: Fix footer for count (#96802) * TableNG: Table column filter (#96767) * feat(table-ng): add filter form --------- Co-authored-by: drew08t <drew08@gmail.com> Co-authored-by: Leon Sorokin <leeoniya@gmail.com> * TableNG: On column resize trigger (#97004) chore(table-ng): trigger on resize on text wrap only * TableNG: Improve sort performance (#97767) * TableNG: Improve sort performance * clean a bit * a bit more * Remove const that was breaking sort --------- Co-authored-by: Leon Sorokin <leeoniya@gmail.com> * TableNG: Fix sorting (#98141) fix(table-ng): sorting * TableNG: fix multi sorting (#98668) fix(table-ng): multi sorting * TableNG: Column re-size handler (#98901) * feat(table-ng): column re-size handler * TableNG: Fix footer calcs with no reducer (#99347) * TableNG: Update renderHeaderCell with filter dep (#99483) * TableNG: Updated styles for demo (#99530) * style proposal: table ng * chore: revert gauge cell custom stuff * TableNG: Cross-filter (#99459) * feat(table-ng): cross-filter * fix filter update issue * fix filter reset issue * Fix spacebar for filter input --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Filter perfomance optimization (#99620) fix(table-ng): filter performance optimization * TableNG: Refine styling closer to original table (#99625) * TableNG: Support groupToNestedTableTransform (#97134) * TableNG: Support groupToNestedTableTransform * Fix merge issues * Force refresh for now * Remove log * Fix some conflicts * Fix more conflicts * Help avoid clash with compiled frameToRecords keys * Make subtable height unconstrained * Support show field names in nested tables toggle * TableNG: Fix footer + some other misc updates (#99846) fix: footer fixes huzzah * TableNG: Styling - Update styling for cells (#99851) * fix(table-ng): bargauge inner width issue * TableNG: Move header cell component (#99844) * fix(table-ng): move header cell into separate file * Fix sub table --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Auto cell feature parity (#100095) * feat(table-ng): auto cell feature parity * TableNG: JSON cell implementation + hover fixes (#100152) * feat: tableNG json cell + auto fixes * chore: add comment * add justify content to json cell --------- Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com> * TableNG: Fix cell hover issue (#100207) * fix(table-ng): cell hover issue * better commenting * TableNG: Text color cell (#100120) feat(table-ng): text color cell feature parity * TableNG: Image cell implementation (#100132) * feat: tableNG image cell * fix: incorporate justify-content correctly * chore: pass down cell options from fieldConfig --------- Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com> * TableNG: Cell height performance improvement (#100544) * chore: perf improvement * chore: minor fix * Update packages/grafana-ui/src/components/Table/TableNG/TableNG.tsx Co-authored-by: Leon Sorokin <leeoniya@gmail.com> * chore: fix betterer --------- Co-authored-by: Leon Sorokin <leeoniya@gmail.com> * TableNG: Add pagination (#100165) * TableNG: Add pagination * TableNG: Get collapsed icon state correct + update `rowHeight` (#100556) * fix: get collapsed icon state correct + update condition for calculating row height * chore: some cleanup! * chore: naming to avoid confusion with local state name * TableNG: Add support for `DataLinksCell` (#100459) * TableNG: Improve sub table styling (#100772) * Move files temporarily to fix conflicts * Fix feature flag conflicts * Move files back to cell dir * TableNG: Update inner height of bar gauge cell (#100996) * fix: change inner height of bar gauge cell * chore: move function to utils, cleanup * Remove testing line * TableNG: Add bottom border to column headers + fix footer styling (#101016) * feat: add bottom border to column headers for table parity * feat: summary row style fix * chore: remove redundant style --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Add support for `ActionsCell` (#101024) * TableNG: Cell hover styles + header resize handler indicator (#100770) * fix: tableNG styles * chore: clean up comments * chore: remove column header stuffz for now * fix: refactor to transform/translate + resize handler hover styling * chore: re-think approach - change a lot of things * chore: most recent iteration * chore: wait i like this better * chore: hoist into colors function + clean it up! * moar better * chore: define constants for clarity * chore: calculate rbga to rgb values given background color --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Fix scoll hover jumpy behavior (#101085) * fix(table-ng): hover scroll jumping * Account for panel padding during pagination --------- Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com> Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Fix imports (#101059) * fix(table-ng): clean imports Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com> * TableNG: Sorted rows dependent upon filtered rows (#100985) TableNG: Improve multi-sort performance * TableNG: Fix sparkline width (#101164) fix(table-ng): sparkline width * TableNG: Type TableNG (#101257) * feat: type tableNG * chore: push betterer * chore: fix linter + why can't I have inline if statements... GRR! * fix: linter - props name got changed at some point... * feedback: data links prop consistency + json cell robustness * chore: remove unused rowIndex prop --------- Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Add support for datalinks (#100769) Co-authored-by: drew08t <drew08@gmail.com> * Chore: Remove unused import (#102064) remove unused import * Update betterer * BarGauge: Remove z-index (#102220) fix(bargauge): remove z-index * TableNG: Refactor + testing (#102045) * feat: type tableNG * chore: push betterer * chore: fix linter + why can't I have inline if statements... GRR! * fix: linter - props name got changed at some point... * feedback: data links prop consistency + json cell robustness * feat: refactor + tests * chore: fix import lint errors * betterer * chore: fix image cell * chore: revert width function * add test * betterer * chore: fix sorting + add tests * chore: pr feedback --------- Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com> Co-authored-by: drew08t <drew08@gmail.com> * TableNG: Fix table suggestion (#102497) fix: defensively guard against missing cellOptions * TableNG: Footer fields calc fix (#102487) * fix: respect footer fields calc selection * chore: add test * TableNG: Image cell hover fix (#102489) fix: image cell hover * TableNG: Persist scrollbars during re render (#102559) * TableNG: Persist scrollbars during re render * Update improved betterer * TableNG: Fix column width override (#102474) * fix(table): column width override * TableNG: Add support for crosshair share (#102410) * TableNG: Add support for crosshair share * Add tests * TableNG: Fix table ng tests (#102645) fix: cellType causing tests to fail * Remove empty file * TableNG: Update util tests (#102646) * TableNG: Add column type icon (#102686) * chore(table-ng): add column type icon * chore(table-ng): clean styling * Use core internationalization outside grafana ui * Import popover directly * Add count to grafana-ui locales * TableNG: Change feature flag to tableNextGen (#102814) Change feature flag to tableNextGen * TableNG: Add row colors (#102706) * chore(table-ng): add row colors * clean up * fix params * fix(table-ng): cell color background indexing --------- Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com> Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com> Co-authored-by: Adela Almasan <adela.almasan@grafana.com> Co-authored-by: Leon Sorokin <leeoniya@gmail.com> Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com> Co-authored-by: Alex Spencer <52186778+alexjonspencer1@users.noreply.github.com>
1856 lines
66 KiB
Go
1856 lines
66 KiB
Go
// To change feature flags, edit:
|
|
// pkg/services/featuremgmt/registry.go
|
|
// Then run tests in:
|
|
// pkg/services/featuremgmt/toggles_gen_test.go
|
|
// twice to generate and validate the feature flag files
|
|
//
|
|
// Alternatively, use `make gen-feature-toggles`
|
|
|
|
package featuremgmt
|
|
|
|
import (
|
|
"embed"
|
|
"encoding/json"
|
|
|
|
featuretoggle "github.com/grafana/grafana/pkg/apis/featuretoggle/v0alpha1"
|
|
)
|
|
|
|
var (
|
|
// Register each toggle here
|
|
standardFeatureFlags = []FeatureFlag{
|
|
{
|
|
Name: "disableEnvelopeEncryption",
|
|
Description: "Disable envelope encryption (emergency only)",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAsCodeSquad,
|
|
HideFromAdminPage: true,
|
|
AllowSelfServe: false,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "live-service-web-worker",
|
|
Description: "This will use a webworker thread to processes events rather than the main thread",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
},
|
|
{
|
|
Name: "queryOverLive",
|
|
Description: "Use Grafana Live WebSocket to execute backend queries",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
},
|
|
{
|
|
Name: "panelTitleSearch",
|
|
Description: "Search for dashboards using panel title",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "publicDashboardsEmailSharing",
|
|
Description: "Enables public dashboard sharing to be restricted to only allowed emails",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaSharingSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "publicDashboardsScene",
|
|
Description: "Enables public dashboard rendering using scenes",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaSharingSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "lokiExperimentalStreaming",
|
|
Description: "Support new streaming approach for loki (prototype, needs special loki build)",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "featureHighlights",
|
|
Description: "Highlight Grafana Enterprise features",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAsCodeSquad,
|
|
AllowSelfServe: true,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "storage",
|
|
Description: "Configurable storage for dashboards, datasources, and resources",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
},
|
|
{
|
|
Name: "correlations",
|
|
Description: "Correlations page",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaDatavizSquad,
|
|
Expression: "true", // enabled by default
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "autoMigrateOldPanels",
|
|
Description: "Migrate old angular panels to supported versions (graph, table-old, worldmap, etc)",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
Name: "canvasPanelNesting",
|
|
Description: "Allow elements nesting",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "disableSecretsCompatibility",
|
|
Description: "Disable duplicated secret storage in legacy tables",
|
|
Stage: FeatureStageExperimental,
|
|
RequiresRestart: true,
|
|
Owner: hostedGrafanaTeam,
|
|
},
|
|
{
|
|
Name: "logRequestsInstrumentedAsUnknown",
|
|
Description: "Logs the path for requests that are instrumented as unknown",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: hostedGrafanaTeam,
|
|
},
|
|
{
|
|
Name: "grpcServer",
|
|
Description: "Run the GRPC server",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "cloudWatchCrossAccountQuerying",
|
|
Description: "Enables cross-account querying in CloudWatch datasources",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default
|
|
Owner: awsDatasourcesSquad,
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "showDashboardValidationWarnings",
|
|
Description: "Show warnings when dashboards do not validate against the schema",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
},
|
|
{
|
|
Name: "mysqlAnsiQuotes",
|
|
Description: "Use double quotes to escape keyword in a MySQL query",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
},
|
|
{
|
|
Name: "nestedFolders",
|
|
Description: "Enable folder nesting",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "alertingBacktesting",
|
|
Description: "Rule backtesting API for alerting",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "editPanelCSVDragAndDrop",
|
|
Description: "Enables drag and drop for CSV and Excel files",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "logsContextDatasourceUi",
|
|
Description: "Allow datasource to provide custom UI for context view",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
Expression: "true", // turned on by default
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "lokiShardSplitting",
|
|
Description: "Use stream shards to split queries into smaller subqueries",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
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
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "lokiQuerySplittingConfig",
|
|
Description: "Give users the option to configure split durations for Loki queries",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "individualCookiePreferences",
|
|
Description: "Support overriding cookie preferences per user",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaBackendGroup,
|
|
},
|
|
{
|
|
Name: "influxdbBackendMigration",
|
|
Description: "Query InfluxDB InfluxQL without the proxy",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
Expression: "true", // enabled by default
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "influxqlStreamingParser",
|
|
Description: "Enable streaming JSON parser for InfluxDB datasource InfluxQL query language",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
},
|
|
{
|
|
Name: "influxdbRunQueriesInParallel",
|
|
Description: "Enables running InfluxDB Influxql queries in parallel",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
},
|
|
{
|
|
Name: "prometheusRunQueriesInParallel",
|
|
Description: "Enables running Prometheus queries in parallel",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: false,
|
|
Owner: grafanaOSSBigTent,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "lokiLogsDataplane",
|
|
Description: "Changes logs responses from Loki to be compliant with the dataplane specification.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
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,
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "disableSSEDataplane",
|
|
Description: "Disables dataplane specific processing in server side expressions.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
},
|
|
{
|
|
Name: "alertStateHistoryLokiSecondary",
|
|
Description: "Enable Grafana to write alert state history to an external Loki instance in addition to Grafana annotations.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "alertStateHistoryLokiPrimary",
|
|
Description: "Enable a remote Loki instance as the primary source for state history reads.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "alertStateHistoryLokiOnly",
|
|
Description: "Disable Grafana alerts from emitting annotations when a remote Loki instance is available.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "unifiedRequestLog",
|
|
Description: "Writes error logs to the request logger",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaBackendGroup,
|
|
Expression: "true",
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "renderAuthJWT",
|
|
Description: "Uses JWT-based auth for rendering instead of relying on remote cache",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaAsCodeSquad,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
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.
|
|
},
|
|
{
|
|
Name: "faroDatasourceSelector",
|
|
Description: "Enable the data source selector within the Frontend Apps section of the Frontend Observability",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: true,
|
|
Owner: appO11ySquad,
|
|
},
|
|
{
|
|
Name: "enableDatagridEditing",
|
|
Description: "Enables the edit functionality in the datagrid panel",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "extraThemes",
|
|
Description: "Enables extra themes",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
},
|
|
{
|
|
Name: "lokiPredefinedOperations",
|
|
Description: "Adds predefined query operations to Loki query editor",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "pluginsFrontendSandbox",
|
|
Description: "Enables the plugins frontend sandbox",
|
|
Stage: FeatureStagePrivatePreview,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "frontendSandboxMonitorOnly",
|
|
Description: "Enables monitor only in the plugin frontend sandbox (if enabled)",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: true,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "pluginsDetailsRightPanel",
|
|
Description: "Enables right panel for the plugins details page",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: true,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "sqlDatasourceDatabaseSelection",
|
|
Description: "Enables previous SQL data source dataset dropdown behavior",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaDatavizSquad,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "recordedQueriesMulti",
|
|
Description: "Enables writing multiple items from a single query within Recorded Queries",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true",
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "logsExploreTableVisualisation",
|
|
Description: "A table visualisation for logs in Explore",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "awsDatasourcesTempCredentials",
|
|
Description: "Support temporary security credentials in AWS plugins for Grafana Cloud customers",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: awsDatasourcesSquad,
|
|
},
|
|
{
|
|
Name: "transformationsRedesign",
|
|
Description: "Enables the transformations redesign",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Expression: "true", // enabled by default
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "mlExpressions",
|
|
Description: "Enable support for Machine Learning in server-side expressions",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "traceQLStreaming",
|
|
Description: "Enables response streaming of TraceQL queries of the Tempo data source",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityTracesAndProfilingSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "datasourceAPIServers",
|
|
Description: "Expose some datasources as apiservers.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true, // changes the API routing
|
|
},
|
|
{
|
|
Name: "grafanaAPIServerWithExperimentalAPIs",
|
|
Description: "Register experimental APIs with the k8s API server, including all datasources",
|
|
Stage: FeatureStageExperimental,
|
|
RequiresRestart: true,
|
|
RequiresDevMode: true,
|
|
Owner: grafanaAppPlatformSquad,
|
|
},
|
|
{
|
|
Name: "provisioning",
|
|
Description: "Next generation provisioning... and git",
|
|
Stage: FeatureStageExperimental,
|
|
RequiresRestart: true,
|
|
Owner: grafanaAppPlatformSquad,
|
|
},
|
|
{
|
|
Name: "grafanaAPIServerEnsureKubectlAccess",
|
|
Description: "Start an additional https handler and write kubectl options",
|
|
Stage: FeatureStageExperimental,
|
|
RequiresDevMode: true,
|
|
RequiresRestart: true,
|
|
Owner: grafanaAppPlatformSquad,
|
|
},
|
|
{
|
|
Name: "featureToggleAdminPage",
|
|
Description: "Enable admin page for managing feature toggles from the Grafana front-end. Grafana Cloud only.",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
RequiresRestart: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "awsAsyncQueryCaching",
|
|
Description: "Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default
|
|
Owner: awsDatasourcesSquad,
|
|
},
|
|
{
|
|
Name: "permissionsFilterRemoveSubquery",
|
|
Description: "Alternative permission filter implementation that does not use subqueries for fetching the dashboard folder",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaBackendGroup,
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
Name: "angularDeprecationUI",
|
|
Description: "Display Angular warnings in dashboards and panels",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
Expression: "true", // Enabled by default
|
|
},
|
|
{
|
|
Name: "dashgpt",
|
|
Description: "Enable AI powered features in dashboards",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "aiGeneratedDashboardChanges",
|
|
Description: "Enable AI powered features for dashboards to auto-summary changes when saving",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
},
|
|
{
|
|
Name: "reportingRetries",
|
|
Description: "Enables rendering retries for the reporting feature",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaSharingSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "sseGroupByDatasource",
|
|
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: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
},
|
|
{
|
|
Name: "libraryPanelRBAC",
|
|
Description: "Enables RBAC support for library panels",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaDashboardsSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "lokiRunQueriesInParallel",
|
|
Description: "Enables running Loki queries in parallel",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "wargamesTesting",
|
|
Description: "Placeholder feature flag for internal testing",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: hostedGrafanaTeam,
|
|
},
|
|
{
|
|
Name: "alertingInsights",
|
|
Description: "Show the new alerting insights landing page",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
Expression: "true", // enabled by default
|
|
AllowSelfServe: false,
|
|
HideFromAdminPage: true, // This is moving away from being a feature toggle.
|
|
},
|
|
{
|
|
Name: "externalCorePlugins",
|
|
Description: "Allow core plugins to be loaded as external",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "pluginsAPIMetrics",
|
|
Description: "Sends metrics of public grafana packages usage by plugins",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "externalServiceAccounts",
|
|
Description: "Automatic service account and token setup for plugins",
|
|
HideFromAdminPage: true,
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "panelMonitoring",
|
|
Description: "Enables panel monitoring through logs and measurements",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default
|
|
Owner: grafanaDatavizSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "enableNativeHTTPHistogram",
|
|
Description: "Enables native HTTP Histograms",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaBackendServicesSquad,
|
|
HideFromAdminPage: true,
|
|
AllowSelfServe: false,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "disableClassicHTTPHistogram",
|
|
Description: "Disables classic HTTP Histogram (use with enableNativeHTTPHistogram)",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaBackendServicesSquad,
|
|
HideFromAdminPage: true,
|
|
AllowSelfServe: false,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "formatString",
|
|
Description: "Enable format string transformer",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "kubernetesPlaylists",
|
|
Description: "Use the kubernetes API in the frontend for playlists, and route /api/playlist requests to k8s",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAppPlatformSquad,
|
|
Expression: "true",
|
|
RequiresRestart: true, // changes the API routing
|
|
},
|
|
{
|
|
Name: "kubernetesSnapshots",
|
|
Description: "Routes snapshot requests from /api to the /apis endpoint",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true, // changes the API routing
|
|
},
|
|
{
|
|
Name: "kubernetesDashboards",
|
|
Description: "Use the kubernetes API in the frontend for dashboards",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "kubernetesClientDashboardsFolders",
|
|
Description: "Route the folder and dashboard service requests to k8s",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
},
|
|
{
|
|
Name: "datasourceQueryTypes",
|
|
Description: "Show query type endpoints in datasource API servers (currently hardcoded for testdata, expressions, and prometheus)",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true, // changes the API routing
|
|
},
|
|
{
|
|
Name: "queryService",
|
|
Description: "Register /apis/query.grafana.app/ -- will eventually replace /api/ds/query",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true, // Adds a route at startup
|
|
},
|
|
{
|
|
Name: "queryServiceRewrite",
|
|
Description: "Rewrite requests targeting /ds/query to the query service",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true, // changes the API routing
|
|
},
|
|
{
|
|
Name: "queryServiceFromUI",
|
|
Description: "Routes requests to the new query service",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
FrontendOnly: true, // and can change at startup
|
|
},
|
|
{
|
|
Name: "cloudWatchBatchQueries",
|
|
Description: "Runs CloudWatch metrics queries as separate batches",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: awsDatasourcesSquad,
|
|
},
|
|
{
|
|
Name: "recoveryThreshold",
|
|
Description: "Enables feature recovery threshold (aka hysteresis) for threshold server-side expression",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: false,
|
|
Owner: grafanaAlertingSquad,
|
|
RequiresRestart: true,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "lokiStructuredMetadata",
|
|
Description: "Enables the loki data source to request structured metadata from the Loki server",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: false,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
Name: "prometheusCodeModeMetricNamesSearch",
|
|
Description: "Enables search for metric names in Code Mode, to improve performance when working with an enormous number of metric names",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOSSBigTent,
|
|
},
|
|
{
|
|
Name: "addFieldFromCalculationStatFunctions",
|
|
Description: "Add cumulative and window functions to the add field from calculation transformation",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
Name: "annotationPermissionUpdate",
|
|
Description: "Change the way annotation permissions work by scoping them to folders and dashboards.",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
RequiresDevMode: false,
|
|
Expression: "true", // enabled by default
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "extractFieldsNameDeduplication",
|
|
Description: "Make sure extracted field names are unique in the dataframe",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "dashboardSceneForViewers",
|
|
Description: "Enables dashboard rendering using Scenes for viewer roles",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "dashboardSceneSolo",
|
|
Description: "Enables rendering dashboards using scenes for solo panels",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "dashboardScene",
|
|
Description: "Enables dashboard rendering using scenes for all roles",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "dashboardNewLayouts",
|
|
Description: "Enables experimental new dashboard layouts",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
},
|
|
{
|
|
Name: "panelFilterVariable",
|
|
Description: "Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDashboardsSquad,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "pdfTables",
|
|
Description: "Enables generating table data as PDF in reporting",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaSharingSquad,
|
|
},
|
|
{
|
|
Name: "ssoSettingsApi",
|
|
Description: "Enables the SSO settings API and the OAuth configuration UIs in Grafana",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true",
|
|
AllowSelfServe: true,
|
|
FrontendOnly: false,
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "canvasPanelPanZoom",
|
|
Description: "Allow pan and zoom in canvas panel",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "logsInfiniteScrolling",
|
|
Description: "Enables infinite scrolling for the Logs panel in Explore and Dashboards",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true",
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "exploreMetrics",
|
|
Description: "Enables the new Grafana Metrics Drilldown core app",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
},
|
|
{
|
|
Name: "alertingSimplifiedRouting",
|
|
Description: "Enables users to easily configure alert notifications by specifying a contact point directly when editing or creating an alert rule",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: false,
|
|
Owner: grafanaAlertingSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "logRowsPopoverMenu",
|
|
Description: "Enable filtering menu displayed when text of a log line is selected",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Expression: "true",
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "pluginsSkipHostEnvVars",
|
|
Description: "Disables passing host environment variable to plugin processes",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "tableSharedCrosshair",
|
|
Description: "Enables shared crosshair in table panel",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "regressionTransformation",
|
|
Description: "Enables regression analysis transformation",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
// this is mainly used as a way to quickly disable query hints as a safeguard for our infrastructure
|
|
Name: "lokiQueryHints",
|
|
Description: "Enables query hints for Loki",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Expression: "true",
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "kubernetesFeatureToggles",
|
|
Description: "Use the kubernetes API for feature toggle management in the frontend",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
AllowSelfServe: false,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "cloudRBACRoles",
|
|
Description: "Enabled grafana cloud specific RBAC roles",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
AllowSelfServe: true,
|
|
HideFromAdminPage: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "alertingQueryOptimization",
|
|
Description: "Optimizes eligible queries in order to reduce load on datasources",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
AllowSelfServe: false,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "newFolderPicker",
|
|
Description: "Enables the nested folder picker without having nested folders enabled",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "jitterAlertRulesWithinGroups",
|
|
Description: "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group",
|
|
FrontendOnly: false,
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaAlertingSquad,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: false,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "onPremToCloudMigrations",
|
|
Description: "Enable the Grafana Migration Assistant, which helps you easily migrate on-prem resources, such as dashboards, folders, and data source configurations, to your Grafana Cloud stack.",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "secretsManagementAppPlatform",
|
|
Description: "Enable the secrets management API and services under app platform",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
},
|
|
{
|
|
Name: "alertingSaveStatePeriodic",
|
|
Description: "Writes the state periodically to the database, asynchronous to rule evaluation",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaAlertingSquad,
|
|
},
|
|
{
|
|
Name: "alertingSaveStateCompressed",
|
|
Description: "Enables the compressed protobuf-based alert state storage",
|
|
Stage: FeatureStagePublicPreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaAlertingSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "scopeApi",
|
|
Description: "In-development feature flag for the scope api using the app platform.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
HideFromAdminPage: true,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "promQLScope",
|
|
Description: "In-development feature that will allow injection of labels into prometheus queries.",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaOSSBigTent,
|
|
Expression: "true",
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "logQLScope",
|
|
Description: "In-development feature that will allow injection of labels into loki queries.",
|
|
Stage: FeatureStagePrivatePreview,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
Expression: "false",
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "sqlExpressions",
|
|
Description: "Enables SQL Expressions, which can execute SQL queries against data source results.",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaDatasourcesCoreServicesSquad,
|
|
},
|
|
{
|
|
Name: "nodeGraphDotLayout",
|
|
Description: "Changed the layout algorithm for the node graph",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityTracesAndProfilingSquad,
|
|
},
|
|
{
|
|
Name: "groupToNestedTableTransformation",
|
|
Description: "Enables the group to nested table transformation",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaDatavizSquad,
|
|
Expression: "true", // enabled by default,
|
|
},
|
|
{
|
|
Name: "newPDFRendering",
|
|
Description: "New implementation for the dashboard-to-PDF rendering",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaSharingSquad,
|
|
Expression: "true", // enabled by default,
|
|
},
|
|
{
|
|
Name: "tlsMemcached",
|
|
Description: "Use TLS-enabled memcached in the enterprise caching feature",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
Expression: "true",
|
|
AllowSelfServe: false, // the non-tls implementation is slated for removal
|
|
},
|
|
{
|
|
Name: "kubernetesAggregator",
|
|
Description: "Enable grafana's embedded kube-aggregator",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "expressionParser",
|
|
Description: "Enable new expression parser",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "groupByVariable",
|
|
Description: "Enable groupBy variable support in scenes dashboards",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
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,
|
|
},
|
|
{
|
|
Name: "ssoSettingsSAML",
|
|
Description: "Use the new SSO Settings API to configure the SAML connector",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: identityAccessTeam,
|
|
Expression: "true",
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "oauthRequireSubClaim",
|
|
Description: "Require that sub claims is present in oauth tokens.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "newDashboardWithFiltersAndGroupBy",
|
|
Description: "Enables filters and group by variables on all new dashboards. Variables are added only if default data source supports filtering.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "cloudWatchNewLabelParsing",
|
|
Description: "Updates CloudWatch label parsing to be more accurate",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Expression: "true", // enabled by default
|
|
Owner: awsDatasourcesSquad,
|
|
FrontendOnly: false,
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "disableNumericMetricsSortingInExpressions",
|
|
Description: "In server-side expressions, disable the sorting of numeric-kind metrics by their metric name or labels.",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
Owner: grafanaOSSBigTent,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "grafanaManagedRecordingRules",
|
|
Description: "Enables Grafana-managed recording rules.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "queryLibrary",
|
|
Description: "Enables Query Library feature in Explore",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
FrontendOnly: false,
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "logsExploreTableDefaultVisualization",
|
|
Description: "Sets the logs table as default visualisation in logs explore",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "newDashboardSharingComponent",
|
|
Description: "Enables the new sharing drawer design",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaSharingSquad,
|
|
FrontendOnly: true,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "alertingListViewV2",
|
|
Description: "Enables the new alert list view design",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "dashboardRestore",
|
|
Description: "Enables deleted dashboard restore feature",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromAdminPage: true,
|
|
Expression: "false", // enabled by default
|
|
},
|
|
{
|
|
Name: "alertingDisableSendAlertsExternal",
|
|
Description: "Disables the ability to send alerts to an external Alertmanager datasource.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "preserveDashboardStateWhenNavigating",
|
|
Description: "Enables possibility to preserve dashboard variables and time range when navigating between dashboards",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "alertingCentralAlertHistory",
|
|
Description: "Enables the new central alert history.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "pluginProxyPreserveTrailingSlash",
|
|
Description: "Preserve plugin proxy trailing slash.",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
Expression: "false", // disabled by default
|
|
},
|
|
{
|
|
Name: "azureMonitorPrometheusExemplars",
|
|
Description: "Allows configuration of Azure Monitor as a data source that can provide Prometheus exemplars",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
},
|
|
{
|
|
Name: "pinNavItems",
|
|
Description: "Enables pinning of nav items",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "authZGRPCServer",
|
|
Description: "Enables the gRPC server for authorization",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "ssoSettingsLDAP",
|
|
Description: "Use the new SSO Settings API to configure LDAP",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: identityAccessTeam,
|
|
AllowSelfServe: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "failWrongDSUID",
|
|
Description: "Throws an error if a datasource has an invalid UIDs",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "zanzana",
|
|
Description: "Use openFGA as authorization engine.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "reloadDashboardsOnParamsChange",
|
|
Description: "Enables reload of dashboards on scopes, time range and variables changes",
|
|
FrontendOnly: false,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
RequiresRestart: false,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "enableScopesInMetricsExplore",
|
|
Description: "Enables the scopes usage in Metrics Explore",
|
|
FrontendOnly: false,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDashboardsSquad,
|
|
RequiresRestart: false,
|
|
AllowSelfServe: false,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "alertingApiServer",
|
|
Description: "Register Alerting APIs with the K8s API server",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
RequiresRestart: true,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "cloudWatchRoundUpEndTime",
|
|
Description: "Round up end time for metric queries to the next minute to avoid missing data",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: awsDatasourcesSquad,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "prometheusAzureOverrideAudience",
|
|
Description: "Deprecated. Allow override default AAD audience for Azure Prometheus endpoint. Enabled by default. This feature should no longer be used and will be removed in the future.",
|
|
Stage: FeatureStageDeprecated,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
Expression: "true", // Enabled by default for now
|
|
}, {
|
|
Name: "alertingFilterV2",
|
|
Description: "Enable the new alerting search experience",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "dataplaneAggregator",
|
|
Description: "Enable grafana dataplane aggregator",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "newFiltersUI",
|
|
Description: "Enables new combobox style UI for the Ad hoc filters variable in scenes architecture",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaDashboardsSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "tableNextGen",
|
|
Description: "Allows access to the new react-data-grid based table component.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaDatavizSquad,
|
|
},
|
|
{
|
|
Name: "lokiSendDashboardPanelNames",
|
|
Description: "Send dashboard and panel names to Loki when querying",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "alertingPrometheusRulesPrimary",
|
|
Description: "Uses Prometheus rules as the primary source of truth for ruler-enabled data sources",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "exploreLogsShardSplitting",
|
|
Description: "Used in Logs Drilldown to split queries into multiple queries based on the number of shards",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "exploreLogsAggregatedMetrics",
|
|
Description: "Used in Logs Drilldown to query by aggregated metrics",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "exploreLogsLimitedTimeRange",
|
|
Description: "Used in Logs Drilldown to limit the time range",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "homeSetupGuide",
|
|
Description: "Used in Home for users who want to return to the onboarding flow or quickly find popular config pages",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: growthAndOnboarding,
|
|
},
|
|
{
|
|
Name: "appPlatformGrpcClientAuth",
|
|
Description: "Enables the gRPC client to authenticate with the App Platform by using ID & access tokens",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "appSidecar",
|
|
Description: "Enable the app sidecar feature that allows rendering 2 apps at the same time",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
},
|
|
{
|
|
Name: "groupAttributeSync",
|
|
Description: "Enable the groupsync extension for managing Group Attribute Sync feature",
|
|
Stage: FeatureStagePrivatePreview,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "alertingQueryAndExpressionsStepMode",
|
|
Description: "Enables step mode for alerting queries and expressions",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "improvedExternalSessionHandling",
|
|
Description: "Enables improved support for OAuth external sessions. After enabling this feature, users might need to re-authenticate themselves.",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: identityAccessTeam,
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "useSessionStorageForRedirection",
|
|
Description: "Use session storage for handling the redirection after login",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: identityAccessTeam,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "rolePickerDrawer",
|
|
Description: "Enables the new role picker drawer design",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "unifiedStorageSearch",
|
|
Description: "Enable unified storage search",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "unifiedStorageSearchSprinkles",
|
|
Description: "Enable sprinkles on unified storage search",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "unifiedStorageSearchPermissionFiltering",
|
|
Description: "Enable permission filtering on unified storage search",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
Expression: "true",
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "managedDualWriter",
|
|
Description: "Pick the dual write mode from database configs",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "pluginsSriChecks",
|
|
Description: "Enables SRI checks for plugin assets",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
Expression: "false", // disabled by default
|
|
},
|
|
{
|
|
Name: "unifiedStorageBigObjectsSupport",
|
|
Description: "Enables to save big objects in blob storage",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
},
|
|
{
|
|
Name: "timeRangeProvider",
|
|
Description: "Enables time pickers sync",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
},
|
|
{
|
|
Name: "prometheusUsesCombobox",
|
|
Description: "Use new combobox component for Prometheus query editor",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOSSBigTent,
|
|
},
|
|
{
|
|
Name: "userStorageAPI",
|
|
Description: "Enables the user storage API",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "azureMonitorDisableLogLimit",
|
|
Description: "Disables the log limit restriction for Azure Monitor when true. The limit is enabled by default.",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "preinstallAutoUpdate",
|
|
Description: "Enables automatic updates for pre-installed plugins",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "playlistsReconciler",
|
|
Description: "Enables experimental reconciler for playlists",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "passwordlessMagicLinkAuthentication",
|
|
Description: "Enable passwordless login via magic link authentication",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
AllowSelfServe: false,
|
|
},
|
|
{
|
|
Name: "exploreMetricsRelatedLogs",
|
|
Description: "Display Related Logs in Grafana Metrics Drilldown",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
FrontendOnly: true,
|
|
HideFromDocs: false,
|
|
},
|
|
{
|
|
Name: "prometheusSpecialCharsInLabelValues",
|
|
Description: "Adds support for quotes and special characters in label values for Prometheus queries",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOSSBigTent,
|
|
},
|
|
{
|
|
Name: "enableExtensionsAdminPage",
|
|
Description: "Enables the extension admin page regardless of development mode",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "enableSCIM",
|
|
Description: "Enables SCIM support for user and group management",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "crashDetection",
|
|
Description: "Enables browser crash detection reporting to Faro.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaObservabilityTracesAndProfilingSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "jaegerBackendMigration",
|
|
Description: "Enables querying the Jaeger data source without the proxy",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOSSBigTent,
|
|
},
|
|
{
|
|
Name: "reportingUseRawTimeRange",
|
|
Description: "Uses the original report or dashboard time range instead of making an absolute transformation",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaSharingSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "alertingUIOptimizeReducer",
|
|
Description: "Enables removing the reducer from the alerting UI when creating a new alert rule and using instant query",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
FrontendOnly: true,
|
|
Owner: grafanaAlertingSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "azureMonitorEnableUserAuth",
|
|
Description: "Enables user auth for Azure Monitor datasource only",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaPartnerPluginsSquad,
|
|
Expression: "true", // Enabled by default for now
|
|
},
|
|
{
|
|
Name: "alertingNotificationsStepMode",
|
|
Description: "Enables simplified step mode in the notifications section",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "feedbackButton",
|
|
Description: "Enables a button to send feedback from the Grafana UI",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaOperatorExperienceSquad,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "unifiedStorageSearchUI",
|
|
Description: "Enable unified storage search UI",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromDocs: true,
|
|
HideFromAdminPage: true,
|
|
},
|
|
{
|
|
Name: "elasticsearchCrossClusterSearch",
|
|
Description: "Enables cross cluster search in the Elasticsearch datasource",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: awsDatasourcesSquad,
|
|
},
|
|
{
|
|
Name: "unifiedHistory",
|
|
Description: "Displays the navigation history so the user can navigate back to previous pages",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "lokiLabelNamesQueryApi",
|
|
Description: "Defaults to using the Loki `/labels` API instead of `/series`",
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
Expression: "true",
|
|
},
|
|
{
|
|
Name: "investigationsBackend",
|
|
Description: "Enable the investigations backend API",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAppPlatformSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "k8SFolderCounts",
|
|
Description: "Enable folder's api server counts",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "k8SFolderMove",
|
|
Description: "Enable folder's api server move",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
Expression: "false",
|
|
},
|
|
{
|
|
Name: "improvedExternalSessionHandlingSAML",
|
|
Description: "Enables improved support for SAML external sessions. Ensure the NameID format is correctly configured in Grafana for SAML Single Logout to function properly.",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: identityAccessTeam,
|
|
AllowSelfServe: true,
|
|
},
|
|
{
|
|
Name: "teamHttpHeadersMimir",
|
|
Description: "Enables LBAC for datasources for Mimir to apply LBAC filtering of metrics to the client requests for users in teams",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: false,
|
|
AllowSelfServe: false,
|
|
Owner: identityAccessTeam,
|
|
},
|
|
{
|
|
Name: "ABTestFeatureToggleA",
|
|
Description: "Test feature toggle to see how cohorts could be set up AB testing",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSharingSquad,
|
|
Expression: "false",
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "templateVariablesUsesCombobox",
|
|
Description: "Use new combobox component for template variables",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "ABTestFeatureToggleB",
|
|
Description: "Test feature toggle to see how cohorts could be set up AB testing",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSharingSquad,
|
|
Expression: "false",
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "grafanaAdvisor",
|
|
Description: "Enables Advisor app",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "elasticsearchImprovedParsing",
|
|
Description: "Enables less memory intensive Elasticsearch result parsing",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: awsDatasourcesSquad,
|
|
},
|
|
{
|
|
Name: "exploreMetricsUseExternalAppPlugin",
|
|
Description: "Use the externalized Grafana Metrics Drilldown (formerly known as Explore Metrics) app plugin",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaObservabilityMetricsSquad,
|
|
FrontendOnly: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "datasourceConnectionsTab",
|
|
Description: "Shows defined connections for a data source in the plugins detail page",
|
|
Stage: FeatureStagePrivatePreview,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
RequiresDevMode: false,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "fetchRulesUsingPost",
|
|
Description: "Use a POST request to list rules by passing down the namespaces user has access to",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "alertingConversionAPI",
|
|
Description: "Enable the alerting conversion API",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "alertingAlertmanagerExtraDedupStage",
|
|
Description: "enables extra deduplication stage in alertmanager that checks that timestamps of the pipeline and the current state are matching",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "alertingAlertmanagerExtraDedupStageStopPipeline",
|
|
Description: "works together with alertingAlertmanagerExtraDedupStage, if enabled, it will stop the pipeline if the timestamps are not matching. Otherwise, it will emit a warning",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "newLogsPanel",
|
|
Description: "Enables the new logs panel in Explore",
|
|
Stage: FeatureStageExperimental,
|
|
FrontendOnly: true,
|
|
Owner: grafanaObservabilityLogsSquad,
|
|
},
|
|
{
|
|
Name: "grafanaconThemes",
|
|
Description: "Enables the temporary themes for GrafanaCon",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
RequiresRestart: true,
|
|
},
|
|
{
|
|
Name: "pluginsCDNSyncLoader",
|
|
Description: "Load plugins from CDN synchronously",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaPluginsPlatformSquad,
|
|
},
|
|
{
|
|
Name: "alertingJiraIntegration",
|
|
Description: "Enables the new Jira integration for contact points in cloud alert managers.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
FrontendOnly: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "alertingRuleVersionHistoryRestore",
|
|
Description: "Enables the alert rule version history restore feature",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageGeneralAvailability,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "newShareReportDrawer",
|
|
Description: "Enables the report creation drawer in a dashboard",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSharingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "rendererDisableAppPluginsPreload",
|
|
Description: "Disable pre-loading app plugins when the request is coming from the renderer",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSharingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "assetSriChecks",
|
|
Description: "Enables SRI checks for Grafana JavaScript assets",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendOpsWG,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "alertRuleRestore",
|
|
Description: "Enables the alert rule restore feature",
|
|
Stage: FeatureStagePublicPreview,
|
|
Owner: grafanaAlertingSquad,
|
|
Expression: "true", // enabled by default
|
|
},
|
|
{
|
|
Name: "grafanaManagedRecordingRulesDatasources",
|
|
Description: "Enables writing to data sources for Grafana-managed recording rules.",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
AllowSelfServe: false,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "infinityRunQueriesInParallel",
|
|
Description: "Enables running Infinity queries in parallel",
|
|
Stage: FeatureStagePrivatePreview,
|
|
FrontendOnly: false,
|
|
Owner: grafanaOSSBigTent,
|
|
},
|
|
{
|
|
Name: "inviteUserExperimental",
|
|
Description: "Renders invite user button along the app",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSharingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "extraLanguages",
|
|
Description: "Enables additional languages",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "noBackdropBlur",
|
|
Description: "Disables backdrop blur",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaFrontendPlatformSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
FrontendOnly: true,
|
|
},
|
|
{
|
|
Name: "alertingMigrationUI",
|
|
Description: "Enables the alerting migration UI, to migrate datasource-managed rules to Grafana-managed rules",
|
|
FrontendOnly: true,
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaAlertingSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "unifiedStorageHistoryPruner",
|
|
Description: "Enables the unified storage history pruner",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
{
|
|
Name: "unifiedStorageGrpcConnectionPool",
|
|
Description: "Enables the unified storage grpc connection pool",
|
|
Stage: FeatureStageExperimental,
|
|
Owner: grafanaSearchAndStorageSquad,
|
|
HideFromAdminPage: true,
|
|
HideFromDocs: true,
|
|
},
|
|
}
|
|
)
|
|
|
|
//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
|
|
}
|