grafana/pkg/services/featuremgmt/toggles_gen.go

1117 lines
42 KiB
Go
Raw Permalink Normal View History

// NOTE: This file was auto generated. DO NOT EDIT DIRECTLY!
// To change feature flags, edit:
// pkg/services/featuremgmt/registry.go
// Then run tests in:
// pkg/services/featuremgmt/toggles_gen_test.go
package featuremgmt
const (
// FlagDisableEnvelopeEncryption
// Disable envelope encryption (emergency only)
FlagDisableEnvelopeEncryption = "disableEnvelopeEncryption"
// FlagPanelTitleSearch
// Search for dashboards using panel title
FlagPanelTitleSearch = "panelTitleSearch"
// FlagPublicDashboardsEmailSharing
// Enables public dashboard sharing to be restricted to only allowed emails
FlagPublicDashboardsEmailSharing = "publicDashboardsEmailSharing"
// FlagPublicDashboardsScene
// Enables public dashboard rendering using scenes
FlagPublicDashboardsScene = "publicDashboardsScene"
// FlagLokiExperimentalStreaming
// Support new streaming approach for loki (prototype, needs special loki build)
FlagLokiExperimentalStreaming = "lokiExperimentalStreaming"
2022-03-02 06:46:52 +08:00
// FlagFeatureHighlights
2022-12-01 05:50:20 +08:00
// Highlight Grafana Enterprise features
FlagFeatureHighlights = "featureHighlights"
// FlagStorage
// Configurable storage for dashboards, datasources, and resources
FlagStorage = "storage"
// FlagCorrelations
// Correlations page
FlagCorrelations = "correlations"
// FlagCanvasPanelNesting
// Allow elements nesting
FlagCanvasPanelNesting = "canvasPanelNesting"
// FlagLogRequestsInstrumentedAsUnknown
// Logs the path for requests that are instrumented as unknown
FlagLogRequestsInstrumentedAsUnknown = "logRequestsInstrumentedAsUnknown"
// FlagGrpcServer
// Run the GRPC server
FlagGrpcServer = "grpcServer"
CloudWatch: Cross-account querying support (#59362) * Lattice: Point to private prerelease of aws-sdk-go (#515) * point to private prerelease of aws-sdk-go * fix build issue * Lattice: Adding a feature toggle (#549) * Adding a feature toggle for lattice * Change name of feature toggle * Lattice: List accounts (#543) * Separate layers * Introduce testify/mock library Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * point to version that includes metric api changes (#574) * add accounts component (#575) * Test refactor: remove unneeded clientFactoryMock (#581) * Lattice: Add monitoring badge (#576) * add monitoring badge * fix tests * solve conflict * Lattice: Add dynamic label for account display name (#579) * Build: Automatically sync lattice-main with OSS * Lattice: Point to private prerelease of aws-sdk-go (#515) * point to private prerelease of aws-sdk-go * fix build issue * Lattice: Adding a feature toggle (#549) * Adding a feature toggle for lattice * Change name of feature toggle * Lattice: List accounts (#543) * Separate layers * Introduce testify/mock library Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * point to version that includes metric api changes (#574) * add accounts component (#575) * Test refactor: remove unneeded clientFactoryMock (#581) * Lattice: Add monitoring badge (#576) * add monitoring badge * fix tests * solve conflict * add account label Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * fix import * solve merge related problem * add account info (#608) * add back namespaces handler * Lattice: Parse account id and return it to frontend (#609) * parse account id and return to frontend * fix route test * only show badge when feature toggle is enabled (#615) * Lattice: Refactor resource response type and return account (#613) * refactor resource response type * remove not used file. * go lint * fix tests * remove commented code * Lattice: Use account as input when listing metric names and dimensions (#611) * use account in resource requests * add account to response * revert accountInfo to accountId * PR feedback * unit test account in list metrics response * remove not used asserts * don't assert on response that is not relevant to the test * removed dupe test * pr feedback * rename request package (#626) * Lattice: Move account component and add tooltip (#630) * move accounts component to the top of metric stat editor * add tooltip * CloudWatch: add account to GetMetricData queries (#627) * Add AccountId to metric stat query * Lattice: Account variable support (#625) * add variable support in accounts component * add account variable query type * update variables * interpolate variable before its sent to backend * handle variable change in hooks * remove not used import * Update public/app/plugins/datasource/cloudwatch/components/Account.tsx Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update public/app/plugins/datasource/cloudwatch/hooks.ts Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * add one more unit test Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * cleanup (#629) * Set account Id according to crossAccountQuerying feature flag in backend (#632) * CloudWatch: Change spelling of feature-toggle (#634) * Lattice Logs (#631) * Lattice Logs * Fixes after CR * Lattice: Bug: fix dimension keys request (#644) * fix dimension keys * fix lint * more lint * CloudWatch: Add tests for QueryData with AccountId (#637) * Update from breaking change (#645) * Update from breaking change * Remove extra interface and methods Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * CloudWatch: Add business logic layer for getting log groups (#642) Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Lattice: Fix - unset account id in region change handler (#646) * move reset of account to region change handler * fix broken test * Lattice: Add account id to metric stat query deep link (#656) add account id to metric stat link * CloudWatch: Add new log groups handler for cross-account querying (#643) * Lattice: Add feature tracking (#660) * add tracking for account id prescense in metrics query * also check feature toggle * fix broken test * CloudWatch: Add route for DescribeLogGroups for cross-account querying (#647) Co-authored-by: Erik Sundell <erik.sundell87@gmail.com> * Lattice: Handle account id default value (#662) * make sure right type is returned * set right default values * Suggestions to lattice changes (#663) * Change ListMetricsWithPageLimit response to slice of non-pointers * Change GetAccountsForCurrentUserOrRole response to be not pointer * Clean test Cleanup calls in test * Remove CloudWatchAPI as part of mock * Resolve conflicts * Add Latest SDK (#672) * add tooltip (#674) * Docs: Add documentation for CloudWatch cross account querying (#676) * wip docs * change wordings * add sections about metrics and logs * change from monitoring to observability * Update docs/sources/datasources/aws-cloudwatch/_index.md Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * apply pr feedback * fix file name * more pr feedback * pr feedback Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * use latest version of the aws-sdk-go * Fix tests' mock response type * Remove change in Azure Monitor Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
2022-11-28 19:39:12 +08:00
// FlagCloudWatchCrossAccountQuerying
// Enables cross-account querying in CloudWatch datasources
CloudWatch: Cross-account querying support (#59362) * Lattice: Point to private prerelease of aws-sdk-go (#515) * point to private prerelease of aws-sdk-go * fix build issue * Lattice: Adding a feature toggle (#549) * Adding a feature toggle for lattice * Change name of feature toggle * Lattice: List accounts (#543) * Separate layers * Introduce testify/mock library Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * point to version that includes metric api changes (#574) * add accounts component (#575) * Test refactor: remove unneeded clientFactoryMock (#581) * Lattice: Add monitoring badge (#576) * add monitoring badge * fix tests * solve conflict * Lattice: Add dynamic label for account display name (#579) * Build: Automatically sync lattice-main with OSS * Lattice: Point to private prerelease of aws-sdk-go (#515) * point to private prerelease of aws-sdk-go * fix build issue * Lattice: Adding a feature toggle (#549) * Adding a feature toggle for lattice * Change name of feature toggle * Lattice: List accounts (#543) * Separate layers * Introduce testify/mock library Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * point to version that includes metric api changes (#574) * add accounts component (#575) * Test refactor: remove unneeded clientFactoryMock (#581) * Lattice: Add monitoring badge (#576) * add monitoring badge * fix tests * solve conflict * add account label Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * fix import * solve merge related problem * add account info (#608) * add back namespaces handler * Lattice: Parse account id and return it to frontend (#609) * parse account id and return to frontend * fix route test * only show badge when feature toggle is enabled (#615) * Lattice: Refactor resource response type and return account (#613) * refactor resource response type * remove not used file. * go lint * fix tests * remove commented code * Lattice: Use account as input when listing metric names and dimensions (#611) * use account in resource requests * add account to response * revert accountInfo to accountId * PR feedback * unit test account in list metrics response * remove not used asserts * don't assert on response that is not relevant to the test * removed dupe test * pr feedback * rename request package (#626) * Lattice: Move account component and add tooltip (#630) * move accounts component to the top of metric stat editor * add tooltip * CloudWatch: add account to GetMetricData queries (#627) * Add AccountId to metric stat query * Lattice: Account variable support (#625) * add variable support in accounts component * add account variable query type * update variables * interpolate variable before its sent to backend * handle variable change in hooks * remove not used import * Update public/app/plugins/datasource/cloudwatch/components/Account.tsx Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update public/app/plugins/datasource/cloudwatch/hooks.ts Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * add one more unit test Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * cleanup (#629) * Set account Id according to crossAccountQuerying feature flag in backend (#632) * CloudWatch: Change spelling of feature-toggle (#634) * Lattice Logs (#631) * Lattice Logs * Fixes after CR * Lattice: Bug: fix dimension keys request (#644) * fix dimension keys * fix lint * more lint * CloudWatch: Add tests for QueryData with AccountId (#637) * Update from breaking change (#645) * Update from breaking change * Remove extra interface and methods Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> * CloudWatch: Add business logic layer for getting log groups (#642) Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Lattice: Fix - unset account id in region change handler (#646) * move reset of account to region change handler * fix broken test * Lattice: Add account id to metric stat query deep link (#656) add account id to metric stat link * CloudWatch: Add new log groups handler for cross-account querying (#643) * Lattice: Add feature tracking (#660) * add tracking for account id prescense in metrics query * also check feature toggle * fix broken test * CloudWatch: Add route for DescribeLogGroups for cross-account querying (#647) Co-authored-by: Erik Sundell <erik.sundell87@gmail.com> * Lattice: Handle account id default value (#662) * make sure right type is returned * set right default values * Suggestions to lattice changes (#663) * Change ListMetricsWithPageLimit response to slice of non-pointers * Change GetAccountsForCurrentUserOrRole response to be not pointer * Clean test Cleanup calls in test * Remove CloudWatchAPI as part of mock * Resolve conflicts * Add Latest SDK (#672) * add tooltip (#674) * Docs: Add documentation for CloudWatch cross account querying (#676) * wip docs * change wordings * add sections about metrics and logs * change from monitoring to observability * Update docs/sources/datasources/aws-cloudwatch/_index.md Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> * Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * apply pr feedback * fix file name * more pr feedback * pr feedback Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com> * use latest version of the aws-sdk-go * Fix tests' mock response type * Remove change in Azure Monitor Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com> Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
2022-11-28 19:39:12 +08:00
FlagCloudWatchCrossAccountQuerying = "cloudWatchCrossAccountQuerying"
// FlagShowDashboardValidationWarnings
2022-12-01 05:50:20 +08:00
// Show warnings when dashboards do not validate against the schema
FlagShowDashboardValidationWarnings = "showDashboardValidationWarnings"
// FlagMysqlAnsiQuotes
2022-12-01 05:50:20 +08:00
// Use double quotes to escape keyword in a MySQL query
FlagMysqlAnsiQuotes = "mysqlAnsiQuotes"
// FlagAlertingBacktesting
// Rule backtesting API for alerting
FlagAlertingBacktesting = "alertingBacktesting"
// FlagEditPanelCSVDragAndDrop
// Enables drag and drop for CSV and Excel files
FlagEditPanelCSVDragAndDrop = "editPanelCSVDragAndDrop"
// FlagLogsContextDatasourceUi
// Allow datasource to provide custom UI for context view
FlagLogsContextDatasourceUi = "logsContextDatasourceUi"
Loki Query Splitting: Split queries into sub-queries with smaller time interval (#62767) * Range splitting: range splitting function * Range splitting: experiment with 1 hour splits * Range splitting: reorganize code * Range splitting: improve code readability and meaning * Range splitting: add partition limit to prevent infinite loops * Range splitting: add error handling * Range splitting: disable for logs queries * Range splitting: support any arbitrary time splitting + respect original from/to in the partition * Chore: remove console logs * Chore: delete unused import * Range splitting: actually send requests in sequence * Range splitting: do not split when > 1 query * Range splitting: combine frames * Chore: rename function * split in reverse * polished reversing * keep reference to the right frame in the result * Range splitting: change request state to Streaming * Range splitting: fix moving only 1 unit of time instead of the provided one * Chore: change default parameter to timeShift = 1 * Range splitting: do not split for range queqries * Range splitting: add initial support for log queries * Range splitting: do not use MutableDataFrame It has bad performance and it's not required * Chore: remove unused export * Query Splitting: move to module * loki: split: fix off-by-one error (#62966) loki: split: fix off-by-one loop * Range splitting: disable for logs volume queries * Range splitting: combine any number of fields, not just hardcoded 2 * Range splitting: optimize frame-combining function * Range splitting: further optimize * Range splitting: combine frame length * Range splitting: combine stats * Range splitting: combine stats without assuming the same order * Query splitting: catch and raise errors * Range splitting: create feature flag * Range splitting: implement feature flag * Range splitting: add unit test for datasource query * Range splitting: add basic test for runPartitionedQuery * Range splitting: add unit test for resultLimitReached * Range splitting: test frame merging * Chore: fix unit test --------- Co-authored-by: Sven Grossmann <svennergr@gmail.com> Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2023-02-10 01:27:02 +08:00
Loki: Added support to split queries by stream shard (#94245) * Add shard query splitting implementation * Shard query splitting: reuse function from query splitting * Shard query splitting: remove max line limit * Shard query splitting: update test * Shard query splitting: fix types and non-sharded queries * Merge responses: fix log merging * Merge responses: remove legacy code * Query splitting: add support to retry failed requests * Query splitting: unit test request retrying * Query splitting: add unsubscriptions * Shard query splitting: fix retrying * Shard query splitting: switch to dynamic grouping * Shard query splitting: update group size thresholds and fix -1 query * Shard query splitting: update initial group size + don't retry parse errors * Shard query splitting: update unit test * chore: update mock value * Shard query splitting: add support for multiple targets * chore: update description * Shard query splitting: use group targets * chore: filter hidden queries * Shard query splitting: issue initial log query without sharding * Splitting: fix retrying in both methods * Merge responses: keep execution time * Shard query splitting: remove no-shard attempt * Shard query splitting: adjust groups based on rate of change * chore: clean up experiments * Shard query splittng: remove log query restrictions * Shard query splitting: remove fallback to time splitting * Loki: add new query direction * Missing generated file * LokiOptionField: integrate new query direction * Shard query splitting: delegate non-scan queries to time splitting * Query splitting: do not retry queries with parse errors * Loki datasource: add placeholder for feature flag * Shard query splitting: add function with support criteria * Shard query splitting: refactor query modification and shard logs volume * Shard query splitting: update unit tests * chore: Update scan direction tooltip * chore: formatting * LogsVolumePanel: fix missing state in logs volume panel data * Merge responses: better handle missing nanoseconds * LokiQueryOptionFields: display query direction for log queries * loki: process scan direction as backward * Loki datasource: restrict sharding to Explore * Retrying: invert criteria and move to response utils * Formatting * Use log volume refId constant * Fix import order * Create feature flag * Use feature toggle * LogsVolumePanel: prevent flashing no data while streaming
2024-10-23 19:21:03 +08:00
// FlagLokiShardSplitting
// Use stream shards to split queries into smaller subqueries
FlagLokiShardSplitting = "lokiShardSplitting"
Loki Query Splitting: Split queries into sub-queries with smaller time interval (#62767) * Range splitting: range splitting function * Range splitting: experiment with 1 hour splits * Range splitting: reorganize code * Range splitting: improve code readability and meaning * Range splitting: add partition limit to prevent infinite loops * Range splitting: add error handling * Range splitting: disable for logs queries * Range splitting: support any arbitrary time splitting + respect original from/to in the partition * Chore: remove console logs * Chore: delete unused import * Range splitting: actually send requests in sequence * Range splitting: do not split when > 1 query * Range splitting: combine frames * Chore: rename function * split in reverse * polished reversing * keep reference to the right frame in the result * Range splitting: change request state to Streaming * Range splitting: fix moving only 1 unit of time instead of the provided one * Chore: change default parameter to timeShift = 1 * Range splitting: do not split for range queqries * Range splitting: add initial support for log queries * Range splitting: do not use MutableDataFrame It has bad performance and it's not required * Chore: remove unused export * Query Splitting: move to module * loki: split: fix off-by-one error (#62966) loki: split: fix off-by-one loop * Range splitting: disable for logs volume queries * Range splitting: combine any number of fields, not just hardcoded 2 * Range splitting: optimize frame-combining function * Range splitting: further optimize * Range splitting: combine frame length * Range splitting: combine stats * Range splitting: combine stats without assuming the same order * Query splitting: catch and raise errors * Range splitting: create feature flag * Range splitting: implement feature flag * Range splitting: add unit test for datasource query * Range splitting: add basic test for runPartitionedQuery * Range splitting: add unit test for resultLimitReached * Range splitting: test frame merging * Chore: fix unit test --------- Co-authored-by: Sven Grossmann <svennergr@gmail.com> Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2023-02-10 01:27:02 +08:00
// FlagLokiQuerySplitting
// Split large interval queries into subqueries with smaller time intervals
FlagLokiQuerySplitting = "lokiQuerySplitting"
// FlagIndividualCookiePreferences
// Support overriding cookie preferences per user
FlagIndividualCookiePreferences = "individualCookiePreferences"
// FlagInfluxdbBackendMigration
// Query InfluxDB InfluxQL without the proxy
FlagInfluxdbBackendMigration = "influxdbBackendMigration"
2025-09-23 22:13:05 +08:00
// FlagStarsFromAPIServer
// populate star status from apiserver
FlagStarsFromAPIServer = "starsFromAPIServer"
// FlagKubernetesStars
// Routes stars requests from /api to the /apis endpoint
FlagKubernetesStars = "kubernetesStars"
// FlagInfluxqlStreamingParser
// Enable streaming JSON parser for InfluxDB datasource InfluxQL query language
FlagInfluxqlStreamingParser = "influxqlStreamingParser"
// FlagInfluxdbRunQueriesInParallel
// Enables running InfluxDB Influxql queries in parallel
FlagInfluxdbRunQueriesInParallel = "influxdbRunQueriesInParallel"
// FlagLokiLogsDataplane
// Changes logs responses from Loki to be compliant with the dataplane specification.
FlagLokiLogsDataplane = "lokiLogsDataplane"
// FlagDataplaneFrontendFallback
// Support dataplane contract field name change for transformations and field name matchers where the name is different
FlagDataplaneFrontendFallback = "dataplaneFrontendFallback"
// FlagDisableSSEDataplane
// Disables dataplane specific processing in server side expressions.
FlagDisableSSEDataplane = "disableSSEDataplane"
// FlagUnifiedRequestLog
// Writes error logs to the request logger
FlagUnifiedRequestLog = "unifiedRequestLog"
// FlagRenderAuthJWT
// Uses JWT-based auth for rendering instead of relying on remote cache
FlagRenderAuthJWT = "renderAuthJWT"
// FlagRefactorVariablesTimeRange
// Refactor time range variables flow to reduce number of API calls made when query variables are chained
FlagRefactorVariablesTimeRange = "refactorVariablesTimeRange"
// FlagFaroDatasourceSelector
// Enable the data source selector within the Frontend Apps section of the Frontend Observability
FlagFaroDatasourceSelector = "faroDatasourceSelector"
// FlagEnableDatagridEditing
// Enables the edit functionality in the datagrid panel
FlagEnableDatagridEditing = "enableDatagridEditing"
// FlagExtraThemes
// Enables extra themes
FlagExtraThemes = "extraThemes"
// FlagPluginsFrontendSandbox
// Enables the plugins frontend sandbox
FlagPluginsFrontendSandbox = "pluginsFrontendSandbox"
// FlagRecordedQueriesMulti
// Enables writing multiple items from a single query within Recorded Queries
FlagRecordedQueriesMulti = "recordedQueriesMulti"
// FlagLogsExploreTableVisualisation
// A table visualisation for logs in Explore
FlagLogsExploreTableVisualisation = "logsExploreTableVisualisation"
// FlagAwsDatasourcesTempCredentials
// Support temporary security credentials in AWS plugins for Grafana Cloud customers
FlagAwsDatasourcesTempCredentials = "awsDatasourcesTempCredentials"
// FlagTransformationsRedesign
// Enables the transformations redesign
FlagTransformationsRedesign = "transformationsRedesign"
// FlagMlExpressions
// Enable support for Machine Learning in server-side expressions
FlagMlExpressions = "mlExpressions"
// FlagDatasourceAPIServers
// Expose some datasources as apiservers.
FlagDatasourceAPIServers = "datasourceAPIServers"
2023-10-07 02:55:22 +08:00
// FlagGrafanaAPIServerWithExperimentalAPIs
// Register experimental APIs with the k8s API server, including all datasources
2023-10-07 02:55:22 +08:00
FlagGrafanaAPIServerWithExperimentalAPIs = "grafanaAPIServerWithExperimentalAPIs"
// FlagProvisioning
// Next generation provisioning... and git
FlagProvisioning = "provisioning"
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
// FlagGrafanaAPIServerEnsureKubectlAccess
// Start an additional https handler and write kubectl options
FlagGrafanaAPIServerEnsureKubectlAccess = "grafanaAPIServerEnsureKubectlAccess"
// FlagAwsAsyncQueryCaching
// Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled
FlagAwsAsyncQueryCaching = "awsAsyncQueryCaching"
// FlagQueryCacheRequestDeduplication
// Enable request deduplication when query caching is enabled. Requests issuing the same query will be deduplicated, only the first request to arrive will be executed and the response will be shared with requests arriving while there is a request in-flight
FlagQueryCacheRequestDeduplication = "queryCacheRequestDeduplication"
// FlagPermissionsFilterRemoveSubquery
// Alternative permission filter implementation that does not use subqueries for fetching the dashboard folder
FlagPermissionsFilterRemoveSubquery = "permissionsFilterRemoveSubquery"
// FlagConfigurableSchedulerTick
// Enable changing the scheduler base interval via configuration option unified_alerting.scheduler_tick_interval
FlagConfigurableSchedulerTick = "configurableSchedulerTick"
// FlagDashgpt
// Enable AI powered features in dashboards
FlagDashgpt = "dashgpt"
// FlagAiGeneratedDashboardChanges
// Enable AI powered features for dashboards to auto-summary changes when saving
FlagAiGeneratedDashboardChanges = "aiGeneratedDashboardChanges"
// FlagReportingRetries
// Enables rendering retries for the reporting feature
FlagReportingRetries = "reportingRetries"
// FlagSseGroupByDatasource
// 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.
FlagSseGroupByDatasource = "sseGroupByDatasource"
// FlagLokiRunQueriesInParallel
// Enables running Loki queries in parallel
FlagLokiRunQueriesInParallel = "lokiRunQueriesInParallel"
// FlagExternalServiceAccounts
// Automatic service account and token setup for plugins
FlagExternalServiceAccounts = "externalServiceAccounts"
// FlagPanelMonitoring
// Enables panel monitoring through logs and measurements
FlagPanelMonitoring = "panelMonitoring"
// FlagEnableNativeHTTPHistogram
// Enables native HTTP Histograms
FlagEnableNativeHTTPHistogram = "enableNativeHTTPHistogram"
// FlagDisableClassicHTTPHistogram
// Disables classic HTTP Histogram (use with enableNativeHTTPHistogram)
FlagDisableClassicHTTPHistogram = "disableClassicHTTPHistogram"
// FlagFormatString
// Enable format string transformer
FlagFormatString = "formatString"
// FlagKubernetesSnapshots
// Routes snapshot requests from /api to the /apis endpoint
FlagKubernetesSnapshots = "kubernetesSnapshots"
// FlagKubernetesLibraryPanels
// Routes library panel requests from /api to the /apis endpoint
FlagKubernetesLibraryPanels = "kubernetesLibraryPanels"
// FlagKubernetesDashboards
// Use the kubernetes API in the frontend for dashboards
FlagKubernetesDashboards = "kubernetesDashboards"
2025-08-04 20:12:12 +08:00
// FlagKubernetesShortURLs
// Enables k8s short url api and uses it under the hood when handling legacy /api
2025-08-04 20:12:12 +08:00
FlagKubernetesShortURLs = "kubernetesShortURLs"
// FlagUseKubernetesShortURLsAPI
// Routes short url requests from /api to the /apis endpoint in the frontend. Depends on kubernetesShortURLs
FlagUseKubernetesShortURLsAPI = "useKubernetesShortURLsAPI"
// FlagKubernetesAlertingRules
// Adds support for Kubernetes alerting and recording rules
FlagKubernetesAlertingRules = "kubernetesAlertingRules"
// FlagKubernetesCorrelations
// Adds support for Kubernetes correlations
FlagKubernetesCorrelations = "kubernetesCorrelations"
// FlagKubernetesLogsDrilldown
// Adds support for Kubernetes logs drilldown
FlagKubernetesLogsDrilldown = "kubernetesLogsDrilldown"
// FlagKubernetesQueryCaching
// Adds support for Kubernetes querycaching
FlagKubernetesQueryCaching = "kubernetesQueryCaching"
// FlagDashboardDisableSchemaValidationV1
// Disable schema validation for dashboards/v1
FlagDashboardDisableSchemaValidationV1 = "dashboardDisableSchemaValidationV1"
// FlagDashboardDisableSchemaValidationV2
// Disable schema validation for dashboards/v2
FlagDashboardDisableSchemaValidationV2 = "dashboardDisableSchemaValidationV2"
// FlagDashboardSchemaValidationLogging
// Log schema validation errors so they can be analyzed later
FlagDashboardSchemaValidationLogging = "dashboardSchemaValidationLogging"
// FlagScanRowInvalidDashboardParseFallbackEnabled
// Enable fallback parsing behavior when scan row encounters invalid dashboard JSON
FlagScanRowInvalidDashboardParseFallbackEnabled = "scanRowInvalidDashboardParseFallbackEnabled"
// FlagDatasourceQueryTypes
// Show query type endpoints in datasource API servers (currently hardcoded for testdata, expressions, and prometheus)
FlagDatasourceQueryTypes = "datasourceQueryTypes"
// FlagQueryService
// Register /apis/query.grafana.app/ -- will eventually replace /api/ds/query
FlagQueryService = "queryService"
// FlagQueryServiceWithConnections
// Adds datasource connections to the query service
FlagQueryServiceWithConnections = "queryServiceWithConnections"
// FlagQueryServiceRewrite
2024-02-01 02:36:51 +08:00
// Rewrite requests targeting /ds/query to the query service
FlagQueryServiceRewrite = "queryServiceRewrite"
// FlagQueryServiceFromUI
// Routes requests to the new query service
FlagQueryServiceFromUI = "queryServiceFromUI"
2024-02-01 02:36:51 +08:00
// FlagQueryServiceFromExplore
// Routes explore requests to the new query service
FlagQueryServiceFromExplore = "queryServiceFromExplore"
// FlagCloudWatchBatchQueries
// Runs CloudWatch metrics queries as separate batches
FlagCloudWatchBatchQueries = "cloudWatchBatchQueries"
// FlagCachingOptimizeSerializationMemoryUsage
// 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.
FlagCachingOptimizeSerializationMemoryUsage = "cachingOptimizeSerializationMemoryUsage"
Transformations: Cumulative and window modes for `Add field from calculation` (#77029) * cumulative sum * refactor and create new mode * refactor - use reduceOptions for new mode also * revert naming * Add window function, rename statistical to cumulative (#77066) * Add window function, rename statistical to cumulative * Fix merge errors * fix more merge errors * refactor + add window funcs Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com> * add ff + tests + centered moving avg Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com> * make sum and mean cumulative more efficient (#77173) * make sum and mean cumulative more efficient * remove cumulative variance, add window stddev * refactor window to not use reducer for mean. wip variance stdDev * fix tests after optimization --------- Co-authored-by: Victor Marin <victor.marin@grafana.com> * optimize window func (#77266) * make sum and mean cumulative more efficient * remove cumulative variance, add window stddev * refactor window to not use reducer for mean. wip variance stdDev * fix tests after optimization * fix test lint * optimize window * tests are passing * fix nulls * fix all nulls --------- Co-authored-by: Victor Marin <victor.marin@grafana.com> * change window size to be percentage * fix tests to use percentage * fixed/percentage window size (#77369) * Add docs for cumulative and window functions of the add field from calculation transform. (#77352) add docs * splling * change WindowType -> WindowAlignment * update betterer * refactor getWindowCreator * add docs to content.ts * add feature toggle message --------- Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2023-11-03 22:39:58 +08:00
// FlagAddFieldFromCalculationStatFunctions
// Add cumulative and window functions to the add field from calculation transformation
FlagAddFieldFromCalculationStatFunctions = "addFieldFromCalculationStatFunctions"
// FlagAlertmanagerRemoteSecondary
// Enable Grafana to sync configuration and state with a remote Alertmanager.
FlagAlertmanagerRemoteSecondary = "alertmanagerRemoteSecondary"
// FlagAlertingProvenanceLockWrites
// Enables a feature to avoid issues with concurrent writes to the alerting provenance table in MySQL
FlagAlertingProvenanceLockWrites = "alertingProvenanceLockWrites"
// FlagAlertmanagerRemotePrimary
// Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.
FlagAlertmanagerRemotePrimary = "alertmanagerRemotePrimary"
// FlagAnnotationPermissionUpdate
// Change the way annotation permissions work by scoping them to folders and dashboards.
FlagAnnotationPermissionUpdate = "annotationPermissionUpdate"
// FlagExtractFieldsNameDeduplication
// Make sure extracted field names are unique in the dataframe
FlagExtractFieldsNameDeduplication = "extractFieldsNameDeduplication"
// FlagDashboardSceneForViewers
// Enables dashboard rendering using Scenes for viewer roles
FlagDashboardSceneForViewers = "dashboardSceneForViewers"
// FlagDashboardSceneSolo
// Enables rendering dashboards using scenes for solo panels
FlagDashboardSceneSolo = "dashboardSceneSolo"
// FlagDashboardScene
// Enables dashboard rendering using scenes for all roles
FlagDashboardScene = "dashboardScene"
// FlagDashboardNewLayouts
// Enables experimental new dashboard layouts
FlagDashboardNewLayouts = "dashboardNewLayouts"
// FlagDashboardUndoRedo
// Enables undo/redo in dynamic dashboards
FlagDashboardUndoRedo = "dashboardUndoRedo"
// FlagUnlimitedLayoutsNesting
// Enables unlimited dashboard panel grouping
FlagUnlimitedLayoutsNesting = "unlimitedLayoutsNesting"
// FlagPanelFilterVariable
// Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard
FlagPanelFilterVariable = "panelFilterVariable"
// FlagPdfTables
// Enables generating table data as PDF in reporting
FlagPdfTables = "pdfTables"
Canvas: Add Pan and Zoom (#76705) * Canvas: Add Zoom * Scale selecto components based on zoom state * Fix pan by reverting to 3.1.0 for zoom-pan * Update to latest library that fixes pan regression * Add mini map to canvas pan zoom * Fix selecto and anchors on hover * Update naming to be more clear * Switch back to contentComponent * Apply transformScale to drag and resize * Update connection source and target scaling * Add option to display mini map * Update yarn lock * Revert "Update yarn lock" This reverts commit 3d1dd65d5726fb0fd0813347451884a4034ae5d3. * Set yarn lock to main * Revert "Set yarn lock to main" This reverts commit 64bc50557e75657fae14f81077d1d08b4e9e9029. * Update to Yarn 4 * Add react-zoom-pan-pinch * Update react-zoom-pan checksum * Revert changes to json files * Remove last line of api merged * Remove last lines of all impacted jsons * Update home json * Update coordinate calc function to include scale * Fix types in coordinate calc function * Fix util calculation for transform * Fix arrow anchor shift behavior * Fix scale offset when adding elements during zoom * Fix drag of selected group during zoom * Add feature flag for canvas pan zoom * Revert "Add feature flag for canvas pan zoom" This reverts commit b026e31d8d9ed64b1fe307f852df10292fffadf4. * Regenerate feature flag after merge * Apply feature flag to enable pan zoom wrappers * Add mini map toggle behind feature flag * Simplify minimap behavior * Update feature flag registry * Set minimap to false by default * fix gen-cue * Set toggles gen to main Add blank line to toggle gen csv * Add canvas pan zoom to csv * Remove old comment * Change ref parameter to be more descriptive * Rename visibleFun to be more descriptive * Consolidate transformScale transformRef in util * Remove non-null assertion on connection parentRect * Consolidate parentRect null coalescing into object * Remove minimap and change toggle * Add controls inline help for pan and zoom * Clean up mouse events * Pull scale out of ref and isolate transform * Remove transform ref from scene div * Fix context menu visible behavior * Fix connections and update util functions * Move transform component instance to util * fix backend test * minor updates * Clean up connections / fix minor bug where offset of arrow wasn't being calculated correctly * missed connection code cleanup * cleanup scene code a bit more * actually fix backend test * move eslint disable line closer to actual issue --------- Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2024-01-03 03:52:21 +08:00
// FlagCanvasPanelPanZoom
// Allow pan and zoom in canvas panel
FlagCanvasPanelPanZoom = "canvasPanelPanZoom"
// FlagTimeComparison
// Enables time comparison option in supported panels
FlagTimeComparison = "timeComparison"
// FlagLogsInfiniteScrolling
// Enables infinite scrolling for the Logs panel in Explore and Dashboards
FlagLogsInfiniteScrolling = "logsInfiniteScrolling"
Log Rows: Added popover menu with filter options when a log line is selected (#75306) * LogRow: detect text selection * LogRow: refactor menu as component * LogRow: add actions to menu * LogRow: hack menu position * Remove unsused imports * LogRowMessage: remove popover code * PopoverMenu: refactor * LogRows: implement PopoverMenu at log rows level * PopoverMenu: implement copy * PopoverMenu: receive row model * PopoverMenu: fix onClick capture issue * Explore: add new filter methods and props for line filters * PopoverMenu: use new filter props * Explore: separate toggleable and non toggleable filters * PopoverMenu: improve copy * ModifyQuery: extend line filter with value argument * PopoverMenu: close with escape * Remove unused import * Prettier * PopoverMenu: remove label filter options * LogRow: rename text selection handling prop * Update test * Remove unused import * Popover menu: add unit test * LogRows: update unit test * Log row: hide the log row menu if the user is selecting text * Log row: dont hide row menu if popover is not in scope * Log rows: rename state variable * Popover menu: allow menu to scroll * Log rows: fix classname prop * Log rows: close popover if mouse event comes from outside the log rows * Declare new class using object style * Fix style declaration * Logs Popover Menu: add string filtering functions (#76757) * Loki modifyQuery: add line does not contain query modification * Elastic modifyQuery: implement line filters * Modify query: change action name to not be loki specific * Prettier * Prettier * Elastic: escape filter values * Popover menu: create feature flag * Log Rows: integrate logsRowsPopoverMenu flag * Rename feature flag * Popover menu: track interactions * Prettier * logRowsPopoverMenu: update stage * Popover menu: add ds type to tracking data * Log rows: move feature flag check * Improve handle deselection
2023-11-16 17:48:10 +08:00
// FlagLogRowsPopoverMenu
// Enable filtering menu displayed when text of a log line is selected
FlagLogRowsPopoverMenu = "logRowsPopoverMenu"
// FlagPluginsSkipHostEnvVars
// Disables passing host environment variable to plugin processes
FlagPluginsSkipHostEnvVars = "pluginsSkipHostEnvVars"
// FlagTableSharedCrosshair
// Enables shared crosshair in table panel
FlagTableSharedCrosshair = "tableSharedCrosshair"
// FlagRegressionTransformation
// Enables regression analysis transformation
FlagRegressionTransformation = "regressionTransformation"
// FlagKubernetesFeatureToggles
// Use the kubernetes API for feature toggle management in the frontend
FlagKubernetesFeatureToggles = "kubernetesFeatureToggles"
// FlagCloudRBACRoles
// Enabled grafana cloud specific RBAC roles
FlagCloudRBACRoles = "cloudRBACRoles"
// FlagAlertingQueryOptimization
// Optimizes eligible queries in order to reduce load on datasources
FlagAlertingQueryOptimization = "alertingQueryOptimization"
// FlagJitterAlertRulesWithinGroups
// Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group. Disables sequential evaluation if enabled.
FlagJitterAlertRulesWithinGroups = "jitterAlertRulesWithinGroups"
// FlagOnPremToCloudMigrations
// Enable the Grafana Migration Assistant, which helps you easily migrate various on-prem resources to your Grafana Cloud stack.
FlagOnPremToCloudMigrations = "onPremToCloudMigrations"
// FlagSecretsManagementAppPlatform
// Enable the secrets management API and services under app platform
FlagSecretsManagementAppPlatform = "secretsManagementAppPlatform"
// FlagSecretsManagementAppPlatformUI
// Enable the secrets management app platform UI
FlagSecretsManagementAppPlatformUI = "secretsManagementAppPlatformUI"
// FlagAlertingSaveStatePeriodic
// Writes the state periodically to the database, asynchronous to rule evaluation
FlagAlertingSaveStatePeriodic = "alertingSaveStatePeriodic"
// FlagAlertingSaveStateCompressed
// Enables the compressed protobuf-based alert state storage. Default is enabled.
FlagAlertingSaveStateCompressed = "alertingSaveStateCompressed"
// FlagScopeApi
// In-development feature flag for the scope api using the app platform.
FlagScopeApi = "scopeApi"
// FlagUseScopeSingleNodeEndpoint
// Use the single node endpoint for the scope api. This is used to fetch the scope parent node.
FlagUseScopeSingleNodeEndpoint = "useScopeSingleNodeEndpoint"
// FlagUseMultipleScopeNodesEndpoint
// Makes the frontend use the &#39;names&#39; param for fetching multiple scope nodes at once
FlagUseMultipleScopeNodesEndpoint = "useMultipleScopeNodesEndpoint"
// FlagLogQLScope
// In-development feature that will allow injection of labels into loki queries.
FlagLogQLScope = "logQLScope"
// FlagSqlExpressions
// Enables SQL Expressions, which can execute SQL queries against data source results.
FlagSqlExpressions = "sqlExpressions"
// FlagSqlExpressionsColumnAutoComplete
// Enables column autocomplete for SQL Expressions
FlagSqlExpressionsColumnAutoComplete = "sqlExpressionsColumnAutoComplete"
// FlagGroupToNestedTableTransformation
// Enables the group to nested table transformation
FlagGroupToNestedTableTransformation = "groupToNestedTableTransformation"
// FlagNewPDFRendering
// New implementation for the dashboard-to-PDF rendering
FlagNewPDFRendering = "newPDFRendering"
// FlagTlsMemcached
// Use TLS-enabled memcached in the enterprise caching feature
FlagTlsMemcached = "tlsMemcached"
// FlagKubernetesAggregator
// Enable grafana&#39;s embedded kube-aggregator
FlagKubernetesAggregator = "kubernetesAggregator"
// FlagKubernetesAggregatorCapTokenAuth
// Enable CAP token based authentication in grafana&#39;s embedded kube-aggregator
FlagKubernetesAggregatorCapTokenAuth = "kubernetesAggregatorCapTokenAuth"
// FlagGroupByVariable
// Enable groupBy variable support in scenes dashboards
FlagGroupByVariable = "groupByVariable"
// FlagScopeFilters
// Enables the use of scope filters in Grafana
FlagScopeFilters = "scopeFilters"
// FlagOauthRequireSubClaim
// Require that sub claims is present in oauth tokens.
FlagOauthRequireSubClaim = "oauthRequireSubClaim"
// FlagNewDashboardWithFiltersAndGroupBy
// Enables filters and group by variables on all new dashboards. Variables are added only if default data source supports filtering.
FlagNewDashboardWithFiltersAndGroupBy = "newDashboardWithFiltersAndGroupBy"
// FlagCloudWatchNewLabelParsing
// Updates CloudWatch label parsing to be more accurate
FlagCloudWatchNewLabelParsing = "cloudWatchNewLabelParsing"
// FlagDisableNumericMetricsSortingInExpressions
// In server-side expressions, disable the sorting of numeric-kind metrics by their metric name or labels.
FlagDisableNumericMetricsSortingInExpressions = "disableNumericMetricsSortingInExpressions"
// FlagGrafanaManagedRecordingRules
// Enables Grafana-managed recording rules.
FlagGrafanaManagedRecordingRules = "grafanaManagedRecordingRules"
// FlagQueryLibrary
// Enables Saved queries (query library) feature
FlagQueryLibrary = "queryLibrary"
// FlagDashboardLibrary
// Enable suggested dashboards when creating new dashboards
FlagDashboardLibrary = "dashboardLibrary"
// FlagLogsExploreTableDefaultVisualization
// Sets the logs table as default visualisation in logs explore
FlagLogsExploreTableDefaultVisualization = "logsExploreTableDefaultVisualization"
// FlagAlertingListViewV2
// Enables the new alert list view design
FlagAlertingListViewV2 = "alertingListViewV2"
// FlagAlertingDisableSendAlertsExternal
// Disables the ability to send alerts to an external Alertmanager datasource.
FlagAlertingDisableSendAlertsExternal = "alertingDisableSendAlertsExternal"
// FlagPreserveDashboardStateWhenNavigating
// Enables possibility to preserve dashboard variables and time range when navigating between dashboards
FlagPreserveDashboardStateWhenNavigating = "preserveDashboardStateWhenNavigating"
// FlagAlertingCentralAlertHistory
// Enables the new central alert history.
FlagAlertingCentralAlertHistory = "alertingCentralAlertHistory"
// FlagPluginProxyPreserveTrailingSlash
// Preserve plugin proxy trailing slash.
FlagPluginProxyPreserveTrailingSlash = "pluginProxyPreserveTrailingSlash"
// FlagAzureMonitorPrometheusExemplars
// Allows configuration of Azure Monitor as a data source that can provide Prometheus exemplars
FlagAzureMonitorPrometheusExemplars = "azureMonitorPrometheusExemplars"
// FlagPinNavItems
// Enables pinning of nav items
FlagPinNavItems = "pinNavItems"
// FlagAuthZGRPCServer
// Enables the gRPC server for authorization
FlagAuthZGRPCServer = "authZGRPCServer"
// FlagSsoSettingsLDAP
// Use the new SSO Settings API to configure LDAP
FlagSsoSettingsLDAP = "ssoSettingsLDAP"
// FlagZanzana
// Use openFGA as authorization engine.
FlagZanzana = "zanzana"
// FlagZanzanaNoLegacyClient
// Use openFGA as main authorization engine and disable legacy RBAC clietn.
FlagZanzanaNoLegacyClient = "zanzanaNoLegacyClient"
// FlagReloadDashboardsOnParamsChange
// Enables reload of dashboards on scopes, time range and variables changes
FlagReloadDashboardsOnParamsChange = "reloadDashboardsOnParamsChange"
// FlagEnableScopesInMetricsExplore
// Enables the scopes usage in Metrics Explore
FlagEnableScopesInMetricsExplore = "enableScopesInMetricsExplore"
// FlagCloudWatchRoundUpEndTime
// Round up end time for metric queries to the next minute to avoid missing data
FlagCloudWatchRoundUpEndTime = "cloudWatchRoundUpEndTime"
// FlagPrometheusAzureOverrideAudience
// 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.
FlagPrometheusAzureOverrideAudience = "prometheusAzureOverrideAudience"
// FlagAlertingFilterV2
// Enable the new alerting search experience
FlagAlertingFilterV2 = "alertingFilterV2"
// FlagDataplaneAggregator
// Enable grafana dataplane aggregator
FlagDataplaneAggregator = "dataplaneAggregator"
// FlagNewFiltersUI
// Enables new combobox style UI for the Ad hoc filters variable in scenes architecture
FlagNewFiltersUI = "newFiltersUI"
// FlagVizActionsAuth
// Allows authenticated API calls in actions
FlagVizActionsAuth = "vizActionsAuth"
Alerting: Prometheus primary mode for the alert list page (#92975) * Lazy loading of mimir groups * Refactor rule statuses * Use prometheus endpoint to populate namespace and group dropdowns * Add a feature toggle * Use lazy loading ruler rules if the feature toggle enabled * Remove unnecessary props form dynamic table * Remove query from hash calculation * Conditionally load ns and group autocompletions from Prom or Ruler APIs * Fix prometheus dto labels property type * Add a new suggestions hook which provides autocomplete options for the alert rule form * Improve delete status handling * Add waiting for Prometheus endpoint consistency after update submission * Get rule definition from ruler or prometheus endpoint in useCombinedRule * Add Prometheus consistency check. Fix view page redirects * Remove rules reload after rule creation, remove statuses from Prom primary mode * Add waiting for Prometheus consistency on delete rule action * Add groups list rendering improvements * Add memo to useAbilities * Fix GMA consistency check, fix GMA statuses * defer filered rules rendering * Update failing tests * Update locales * Add rule-id tests * Remove unused action * update loading styles * Fix unrelated test * Add a new object for reading alerting feature toggles, address minor review issues * Improve consistency check * update i18n * Improve rule form redirects * Refactor feature toggle handling * Update docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com> * Update public/app/features/alerting/unified/components/rule-viewer/RuleViewer.tsx Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com> * Fix prettier issues * Fix i18n * Fix the feature toggle description * Fix rule updates, fix ruler-based suggestions, wait for deletion for GMA rules * Fix rename * Remove unused code, improve copy * Update i18n * Fix url redirect when serving from subpath --------- Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com> Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com> Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-09-27 20:27:16 +08:00
// FlagAlertingPrometheusRulesPrimary
// Uses Prometheus rules as the primary source of truth for ruler-enabled data sources
FlagAlertingPrometheusRulesPrimary = "alertingPrometheusRulesPrimary"
// FlagExploreLogsShardSplitting
// Used in Logs Drilldown to split queries into multiple queries based on the number of shards
FlagExploreLogsShardSplitting = "exploreLogsShardSplitting"
// FlagExploreLogsAggregatedMetrics
// Used in Logs Drilldown to query by aggregated metrics
FlagExploreLogsAggregatedMetrics = "exploreLogsAggregatedMetrics"
// FlagExploreLogsLimitedTimeRange
// Used in Logs Drilldown to limit the time range
FlagExploreLogsLimitedTimeRange = "exploreLogsLimitedTimeRange"
// FlagAppPlatformGrpcClientAuth
// Enables the gRPC client to authenticate with the App Platform by using ID &amp; access tokens
FlagAppPlatformGrpcClientAuth = "appPlatformGrpcClientAuth"
// FlagGroupAttributeSync
// Enable the groupsync extension for managing Group Attribute Sync feature
FlagGroupAttributeSync = "groupAttributeSync"
// FlagAlertingQueryAndExpressionsStepMode
// Enables step mode for alerting queries and expressions
FlagAlertingQueryAndExpressionsStepMode = "alertingQueryAndExpressionsStepMode"
// FlagImprovedExternalSessionHandling
// Enables improved support for OAuth external sessions. After enabling this feature, users might need to re-authenticate themselves.
FlagImprovedExternalSessionHandling = "improvedExternalSessionHandling"
// FlagUseSessionStorageForRedirection
// Use session storage for handling the redirection after login
FlagUseSessionStorageForRedirection = "useSessionStorageForRedirection"
// FlagRolePickerDrawer
// Enables the new role picker drawer design
FlagRolePickerDrawer = "rolePickerDrawer"
// FlagUnifiedStorageSearch
// Enable unified storage search
FlagUnifiedStorageSearch = "unifiedStorageSearch"
Plugins: Add Subresource Integrity checks (#93024) * Plugins: Pass hashes for SRI to frontend * Add SRI hashes to frontendsettings DTOs * Add docstring * TestSriHashes * Fix typo * Changed SriHashes to ModuleHash * update loader_test compareOpts * update ModuleHash error message * Add TestModuleHash/no_module.js * Add omitEmpty to moduleHash * Add ModuleHash to api/plugins/${pluginId}/settings * moved ModuleHash field * feat(plugins): add moduleHash to bootData and plugin types * feat(plugins): if moduleHash is available apply it to systemjs importmap * Calculate ModuleHash for CDN provisioned plugins * Add ModuleHash tests for TestCalculate * adjust test case name * removed .envrc * Fix signature verification failing for internal plugins * fix tests * Add pluginsFilesystemSriChecks feature togglemk * renamed FilesystemSriChecksEnabled * refactor(plugin_loader): prefer extending type declaration over ts-error * added a couple more tests * Removed unused features * Removed unused argument from signature.DefaultCalculator call * Removed unused argument from bootstrap.DefaultConstructFunc * Moved ModuleHash to pluginassets service * update docstring * lint * Removed cdn dependency from manifest.Signature * add tests * fix extra parameters in tests * "fix" tests * removed outdated test * removed unused cdn dependency in signature.DefaultCalculator * reduce diff * Cache returned values * Add support for deeply nested plugins (more than 1 hierarchy level) * simplify cache usage * refactor TestService_ModuleHash_Cache * removed unused testdata * re-generate feature toggles * use version for module hash cache * Renamed feature toggle to pluginsSriChecks and use it for both cdn and filesystem * Removed app/types/system-integrity.d.ts * re-generate feature toggles * re-generate feature toggles * feat(plugins): put systemjs integrity hash behind feature flag --------- Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-10-04 20:55:09 +08:00
// FlagUnifiedStorageSearchSprinkles
// Enable sprinkles on unified storage search
FlagUnifiedStorageSearchSprinkles = "unifiedStorageSearchSprinkles"
// FlagManagedDualWriter
// Pick the dual write mode from database configs
FlagManagedDualWriter = "managedDualWriter"
Plugins: Add Subresource Integrity checks (#93024) * Plugins: Pass hashes for SRI to frontend * Add SRI hashes to frontendsettings DTOs * Add docstring * TestSriHashes * Fix typo * Changed SriHashes to ModuleHash * update loader_test compareOpts * update ModuleHash error message * Add TestModuleHash/no_module.js * Add omitEmpty to moduleHash * Add ModuleHash to api/plugins/${pluginId}/settings * moved ModuleHash field * feat(plugins): add moduleHash to bootData and plugin types * feat(plugins): if moduleHash is available apply it to systemjs importmap * Calculate ModuleHash for CDN provisioned plugins * Add ModuleHash tests for TestCalculate * adjust test case name * removed .envrc * Fix signature verification failing for internal plugins * fix tests * Add pluginsFilesystemSriChecks feature togglemk * renamed FilesystemSriChecksEnabled * refactor(plugin_loader): prefer extending type declaration over ts-error * added a couple more tests * Removed unused features * Removed unused argument from signature.DefaultCalculator call * Removed unused argument from bootstrap.DefaultConstructFunc * Moved ModuleHash to pluginassets service * update docstring * lint * Removed cdn dependency from manifest.Signature * add tests * fix extra parameters in tests * "fix" tests * removed outdated test * removed unused cdn dependency in signature.DefaultCalculator * reduce diff * Cache returned values * Add support for deeply nested plugins (more than 1 hierarchy level) * simplify cache usage * refactor TestService_ModuleHash_Cache * removed unused testdata * re-generate feature toggles * use version for module hash cache * Renamed feature toggle to pluginsSriChecks and use it for both cdn and filesystem * Removed app/types/system-integrity.d.ts * re-generate feature toggles * re-generate feature toggles * feat(plugins): put systemjs integrity hash behind feature flag --------- Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-10-04 20:55:09 +08:00
// FlagPluginsSriChecks
// Enables SRI checks for plugin assets
FlagPluginsSriChecks = "pluginsSriChecks"
// FlagUnifiedStorageBigObjectsSupport
// Enables to save big objects in blob storage
FlagUnifiedStorageBigObjectsSupport = "unifiedStorageBigObjectsSupport"
// FlagTimeRangeProvider
// Enables time pickers sync
FlagTimeRangeProvider = "timeRangeProvider"
// FlagAzureMonitorDisableLogLimit
// Disables the log limit restriction for Azure Monitor when true. The limit is enabled by default.
FlagAzureMonitorDisableLogLimit = "azureMonitorDisableLogLimit"
// FlagPreinstallAutoUpdate
// Enables automatic updates for pre-installed plugins
FlagPreinstallAutoUpdate = "preinstallAutoUpdate"
// FlagPlaylistsReconciler
// Enables experimental reconciler for playlists
FlagPlaylistsReconciler = "playlistsReconciler"
Auth: Passwordless Login Option Using Magic Links (#95436) * initial passwordless client * passwordless login page * Working basic e2e flow * Add todo comments * Improve the passwordless login flow * improved passwordless login, backend for passwordless signup * add expiration to emails * update email templates & render username & name fields on signup * improve email templates * change login page text while awaiting passwordless code * fix merge conflicts * use claims.TypeUser * add initial passwordless tests * better error messages * simplified error name * remove completed TODOs * linting & minor test improvements & rename passwordless routes * more linting fixes * move code generation to its own func, use locationService to get query params * fix ampersand in email templates & use passwordless api routes in LoginCtrl * txt emails more closely match html email copy * move passwordless auth behind experimental feature toggle * fix PasswordlessLogin property failing typecheck * make update-workspace * user correct placeholder * Update emails/templates/passwordless_verify_existing_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_existing_user.mjml Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.mjml Co-authored-by: Dan Cech <dcech@grafana.com> * use &amp; in email templates * Update emails/templates/passwordless_verify_existing_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * remove IP address validation * struct for passwordless settings * revert go.work.sum changes * mock locationService.getSearch in failing test --------- Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com> Co-authored-by: Dan Cech <dcech@grafana.com>
2024-11-14 21:50:55 +08:00
// FlagPasswordlessMagicLinkAuthentication
// Enable passwordless login via magic link authentication
FlagPasswordlessMagicLinkAuthentication = "passwordlessMagicLinkAuthentication"
// FlagExploreMetricsRelatedLogs
// Display Related Logs in Grafana Metrics Drilldown
FlagExploreMetricsRelatedLogs = "exploreMetricsRelatedLogs"
// FlagPrometheusSpecialCharsInLabelValues
// Adds support for quotes and special characters in label values for Prometheus queries
FlagPrometheusSpecialCharsInLabelValues = "prometheusSpecialCharsInLabelValues"
// FlagEnableExtensionsAdminPage
// Enables the extension admin page regardless of development mode
FlagEnableExtensionsAdminPage = "enableExtensionsAdminPage"
// FlagEnableSCIM
// Enables SCIM support for user and group management
FlagEnableSCIM = "enableSCIM"
// FlagCrashDetection
// Enables browser crash detection reporting to Faro.
FlagCrashDetection = "crashDetection"
// FlagAlertingUIOptimizeReducer
// Enables removing the reducer from the alerting UI when creating a new alert rule and using instant query
FlagAlertingUIOptimizeReducer = "alertingUIOptimizeReducer"
// FlagAzureMonitorEnableUserAuth
// Enables user auth for Azure Monitor datasource only
FlagAzureMonitorEnableUserAuth = "azureMonitorEnableUserAuth"
// FlagAlertingAIGenAlertRules
// Enable AI-generated alert rules.
FlagAlertingAIGenAlertRules = "alertingAIGenAlertRules"
// FlagAlertingAIFeedback
// Enable AI-generated feedback from the Grafana UI.
FlagAlertingAIFeedback = "alertingAIFeedback"
// FlagAlertingAIImproveAlertRules
// Enable AI-improve alert rules labels and annotations.
FlagAlertingAIImproveAlertRules = "alertingAIImproveAlertRules"
// FlagAlertingAIGenTemplates
// Enable AI-generated alerting templates.
FlagAlertingAIGenTemplates = "alertingAIGenTemplates"
// FlagAlertingEnrichmentPerRule
// Enable enrichment per rule in the alerting UI.
FlagAlertingEnrichmentPerRule = "alertingEnrichmentPerRule"
// FlagAlertingEnrichmentAssistantInvestigations
// Enable Assistant Investigations enrichment type.
FlagAlertingEnrichmentAssistantInvestigations = "alertingEnrichmentAssistantInvestigations"
// FlagAlertingAIAnalyzeCentralStateHistory
// Enable AI-analyze central state history.
FlagAlertingAIAnalyzeCentralStateHistory = "alertingAIAnalyzeCentralStateHistory"
// FlagAlertingNotificationsStepMode
// Enables simplified step mode in the notifications section
FlagAlertingNotificationsStepMode = "alertingNotificationsStepMode"
// FlagFeedbackButton
// Enables a button to send feedback from the Grafana UI
FlagFeedbackButton = "feedbackButton"
// FlagUnifiedStorageSearchUI
// Enable unified storage search UI
FlagUnifiedStorageSearchUI = "unifiedStorageSearchUI"
// FlagElasticsearchCrossClusterSearch
// Enables cross cluster search in the Elasticsearch data source
FlagElasticsearchCrossClusterSearch = "elasticsearchCrossClusterSearch"
// FlagUnifiedHistory
// Displays the navigation history so the user can navigate back to previous pages
FlagUnifiedHistory = "unifiedHistory"
// FlagLokiLabelNamesQueryApi
// Defaults to using the Loki `/labels` API instead of `/series`
FlagLokiLabelNamesQueryApi = "lokiLabelNamesQueryApi"
// FlagInvestigationsBackend
// Enable the investigations backend API
FlagInvestigationsBackend = "investigationsBackend"
// FlagK8SFolderCounts
// Enable folder&#39;s api server counts
FlagK8SFolderCounts = "k8SFolderCounts"
// FlagK8SFolderMove
// Enable folder&#39;s api server move
FlagK8SFolderMove = "k8SFolderMove"
// FlagImprovedExternalSessionHandlingSAML
// Enables improved support for SAML external sessions. Ensure the NameID format is correctly configured in Grafana for SAML Single Logout to function properly.
FlagImprovedExternalSessionHandlingSAML = "improvedExternalSessionHandlingSAML"
// FlagTeamHttpHeadersTempo
// Enables LBAC for datasources for Tempo to apply LBAC filtering of traces to the client requests for users in teams
FlagTeamHttpHeadersTempo = "teamHttpHeadersTempo"
// FlagTemplateVariablesUsesCombobox
// Use new **Combobox** component for template variables
FlagTemplateVariablesUsesCombobox = "templateVariablesUsesCombobox"
// FlagGrafanaAdvisor
// Enables Advisor app
FlagGrafanaAdvisor = "grafanaAdvisor"
// FlagElasticsearchImprovedParsing
// Enables less memory intensive Elasticsearch result parsing
FlagElasticsearchImprovedParsing = "elasticsearchImprovedParsing"
// FlagDatasourceConnectionsTab
// Shows defined connections for a data source in the plugins detail page
FlagDatasourceConnectionsTab = "datasourceConnectionsTab"
// FlagFetchRulesUsingPost
// Use a POST request to list rules by passing down the namespaces user has access to
FlagFetchRulesUsingPost = "fetchRulesUsingPost"
Logs Panel: Base elements for the new visualization (#99084) * Create base components * Create measurement service * Add container for list * Use measurement to render virtualized log lines * Match rendered styles in 2d context for measuring * Improve virtualization initialization and handle resize * Introduce log line processing * Virtualization: fix measurement of lines with line endings * Virtualization: include scrollbar width in calculation * Remove logs * Virtualization: optimize text measurement * Add support for forceEscape * Log line: properly style wrapped/unwrapped lines * Virtualization: handle possible overflows * Improve overflow handling * LogList: remove scroll position ref * Remove logs * Remove log * Add top/bottom navigation buttons * Add timestamp to pre-processing * Add showtime support * Fix imports * Chore: simplify dedup * Show level * Refactor measurement and measure level and timestamp * Virtualization: skip unnecessary measurements * Improve measurements to minimize overflow chance * Introduce logline colors * Update palette * Remove pretiffying * Add comment * Remove unused variable * Add color for info level * Fix dependencies * Refactor overflow to account for smaller estimations * Debounce resizing * Fix imports * Further optimize height calculation * Remove outline * Unused import * Use less under/overflow method * Respond to height changes * Refactor size adjustment to account for layout changes * Add Logs Panel support * Add margin bottom to log lines * Remove unused option * LogList: container div should never be null Bad API design * Log List: make app not undefined and update containerElement usages * New Logs Panel: Create as new visualization (#99427) * Logs Panel: clean up old panel * Logs Panel New: create as new visualization * Plugin: mark as alpha * Logs panel new: hold container in a state variable * Logs panel: fix no data state * Create newLogsPanel feature flag * Logs: use new feature flag * Prettier * Add new panel to code owners * Logs Navigation: add translations * Address betterer issues * Fix import * Extract translations * Update virtualization.ts * Virtualization: add DOM fallback for text measurement * Run gen-cue * plugins_integration_test: add logs-new to expected plugins
2025-02-05 01:40:17 +08:00
// FlagNewLogsPanel
// Enables the new logs panel in Explore
FlagNewLogsPanel = "newLogsPanel"
// FlagGrafanaconThemes
// Enables the temporary themes for GrafanaCon
FlagGrafanaconThemes = "grafanaconThemes"
// FlagAlertingJiraIntegration
// Enables the new Jira integration for contact points in cloud alert managers.
FlagAlertingJiraIntegration = "alertingJiraIntegration"
Alerting: Add alert rule version history - part1 (#99490) * Add alertingRuleVersionHistory feature toggle * WIP: Add version history tab * revert temp change in index.ts * wip2 * --wip-- * sync code with the BE changes in the endpoint * add translations * Add translations * use ff only for restore feature * WIP: Add tracking, make version required, and start mapping dif results Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com> * Tweak more translations and improve types * Add button to show/hide JSON diff * update type for top level rule fields * Create types * Make updated_by/version properties optional * Update mocks to remove updated by and version * add comments to restore code * rename fetature flag, as we use this one only for the restore feature * Update version history to handle special cases * Add diff numbers * Fix conflicts * Move generic computeVersionDiff to a utils file * Update DOM structure of version summary and tidy up types * Add tests for version comparison logic * Lint fix utils file * Rename props and add docs * Change to EmptyState and log when no versions * Remove CreatedBy component and simplify * Add missing i18n for version history * add test for computeVersionDiff * update test * fix number diff order and add a test * fix prettier * fix prettier * Add promise resolve back in * Rename to humanReadableDiff and tweak translation * Show tab for recording rules as well * Split components out to separate files * Add optional interval seconds * Update i18n * Remove commented code * Remove value * Remove unneeded version * Consistent rendering of updated by * Mode parseVersionInfo to a separate pure function * update invalidate/provide tags for getAlertVersionHistory * Use checkedVersions state only in the parent component * update getSpecialUidMap name and create an interface * Fix prettier * update tab description * use set instead of map for checkedVersions --------- Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-02-17 20:25:32 +08:00
// FlagAlertingUseNewSimplifiedRoutingHashAlgorithm
FlagAlertingUseNewSimplifiedRoutingHashAlgorithm = "alertingUseNewSimplifiedRoutingHashAlgorithm"
// FlagUseScopesNavigationEndpoint
// Use the scopes navigation endpoint instead of the dashboardbindings endpoint
FlagUseScopesNavigationEndpoint = "useScopesNavigationEndpoint"
// FlagScopeSearchAllLevels
// Enable scope search to include all levels of the scope node tree
FlagScopeSearchAllLevels = "scopeSearchAllLevels"
Alerting: Add alert rule version history - part1 (#99490) * Add alertingRuleVersionHistory feature toggle * WIP: Add version history tab * revert temp change in index.ts * wip2 * --wip-- * sync code with the BE changes in the endpoint * add translations * Add translations * use ff only for restore feature * WIP: Add tracking, make version required, and start mapping dif results Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com> * Tweak more translations and improve types * Add button to show/hide JSON diff * update type for top level rule fields * Create types * Make updated_by/version properties optional * Update mocks to remove updated by and version * add comments to restore code * rename fetature flag, as we use this one only for the restore feature * Update version history to handle special cases * Add diff numbers * Fix conflicts * Move generic computeVersionDiff to a utils file * Update DOM structure of version summary and tidy up types * Add tests for version comparison logic * Lint fix utils file * Rename props and add docs * Change to EmptyState and log when no versions * Remove CreatedBy component and simplify * Add missing i18n for version history * add test for computeVersionDiff * update test * fix number diff order and add a test * fix prettier * fix prettier * Add promise resolve back in * Rename to humanReadableDiff and tweak translation * Show tab for recording rules as well * Split components out to separate files * Add optional interval seconds * Update i18n * Remove commented code * Remove value * Remove unneeded version * Consistent rendering of updated by * Mode parseVersionInfo to a separate pure function * update invalidate/provide tags for getAlertVersionHistory * Use checkedVersions state only in the parent component * update getSpecialUidMap name and create an interface * Fix prettier * update tab description * use set instead of map for checkedVersions --------- Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-02-17 20:25:32 +08:00
// FlagAlertingRuleVersionHistoryRestore
// Enables the alert rule version history restore feature
FlagAlertingRuleVersionHistoryRestore = "alertingRuleVersionHistoryRestore"
// FlagNewShareReportDrawer
// Enables the report creation drawer in a dashboard
FlagNewShareReportDrawer = "newShareReportDrawer"
// FlagRendererDisableAppPluginsPreload
// Disable pre-loading app plugins when the request is coming from the renderer
FlagRendererDisableAppPluginsPreload = "rendererDisableAppPluginsPreload"
// FlagAssetSriChecks
// Enables SRI checks for Grafana JavaScript assets
FlagAssetSriChecks = "assetSriChecks"
// FlagAlertRuleRestore
// Enables the alert rule restore feature
FlagAlertRuleRestore = "alertRuleRestore"
// FlagInfinityRunQueriesInParallel
// Enables running Infinity queries in parallel
FlagInfinityRunQueriesInParallel = "infinityRunQueriesInParallel"
// FlagInviteUserExperimental
// Renders invite user button along the app
FlagInviteUserExperimental = "inviteUserExperimental"
// FlagAlertingMigrationUI
// Enables the alerting migration UI, to migrate data source-managed rules to Grafana-managed rules
FlagAlertingMigrationUI = "alertingMigrationUI"
// FlagAlertingImportYAMLUI
// Enables a UI feature for importing rules from a Prometheus file to Grafana-managed rules
FlagAlertingImportYAMLUI = "alertingImportYAMLUI"
// FlagUnifiedStorageHistoryPruner
// Enables the unified storage history pruner
FlagUnifiedStorageHistoryPruner = "unifiedStorageHistoryPruner"
// FlagAzureMonitorLogsBuilderEditor
// Enables the logs builder mode for the Azure Monitor data source
FlagAzureMonitorLogsBuilderEditor = "azureMonitorLogsBuilderEditor"
// FlagLocaleFormatPreference
Sidebar: Create a sidebar that can render an extension (#102626) * Extension Sidebar: Add missing `web-section` icon * Extension Sidebar: Add core extension sidebar components * Extension Sidebar: Integrate extension sidebar into Grafana * Extension Sidebar: Change extension point to alpha * Extension Sidebar: Fix saved state of docked extensions * Extension Sidebar: Delete from local storage if undocked * Extension Sidebar: Move main scrollbar from body to pane * Extension Sidebar: Expose `ExtensionInfo` * Extension Sidebar: Move `useComponents` into ExtensionSidebar * Extension Sidebar: Store selection in `localStorage` * Extension Sidebar: Simplify return of extension point meta * Extension Sidebar: Ensure `body` is scrollable when sidebar is closed * Extension Sidebar: Add missing `GlobalStyles` change * Extension Sidebar: Don't render `ExtensionSidebar` unless it should be open * Extension Sidebar: Better toggle handling * Extension Sidebar: Fix wrong header height * Extension Sidebar: Change `getExtensionPointPluginMeta` to use `addedComponents` and add documentation * Extension Sidebar: Add tests for `getExtensionPointPluginMeta` * Extension Sidebar: Add tests for `ExtensionSidebarProvider` * Extension Sidebar: Fix tests `ExtensionSidebarProvider` * Extension Sidebar: Add tests `ExtensionToolbarItem` * Extension Sidebar: Add `extensionSidebar` feature toggle * Extension Sidebar: Put implementation behind `extensionSidebar` feature toggle * update feature toggles * fix lint * Extension Sidebar: Only toggle if clicking the same button * Extension Sidebar: Hide sidebar if chromeless * Update feature toggles doc * Sidebar: Add `isEnabled` to ExtensionSidebarProvider * Extension Sidebar: Use conditional CSS classes * Extension Sidebar: Move header height to GrafanaContext * Sidebar: Adapt to feature toggle change * Sidebar: Remove unused import * Sidebar: Keep featuretoggles in ExtensionSidebar tests * ProviderConfig: Keep `config` import in tests * FeatureToggles: adapt to docs review * fix typo
2025-04-03 18:16:35 +08:00
// Specifies the locale so the correct format for numbers and dates can be shown
FlagLocaleFormatPreference = "localeFormatPreference"
// FlagUnifiedStorageGrpcConnectionPool
// Enables the unified storage grpc connection pool
FlagUnifiedStorageGrpcConnectionPool = "unifiedStorageGrpcConnectionPool"
Alerting: Recover deleted alert rules (#101869) * add column guid to alert rule table and rule_guid to rule version table + populate the new field with UUID * update storage and domain models * patch GUID * ignore GUID in fingerprint tests * get alert rule versions by GUID * update rule delete to reset uid in history instead of deleting rows * add test * Update delete rule to require UserUID, remove all versions and create "delete" version that holds information about who and when deleted the rule * update usages of the delete method * add list deleted rules to store * list api to support deleted query parameter * add list deleted rules to store ^ Conflicts: ^ pkg/services/ngalert/store/alert_rule_test.go * list api to support deleted query parameter * Restore deleted rules * fix recovering manually recording rules * update role control for the trash route * add alertingRuleRecoverDeleted feature toggle enabled by default * fix access control for trash menu item in the navtree * Add alertingRuleRecoverDeleted feature toggle, add Delete permanently alert rule menu option * hide remove permanently functionality in the UI until we have the api available for it * discard wrong changes after merging * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * Reverted changes in go.work.sum after fixing conflicts * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * Reverted changes in pkg/services/ngalert/models/alert_rule.go after fixing conflicts * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * restore delete permanently and add the queryparam for it * update snapshots * fix translations * protect trash route by the feature toggles * use the new rulerRuleType for checks * revert ability to delete permanently and alert rule from the ui * remove unnecessary update after reverting * fix ff * add tracking * use recently deleted instead of trash * create isRecoverDeletedRulesEnabled for checking ffs * address pr feedback 1 * include alert rule uid in getRowId * use RulerGrafanaRulesConfigDTO for deleted rules response * use isLoading in the AlertingPageWrapper * fix wrong check for recording rules type * add test for restoring manually through the alert rule form * add test for restoring deleted rule * use importAlertingComponent * udpate mock * address pr feedback * update translations * address feedback * address feedback 2 * address feedback 3 * address feedback 4 * move transformation of the response to the endpoint * fix typo * refactor grafanaRuleDtoToFormValues * update translations * use guid for identifying rows * prettier * use ONLY the guid for identifying rows * Add provides/invalidates tags for deleted rules --------- Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com> Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-03-27 22:39:26 +08:00
// FlagAlertingRulePermanentlyDelete
// Enables UI functionality to permanently delete alert rules
FlagAlertingRulePermanentlyDelete = "alertingRulePermanentlyDelete"
Alerting: Recover deleted alert rules (#101869) * add column guid to alert rule table and rule_guid to rule version table + populate the new field with UUID * update storage and domain models * patch GUID * ignore GUID in fingerprint tests * get alert rule versions by GUID * update rule delete to reset uid in history instead of deleting rows * add test * Update delete rule to require UserUID, remove all versions and create "delete" version that holds information about who and when deleted the rule * update usages of the delete method * add list deleted rules to store * list api to support deleted query parameter * add list deleted rules to store ^ Conflicts: ^ pkg/services/ngalert/store/alert_rule_test.go * list api to support deleted query parameter * Restore deleted rules * fix recovering manually recording rules * update role control for the trash route * add alertingRuleRecoverDeleted feature toggle enabled by default * fix access control for trash menu item in the navtree * Add alertingRuleRecoverDeleted feature toggle, add Delete permanently alert rule menu option * hide remove permanently functionality in the UI until we have the api available for it * discard wrong changes after merging * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * Reverted changes in go.work.sum after fixing conflicts * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * Reverted changes in pkg/services/ngalert/models/alert_rule.go after fixing conflicts * Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts * restore delete permanently and add the queryparam for it * update snapshots * fix translations * protect trash route by the feature toggles * use the new rulerRuleType for checks * revert ability to delete permanently and alert rule from the ui * remove unnecessary update after reverting * fix ff * add tracking * use recently deleted instead of trash * create isRecoverDeletedRulesEnabled for checking ffs * address pr feedback 1 * include alert rule uid in getRowId * use RulerGrafanaRulesConfigDTO for deleted rules response * use isLoading in the AlertingPageWrapper * fix wrong check for recording rules type * add test for restoring manually through the alert rule form * add test for restoring deleted rule * use importAlertingComponent * udpate mock * address pr feedback * update translations * address feedback * address feedback 2 * address feedback 3 * address feedback 4 * move transformation of the response to the endpoint * fix typo * refactor grafanaRuleDtoToFormValues * update translations * use guid for identifying rows * prettier * use ONLY the guid for identifying rows * Add provides/invalidates tags for deleted rules --------- Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com> Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-03-27 22:39:26 +08:00
// FlagAlertingRuleRecoverDeleted
// Enables the UI functionality to recover and view deleted alert rules
FlagAlertingRuleRecoverDeleted = "alertingRuleRecoverDeleted"
// FlagMultiTenantTempCredentials
// use multi-tenant path for awsTempCredentials
FlagMultiTenantTempCredentials = "multiTenantTempCredentials"
// FlagUnifiedNavbars
// Enables unified navbars
FlagUnifiedNavbars = "unifiedNavbars"
// FlagLogsPanelControls
// Enables a control component for the logs panel in Explore
FlagLogsPanelControls = "logsPanelControls"
// FlagMetricsFromProfiles
// Enables creating metrics from profiles and storing them as recording rules
FlagMetricsFromProfiles = "metricsFromProfiles"
// FlagGrafanaAssistantInProfilesDrilldown
// Enables integration with Grafana Assistant in Profiles Drilldown
FlagGrafanaAssistantInProfilesDrilldown = "grafanaAssistantInProfilesDrilldown"
// FlagPostgresDSUsePGX
// Enables using PGX instead of libpq for PostgreSQL datasource
FlagPostgresDSUsePGX = "postgresDSUsePGX"
// FlagTempoAlerting
// Enables creating alerts from Tempo data source
FlagTempoAlerting = "tempoAlerting"
// FlagPluginsAutoUpdate
// Enables auto-updating of users installed plugins
FlagPluginsAutoUpdate = "pluginsAutoUpdate"
// FlagAlertingListViewV2PreviewToggle
// Enables the alerting list view v2 preview toggle
FlagAlertingListViewV2PreviewToggle = "alertingListViewV2PreviewToggle"
// FlagAlertRuleUseFiredAtForStartsAt
// Use FiredAt for StartsAt when sending alerts to Alertmaanger
FlagAlertRuleUseFiredAtForStartsAt = "alertRuleUseFiredAtForStartsAt"
// FlagAlertingBulkActionsInUI
// Enables the alerting bulk actions in the UI
FlagAlertingBulkActionsInUI = "alertingBulkActionsInUI"
// FlagKubernetesAuthzApis
// Registers AuthZ /apis endpoint
FlagKubernetesAuthzApis = "kubernetesAuthzApis"
// FlagKubernetesAuthZHandlerRedirect
// Redirects the traffic from the legacy access control endpoints to the new K8s AuthZ endpoints
FlagKubernetesAuthZHandlerRedirect = "kubernetesAuthZHandlerRedirect"
// FlagKubernetesAuthzResourcePermissionApis
// Registers AuthZ resource permission /apis endpoints
FlagKubernetesAuthzResourcePermissionApis = "kubernetesAuthzResourcePermissionApis"
// FlagKubernetesAuthzZanzanaSync
// Enable sync of Zanzana authorization store on AuthZ CRD mutations
FlagKubernetesAuthzZanzanaSync = "kubernetesAuthzZanzanaSync"
// FlagKubernetesAuthnMutation
// Enables create, delete, and update mutations for resources owned by IAM identity
FlagKubernetesAuthnMutation = "kubernetesAuthnMutation"
// FlagRestoreDashboards
// Enables restore deleted dashboards feature
FlagRestoreDashboards = "restoreDashboards"
// FlagAlertEnrichment
// Enable configuration of alert enrichments in Grafana Cloud.
FlagAlertEnrichment = "alertEnrichment"
// FlagAlertEnrichmentMultiStep
// Allow multiple steps per enrichment.
FlagAlertEnrichmentMultiStep = "alertEnrichmentMultiStep"
// FlagAlertEnrichmentConditional
// Enable conditional alert enrichment steps.
FlagAlertEnrichmentConditional = "alertEnrichmentConditional"
// FlagAlertingImportAlertmanagerAPI
// Enables the API to import Alertmanager configuration
FlagAlertingImportAlertmanagerAPI = "alertingImportAlertmanagerAPI"
// FlagAlertingImportAlertmanagerUI
// Enables the UI to see imported Alertmanager configuration
FlagAlertingImportAlertmanagerUI = "alertingImportAlertmanagerUI"
// FlagSharingDashboardImage
// Enables image sharing functionality for dashboards
FlagSharingDashboardImage = "sharingDashboardImage"
// FlagPreferLibraryPanelTitle
// Prefer library panel title over viz panel title.
FlagPreferLibraryPanelTitle = "preferLibraryPanelTitle"
// FlagTabularNumbers
// Use fixed-width numbers globally in the UI
FlagTabularNumbers = "tabularNumbers"
// FlagNewInfluxDSConfigPageDesign
// Enables new design for the InfluxDB data source configuration page
FlagNewInfluxDSConfigPageDesign = "newInfluxDSConfigPageDesign"
// FlagEnableAppChromeExtensions
// Set this to true to enable all app chrome extensions registered by plugins.
FlagEnableAppChromeExtensions = "enableAppChromeExtensions"
// FlagEnableDashboardEmptyExtensions
// Set this to true to enable all dashboard empty state extensions registered by plugins.
FlagEnableDashboardEmptyExtensions = "enableDashboardEmptyExtensions"
// FlagFoldersAppPlatformAPI
// Enables use of app platform API for folders
FlagFoldersAppPlatformAPI = "foldersAppPlatformAPI"
// FlagOtelLogsFormatting
// Applies OTel formatting templates to displayed logs
FlagOtelLogsFormatting = "otelLogsFormatting"
// FlagAlertingNotificationHistory
// Enables the notification history feature
FlagAlertingNotificationHistory = "alertingNotificationHistory"
// FlagUnifiedStorageSearchDualReaderEnabled
// Enable dual reader for unified storage search
FlagUnifiedStorageSearchDualReaderEnabled = "unifiedStorageSearchDualReaderEnabled"
// FlagDashboardDsAdHocFiltering
// Enables adhoc filtering support for the dashboard datasource
FlagDashboardDsAdHocFiltering = "dashboardDsAdHocFiltering"
// FlagDashboardLevelTimeMacros
// Supports __from and __to macros that always use the dashboard level time range
FlagDashboardLevelTimeMacros = "dashboardLevelTimeMacros"
// FlagAlertmanagerRemoteSecondaryWithRemoteState
// Starts Grafana in remote secondary mode pulling the latest state from the remote Alertmanager to avoid duplicate notifications.
FlagAlertmanagerRemoteSecondaryWithRemoteState = "alertmanagerRemoteSecondaryWithRemoteState"
// FlagRestrictedPluginApis
// Enables sharing a list of APIs with a list of plugins
FlagRestrictedPluginApis = "restrictedPluginApis"
// FlagAdhocFiltersInTooltips
// Enable adhoc filter buttons in visualization tooltips
FlagAdhocFiltersInTooltips = "adhocFiltersInTooltips"
// FlagFavoriteDatasources
// Enable favorite datasources
FlagFavoriteDatasources = "favoriteDatasources"
// FlagNewLogContext
// New Log Context component
FlagNewLogContext = "newLogContext"
// FlagNewClickhouseConfigPageDesign
// Enables new design for the Clickhouse data source configuration page
FlagNewClickhouseConfigPageDesign = "newClickhouseConfigPageDesign"
// FlagTeamFolders
// Enables team folders functionality
FlagTeamFolders = "teamFolders"
// FlagInteractiveLearning
// Enables the interactive learning app
FlagInteractiveLearning = "interactiveLearning"
// FlagAlertingTriage
// Enables the alerting triage feature
FlagAlertingTriage = "alertingTriage"
// FlagGraphiteBackendMode
// Enables the Graphite data source full backend mode
FlagGraphiteBackendMode = "graphiteBackendMode"
Azure: Resource picker improvements (#109458) (#109520) * Azure: Create feature toggle for resource picker improvements (#109458) Create feature toggle * Azure: Resource picker subscriptions filter (#109527) * Create feature toggle * Fix namespace typo * Retrieving default subscription ID * Style updates - Filter input styling - Improved modal styling * Pass data source to resource field * Search style updates * Function to support fetching filtered rows * Filtering nested rows * Filtering search * Support subscriptions filtering - Support filtering in resource graph functions - Subscriptions filter component * getSubscriptions tests * Fix logs query editor test * Update data source mock * Update resourcePickerData tests * Update tests, lint, and i18n * Lint and test * Simplify type * Azure: Resource picker types filter (#109528) * Create feature toggle * Fix namespace typo * Retrieving default subscription ID * Style updates - Filter input styling - Improved modal styling * Pass data source to resource field * Search style updates * Function to support fetching filtered rows * Filtering nested rows * Filtering search * Support subscriptions filtering - Support filtering in resource graph functions - Subscriptions filter component * getSubscriptions tests * Fix logs query editor test * Update data source mock * Update resourcePickerData tests * Add types filter * Update tests, lint, and i18n * Lint and test * Simplify type * Rename variable for clarity * Azure: Resource picker locations filter (#109530) * Create feature toggle * Fix namespace typo * Retrieving default subscription ID * Style updates - Filter input styling - Improved modal styling * Pass data source to resource field * Search style updates * Function to support fetching filtered rows * Filtering nested rows * Filtering search * Support subscriptions filtering - Support filtering in resource graph functions - Subscriptions filter component * getSubscriptions tests * Fix logs query editor test * Update data source mock * Update resourcePickerData tests * Add types filter * Locations filter * Update tests, lint, and i18n * Minor test updates * Imports * Lint and test * Simplify type * Rename variable for clarity * Rename var * Azure: Resource picker filters tests (#109590) * Create feature toggle * Fix namespace typo * Retrieving default subscription ID * Style updates - Filter input styling - Improved modal styling * Pass data source to resource field * Search style updates * Function to support fetching filtered rows * Filtering nested rows * Filtering search * Support subscriptions filtering - Support filtering in resource graph functions - Subscriptions filter component * getSubscriptions tests * Fix logs query editor test * Update data source mock * Update resourcePickerData tests * Add types filter * Locations filter * Update tests, lint, and i18n * Minor test updates * Imports * Lint and test * Resource picker filter tests * Update tests * Simplify type * Rename variable for clarity * Rename var * Azure: Resource picker - recent resources (#109596) * Create feature toggle * Fix namespace typo * Retrieving default subscription ID * Style updates - Filter input styling - Improved modal styling * Pass data source to resource field * Search style updates * Function to support fetching filtered rows * Filtering nested rows * Filtering search * Support subscriptions filtering - Support filtering in resource graph functions - Subscriptions filter component * getSubscriptions tests * Fix logs query editor test * Update data source mock * Update resourcePickerData tests * Add types filter * Locations filter * Update tests, lint, and i18n * Minor test updates * Imports * Lint and test * Resource picker filter tests * Update tests * Event for filter usage * Function to support local storage * Recent resources view - Add LocalStorageValueProvider to store recent resources - Add tabbed view to support switching between recent resources and resource picker - Extract the base resource picker out to a functional component for reusability - Extract the base resource table out to a functional component for reusability * Update i18n keys * Export resource key * Add no recent resources text * Run legacy tests with feature toggle off * Add filters test without feature toggle * Don't use as type assertions * Add tests for recent resources * Store resources for each query type * i18n-extract * Simplify type * Minor performance improvement * Rename variable for clarity * Rename var * Add placeholders * Azure: Resource picker tests (#110175) * Minor simplifying refactor * Add more tests * Update E2E
2025-09-02 18:02:01 +08:00
// FlagAzureResourcePickerUpdates
// Enables the updated Azure Monitor resource picker
FlagAzureResourcePickerUpdates = "azureResourcePickerUpdates"
// FlagPrometheusTypeMigration
// Checks for deprecated Prometheus authentication methods (SigV4 and Azure), installs the relevant data source, and migrates the Prometheus data sources
FlagPrometheusTypeMigration = "prometheusTypeMigration"
// FlagPluginContainers
// Enables running plugins in containers
FlagPluginContainers = "pluginContainers"
// FlagTempoSearchBackendMigration
// Run search queries through the tempo backend
FlagTempoSearchBackendMigration = "tempoSearchBackendMigration"
// FlagCdnPluginsLoadFirst
// Prioritize loading plugins from the CDN before other sources
FlagCdnPluginsLoadFirst = "cdnPluginsLoadFirst"
// FlagCdnPluginsUrls
// Enable loading plugins via declarative URLs
FlagCdnPluginsUrls = "cdnPluginsUrls"
2025-10-24 20:09:26 +08:00
// FlagPluginInstallAPISync
// Enable syncing plugin installations to the installs API
FlagPluginInstallAPISync = "pluginInstallAPISync"
// FlagNewGauge
// Enable new gauge visualization
FlagNewGauge = "newGauge"
// FlagPreventPanelChromeOverflow
// Restrict PanelChrome contents with overflow: hidden;
FlagPreventPanelChromeOverflow = "preventPanelChromeOverflow"
// FlagPluginStoreServiceLoading
// Load plugins on store service startup instead of wire provider, and call RegisterFixedRoles after all plugins are loaded
FlagPluginStoreServiceLoading = "pluginStoreServiceLoading"
// FlagOnlyStoreActionSets
// When storing dashboard and folder resource permissions, only store action sets and not the full list of underlying permission
FlagOnlyStoreActionSets = "onlyStoreActionSets"
Grafana Data Source: Add random walk configuration options (#113009) * Grafana: Add random walk configuration options to Grafana datasource Add UI controls to configure random walk parameters (min, max, start value, spread, noise, drop percent) to match TestData datasource functionality. - Add RandomWalkEditor component with inline number inputs for all parameters - Update GrafanaQuery type to include random walk configuration fields - Update backend to parse and apply query parameters to RandomWalk function - Configuration options match TestData datasource UX for consistency * Grafana: Add series count support to random walk Add ability to generate multiple random walk series in a single query for complete parity with TestData datasource. - Add seriesCount field to RandomWalkEditor - Update backend to loop and generate multiple frames based on series count - Default to 1 series if not specified for backward compatibility * Grafana: Improve random walk editor UI with better organization and tooltips Enhance the random walk configuration UI for better usability: - Organize fields into two logical rows (core config vs fine-tuning) - Add helpful tooltips to all fields explaining their purpose - Increase label width to prevent text wrapping - Group related fields visually for better comprehension Row 1: Series count, Start value, Min, Max (basic shape and range) Row 2: Spread, Noise, Drop % (randomness and variation controls) This provides a cleaner, more intuitive experience compared to TestData's single-row layout, making it easier for users to configure random walks. * Grafana: Format RandomWalkEditor code Apply consistent formatting to RandomWalkEditor component. * Grafana: Add E2E tests for random walk configuration Add comprehensive Playwright E2E tests to verify random walk functionality: - Test that all configuration fields render correctly - Test min/max value constraints - Test multiple series generation - Test spread and noise parameters - Test drop percentage for simulating missing data - Test that tooltips are present and functional These tests ensure the random walk configuration works end-to-end from UI input to data rendering in panels. * Grafana: Fix E2E tests for random walk configuration Fix Playwright test selectors and assertions to work reliably: - Use specific element IDs to avoid selector conflicts - Remove flaky dropPercent check from rendering test (covered separately) - Simplify test assertions to focus on functional verification - All 7 tests now passing consistently Tests verify: field rendering, min/max constraints, series count, spread/noise configuration, drop percentage, and tooltips. * Grafana: Add advanced E2E tests for random walk Add two additional tests for better coverage: - Test configuration value persistence across interactions - Test that series count actually generates the expected number of series These tests verify deeper functionality beyond basic UI rendering, ensuring the random walk feature works correctly end-to-end. All 9 tests passing consistently (20.1s runtime). * Grafana: Remove redundant Min/Max tooltips Remove tooltips from Min and Max fields that just repeated the label text. These fields are self-explanatory and don't need tooltip icons. Keeps the UI cleaner while maintaining helpful tooltips on fields that actually benefit from explanation (Series count, Start value, Spread, Noise, Drop %). * Grafana: Add CODEOWNERS entry for random walk E2E tests Add codeowner assignment for the new grafana-datasource-random-walk.spec.ts test file to @grafana/grafana-frontend-platform, matching the ownership of the Grafana datasource code. * Add dashboardTemplates feature toggle and put new changes behind this toggle to limit impact * Grafana: Add unit tests for dashboardTemplates feature toggle Add unit tests to verify RandomWalkEditor renders correctly based on the dashboardTemplates feature toggle: - Test that random walk editor renders when FF is enabled - Test that random walk editor is hidden when FF is disabled These tests ensure the feature toggle works as expected and prevents the random walk configuration UI from appearing when the feature is disabled. * revert previous codeowners change as not necessary * Grafana: Remove redundant E2E test for feature flag disabled Remove E2E test for dashboardTemplates feature flag disabled scenario since it's already covered by unit tests and E2E environment can't reliably control server-side feature flags. Feature flag behavior is properly tested in QueryEditor.test.tsx unit tests. E2E tests focus on functional validation when the feature is enabled. * fix lint
2025-10-29 04:05:32 +08:00
// FlagPanelTimeSettings
// Enables a new panel time settings drawer
FlagPanelTimeSettings = "panelTimeSettings"
Grafana Data Source: Add random walk configuration options (#113009) * Grafana: Add random walk configuration options to Grafana datasource Add UI controls to configure random walk parameters (min, max, start value, spread, noise, drop percent) to match TestData datasource functionality. - Add RandomWalkEditor component with inline number inputs for all parameters - Update GrafanaQuery type to include random walk configuration fields - Update backend to parse and apply query parameters to RandomWalk function - Configuration options match TestData datasource UX for consistency * Grafana: Add series count support to random walk Add ability to generate multiple random walk series in a single query for complete parity with TestData datasource. - Add seriesCount field to RandomWalkEditor - Update backend to loop and generate multiple frames based on series count - Default to 1 series if not specified for backward compatibility * Grafana: Improve random walk editor UI with better organization and tooltips Enhance the random walk configuration UI for better usability: - Organize fields into two logical rows (core config vs fine-tuning) - Add helpful tooltips to all fields explaining their purpose - Increase label width to prevent text wrapping - Group related fields visually for better comprehension Row 1: Series count, Start value, Min, Max (basic shape and range) Row 2: Spread, Noise, Drop % (randomness and variation controls) This provides a cleaner, more intuitive experience compared to TestData's single-row layout, making it easier for users to configure random walks. * Grafana: Format RandomWalkEditor code Apply consistent formatting to RandomWalkEditor component. * Grafana: Add E2E tests for random walk configuration Add comprehensive Playwright E2E tests to verify random walk functionality: - Test that all configuration fields render correctly - Test min/max value constraints - Test multiple series generation - Test spread and noise parameters - Test drop percentage for simulating missing data - Test that tooltips are present and functional These tests ensure the random walk configuration works end-to-end from UI input to data rendering in panels. * Grafana: Fix E2E tests for random walk configuration Fix Playwright test selectors and assertions to work reliably: - Use specific element IDs to avoid selector conflicts - Remove flaky dropPercent check from rendering test (covered separately) - Simplify test assertions to focus on functional verification - All 7 tests now passing consistently Tests verify: field rendering, min/max constraints, series count, spread/noise configuration, drop percentage, and tooltips. * Grafana: Add advanced E2E tests for random walk Add two additional tests for better coverage: - Test configuration value persistence across interactions - Test that series count actually generates the expected number of series These tests verify deeper functionality beyond basic UI rendering, ensuring the random walk feature works correctly end-to-end. All 9 tests passing consistently (20.1s runtime). * Grafana: Remove redundant Min/Max tooltips Remove tooltips from Min and Max fields that just repeated the label text. These fields are self-explanatory and don't need tooltip icons. Keeps the UI cleaner while maintaining helpful tooltips on fields that actually benefit from explanation (Series count, Start value, Spread, Noise, Drop %). * Grafana: Add CODEOWNERS entry for random walk E2E tests Add codeowner assignment for the new grafana-datasource-random-walk.spec.ts test file to @grafana/grafana-frontend-platform, matching the ownership of the Grafana datasource code. * Add dashboardTemplates feature toggle and put new changes behind this toggle to limit impact * Grafana: Add unit tests for dashboardTemplates feature toggle Add unit tests to verify RandomWalkEditor renders correctly based on the dashboardTemplates feature toggle: - Test that random walk editor renders when FF is enabled - Test that random walk editor is hidden when FF is disabled These tests ensure the feature toggle works as expected and prevents the random walk configuration UI from appearing when the feature is disabled. * revert previous codeowners change as not necessary * Grafana: Remove redundant E2E test for feature flag disabled Remove E2E test for dashboardTemplates feature flag disabled scenario since it's already covered by unit tests and E2E environment can't reliably control server-side feature flags. Feature flag behavior is properly tested in QueryEditor.test.tsx unit tests. E2E tests focus on functional validation when the feature is enabled. * fix lint
2025-10-29 04:05:32 +08:00
// FlagDashboardTemplates
// Enable template dashboards
FlagDashboardTemplates = "dashboardTemplates"
)