mirror of
https://github.com/grafana/grafana.git
synced 2025-01-26 08:16:59 -06:00
50244ed4a1
This adds a version of the SQLStore that includes a ReadReplica. The primary DB can be accessed directly - from the caller's standpoint, there is no difference between the SQLStore and ReplStore unless they wish to explicitly call the ReadReplica() and use that for the DB sessions. Currently only the stats service GetSystemStats and GetAdminStats are using the ReadReplica(); if it's misconfigured or if the databaseReadReplica feature flag is not turned on, it will fall back to the usual (SQLStore) behavior. Testing requires a database and read replica - the replication should already be configured. I have been testing this locally with a docker mysql setup (https://medium.com/@vbabak/docker-mysql-master-slave-replication-setup-2ff553fceef2) and the following config: [feature_toggles] databaseReadReplica = true [database] type = mysql name = grafana user = grafana password = password host = 127.0.0.1:3306 [database_replica] type = mysql name = grafana user = grafana password = password host = 127.0.0.1:3307
14 KiB
14 KiB
1 | Name | Stage | Owner | requiresDevMode | RequiresRestart | FrontendOnly |
---|---|---|---|---|---|---|
2 | disableEnvelopeEncryption | GA | @grafana/grafana-as-code | false | false | false |
3 | live-service-web-worker | experimental | @grafana/grafana-app-platform-squad | false | false | true |
4 | queryOverLive | experimental | @grafana/grafana-app-platform-squad | false | false | true |
5 | panelTitleSearch | preview | @grafana/grafana-app-platform-squad | false | false | false |
6 | publicDashboards | GA | @grafana/sharing-squad | false | false | false |
7 | publicDashboardsEmailSharing | preview | @grafana/sharing-squad | false | false | false |
8 | publicDashboardsScene | experimental | @grafana/sharing-squad | false | false | true |
9 | lokiExperimentalStreaming | experimental | @grafana/observability-logs | false | false | false |
10 | featureHighlights | GA | @grafana/grafana-as-code | false | false | false |
11 | storage | experimental | @grafana/grafana-app-platform-squad | false | false | false |
12 | correlations | GA | @grafana/explore-squad | false | false | false |
13 | exploreContentOutline | GA | @grafana/explore-squad | false | false | true |
14 | datasourceQueryMultiStatus | experimental | @grafana/plugins-platform-backend | false | false | false |
15 | autoMigrateOldPanels | preview | @grafana/dataviz-squad | false | false | true |
16 | autoMigrateGraphPanel | preview | @grafana/dataviz-squad | false | false | true |
17 | autoMigrateTablePanel | preview | @grafana/dataviz-squad | false | false | true |
18 | autoMigratePiechartPanel | preview | @grafana/dataviz-squad | false | false | true |
19 | autoMigrateWorldmapPanel | preview | @grafana/dataviz-squad | false | false | true |
20 | autoMigrateStatPanel | preview | @grafana/dataviz-squad | false | false | true |
21 | autoMigrateXYChartPanel | preview | @grafana/dataviz-squad | false | false | true |
22 | disableAngular | preview | @grafana/dataviz-squad | false | false | true |
23 | canvasPanelNesting | experimental | @grafana/dataviz-squad | false | false | true |
24 | scenes | experimental | @grafana/dashboards-squad | false | false | true |
25 | disableSecretsCompatibility | experimental | @grafana/hosted-grafana-team | false | true | false |
26 | logRequestsInstrumentedAsUnknown | experimental | @grafana/hosted-grafana-team | false | false | false |
27 | topnav | deprecated | @grafana/grafana-frontend-platform | false | false | false |
28 | grpcServer | preview | @grafana/grafana-app-platform-squad | false | false | false |
29 | unifiedStorage | experimental | @grafana/grafana-app-platform-squad | false | true | false |
30 | cloudWatchCrossAccountQuerying | GA | @grafana/aws-datasources | false | false | false |
31 | showDashboardValidationWarnings | experimental | @grafana/dashboards-squad | false | false | false |
32 | mysqlAnsiQuotes | experimental | @grafana/search-and-storage | false | false | false |
33 | accessControlOnCall | preview | @grafana/identity-access-team | false | false | false |
34 | nestedFolders | GA | @grafana/search-and-storage | false | false | false |
35 | alertingBacktesting | experimental | @grafana/alerting-squad | false | false | false |
36 | editPanelCSVDragAndDrop | experimental | @grafana/dataviz-squad | false | false | true |
37 | alertingNoNormalState | preview | @grafana/alerting-squad | false | false | false |
38 | logsContextDatasourceUi | GA | @grafana/observability-logs | false | false | true |
39 | lokiQuerySplitting | GA | @grafana/observability-logs | false | false | true |
40 | lokiQuerySplittingConfig | experimental | @grafana/observability-logs | false | false | true |
41 | individualCookiePreferences | experimental | @grafana/grafana-backend-group | false | false | false |
42 | prometheusMetricEncyclopedia | GA | @grafana/observability-metrics | false | false | true |
43 | influxdbBackendMigration | GA | @grafana/observability-metrics | false | false | true |
44 | influxqlStreamingParser | experimental | @grafana/observability-metrics | false | false | false |
45 | influxdbRunQueriesInParallel | privatePreview | @grafana/observability-metrics | false | false | false |
46 | prometheusDataplane | GA | @grafana/observability-metrics | false | false | false |
47 | lokiMetricDataplane | GA | @grafana/observability-logs | false | false | false |
48 | lokiLogsDataplane | experimental | @grafana/observability-logs | false | false | false |
49 | dataplaneFrontendFallback | GA | @grafana/observability-metrics | false | false | true |
50 | disableSSEDataplane | experimental | @grafana/observability-metrics | false | false | false |
51 | alertStateHistoryLokiSecondary | experimental | @grafana/alerting-squad | false | false | false |
52 | alertStateHistoryLokiPrimary | experimental | @grafana/alerting-squad | false | false | false |
53 | alertStateHistoryLokiOnly | experimental | @grafana/alerting-squad | false | false | false |
54 | unifiedRequestLog | experimental | @grafana/grafana-backend-group | false | false | false |
55 | renderAuthJWT | preview | @grafana/grafana-as-code | false | false | false |
56 | refactorVariablesTimeRange | preview | @grafana/dashboards-squad | false | false | false |
57 | faroDatasourceSelector | preview | @grafana/app-o11y | false | false | true |
58 | enableDatagridEditing | preview | @grafana/dataviz-squad | false | false | true |
59 | extraThemes | experimental | @grafana/grafana-frontend-platform | false | false | true |
60 | lokiPredefinedOperations | experimental | @grafana/observability-logs | false | false | true |
61 | pluginsFrontendSandbox | experimental | @grafana/plugins-platform-backend | false | false | true |
62 | frontendSandboxMonitorOnly | experimental | @grafana/plugins-platform-backend | false | false | true |
63 | sqlDatasourceDatabaseSelection | preview | @grafana/dataviz-squad | false | false | true |
64 | recordedQueriesMulti | GA | @grafana/observability-metrics | false | false | false |
65 | vizAndWidgetSplit | experimental | @grafana/dashboards-squad | false | false | true |
66 | prometheusIncrementalQueryInstrumentation | experimental | @grafana/observability-metrics | false | false | true |
67 | logsExploreTableVisualisation | GA | @grafana/observability-logs | false | false | true |
68 | awsDatasourcesTempCredentials | experimental | @grafana/aws-datasources | false | false | false |
69 | transformationsRedesign | GA | @grafana/observability-metrics | false | false | true |
70 | mlExpressions | experimental | @grafana/alerting-squad | false | false | false |
71 | traceQLStreaming | GA | @grafana/observability-traces-and-profiling | false | false | true |
72 | metricsSummary | experimental | @grafana/observability-traces-and-profiling | false | false | true |
73 | grafanaAPIServerWithExperimentalAPIs | experimental | @grafana/grafana-app-platform-squad | true | true | false |
74 | grafanaAPIServerEnsureKubectlAccess | experimental | @grafana/grafana-app-platform-squad | true | true | false |
75 | featureToggleAdminPage | experimental | @grafana/grafana-operator-experience-squad | false | true | false |
76 | awsAsyncQueryCaching | GA | @grafana/aws-datasources | false | false | false |
77 | permissionsFilterRemoveSubquery | experimental | @grafana/grafana-backend-group | false | false | false |
78 | prometheusConfigOverhaulAuth | GA | @grafana/observability-metrics | false | false | false |
79 | configurableSchedulerTick | experimental | @grafana/alerting-squad | false | true | false |
80 | alertingNoDataErrorExecution | GA | @grafana/alerting-squad | false | true | false |
81 | angularDeprecationUI | GA | @grafana/plugins-platform-backend | false | false | true |
82 | dashgpt | GA | @grafana/dashboards-squad | false | false | true |
83 | aiGeneratedDashboardChanges | experimental | @grafana/dashboards-squad | false | false | true |
84 | reportingRetries | preview | @grafana/sharing-squad | false | true | false |
85 | sseGroupByDatasource | experimental | @grafana/observability-metrics | false | false | false |
86 | libraryPanelRBAC | experimental | @grafana/dashboards-squad | false | true | false |
87 | lokiRunQueriesInParallel | privatePreview | @grafana/observability-logs | false | false | false |
88 | wargamesTesting | experimental | @grafana/hosted-grafana-team | false | false | false |
89 | alertingInsights | GA | @grafana/alerting-squad | false | false | true |
90 | externalCorePlugins | experimental | @grafana/plugins-platform-backend | false | false | false |
91 | pluginsAPIMetrics | experimental | @grafana/plugins-platform-backend | false | false | true |
92 | idForwarding | experimental | @grafana/identity-access-team | false | false | false |
93 | externalServiceAccounts | preview | @grafana/identity-access-team | false | false | false |
94 | panelMonitoring | GA | @grafana/dataviz-squad | false | false | true |
95 | enableNativeHTTPHistogram | experimental | @grafana/hosted-grafana-team | false | false | false |
96 | formatString | preview | @grafana/dataviz-squad | false | false | true |
97 | transformationsVariableSupport | GA | @grafana/dataviz-squad | false | false | true |
98 | kubernetesPlaylists | GA | @grafana/grafana-app-platform-squad | false | true | false |
99 | kubernetesSnapshots | experimental | @grafana/grafana-app-platform-squad | false | true | false |
100 | kubernetesDashboards | experimental | @grafana/grafana-app-platform-squad | false | false | true |
101 | datasourceQueryTypes | experimental | @grafana/grafana-app-platform-squad | false | true | false |
102 | queryService | experimental | @grafana/grafana-app-platform-squad | false | true | false |
103 | queryServiceRewrite | experimental | @grafana/grafana-app-platform-squad | false | true | false |
104 | queryServiceFromUI | experimental | @grafana/grafana-app-platform-squad | false | false | true |
105 | cloudWatchBatchQueries | preview | @grafana/aws-datasources | false | false | false |
106 | recoveryThreshold | GA | @grafana/alerting-squad | false | true | false |
107 | lokiStructuredMetadata | GA | @grafana/observability-logs | false | false | false |
108 | teamHttpHeaders | preview | @grafana/identity-access-team | false | false | false |
109 | awsDatasourcesNewFormStyling | GA | @grafana/aws-datasources | false | false | true |
110 | cachingOptimizeSerializationMemoryUsage | experimental | @grafana/grafana-operator-experience-squad | false | false | false |
111 | panelTitleSearchInV1 | experimental | @grafana/search-and-storage | true | false | false |
112 | managedPluginsInstall | GA | @grafana/plugins-platform-backend | false | false | false |
113 | prometheusPromQAIL | experimental | @grafana/observability-metrics | false | false | true |
114 | prometheusCodeModeMetricNamesSearch | experimental | @grafana/observability-metrics | false | false | true |
115 | addFieldFromCalculationStatFunctions | preview | @grafana/dataviz-squad | false | false | true |
116 | alertmanagerRemoteSecondary | experimental | @grafana/alerting-squad | false | false | false |
117 | alertmanagerRemotePrimary | experimental | @grafana/alerting-squad | false | false | false |
118 | alertmanagerRemoteOnly | experimental | @grafana/alerting-squad | false | false | false |
119 | annotationPermissionUpdate | GA | @grafana/identity-access-team | false | false | false |
120 | extractFieldsNameDeduplication | experimental | @grafana/dataviz-squad | false | false | true |
121 | dashboardSceneForViewers | experimental | @grafana/dashboards-squad | false | false | true |
122 | dashboardSceneSolo | experimental | @grafana/dashboards-squad | false | false | true |
123 | dashboardScene | experimental | @grafana/dashboards-squad | false | false | true |
124 | panelFilterVariable | experimental | @grafana/dashboards-squad | false | false | true |
125 | pdfTables | preview | @grafana/sharing-squad | false | false | false |
126 | ssoSettingsApi | GA | @grafana/identity-access-team | false | false | false |
127 | canvasPanelPanZoom | preview | @grafana/dataviz-squad | false | false | true |
128 | logsInfiniteScrolling | GA | @grafana/observability-logs | false | false | true |
129 | flameGraphItemCollapsing | experimental | @grafana/observability-traces-and-profiling | false | false | true |
130 | exploreMetrics | GA | @grafana/dashboards-squad | false | false | true |
131 | alertingSimplifiedRouting | GA | @grafana/alerting-squad | false | false | false |
132 | logRowsPopoverMenu | GA | @grafana/observability-logs | false | false | true |
133 | pluginsSkipHostEnvVars | experimental | @grafana/plugins-platform-backend | false | false | false |
134 | tableSharedCrosshair | experimental | @grafana/dataviz-squad | false | false | true |
135 | regressionTransformation | preview | @grafana/dataviz-squad | false | false | true |
136 | lokiQueryHints | GA | @grafana/observability-logs | false | false | true |
137 | kubernetesFeatureToggles | experimental | @grafana/grafana-operator-experience-squad | false | false | true |
138 | cloudRBACRoles | experimental | @grafana/identity-access-team | false | true | false |
139 | alertingQueryOptimization | GA | @grafana/alerting-squad | false | false | false |
140 | newFolderPicker | experimental | @grafana/grafana-frontend-platform | false | false | true |
141 | jitterAlertRulesWithinGroups | preview | @grafana/alerting-squad | false | true | false |
142 | onPremToCloudMigrations | experimental | @grafana/grafana-operator-experience-squad | false | false | false |
143 | alertingSaveStatePeriodic | privatePreview | @grafana/alerting-squad | false | false | false |
144 | promQLScope | experimental | @grafana/observability-metrics | false | false | false |
145 | sqlExpressions | experimental | @grafana/grafana-app-platform-squad | false | false | false |
146 | nodeGraphDotLayout | experimental | @grafana/observability-traces-and-profiling | false | false | true |
147 | groupToNestedTableTransformation | preview | @grafana/dataviz-squad | false | false | true |
148 | newPDFRendering | preview | @grafana/sharing-squad | false | false | false |
149 | tlsMemcached | experimental | @grafana/grafana-operator-experience-squad | false | false | false |
150 | kubernetesAggregator | experimental | @grafana/grafana-app-platform-squad | false | true | false |
151 | expressionParser | experimental | @grafana/grafana-app-platform-squad | false | true | false |
152 | groupByVariable | experimental | @grafana/dashboards-squad | false | false | false |
153 | authAPIAccessTokenAuth | experimental | @grafana/identity-access-team | false | false | false |
154 | scopeFilters | experimental | @grafana/dashboards-squad | false | false | false |
155 | ssoSettingsSAML | preview | @grafana/identity-access-team | false | false | false |
156 | oauthRequireSubClaim | experimental | @grafana/identity-access-team | false | false | false |
157 | newDashboardWithFiltersAndGroupBy | experimental | @grafana/dashboards-squad | false | false | false |
158 | cloudWatchNewLabelParsing | GA | @grafana/aws-datasources | false | false | false |
159 | accessActionSets | experimental | @grafana/identity-access-team | false | false | false |
160 | disableNumericMetricsSortingInExpressions | experimental | @grafana/observability-metrics | false | true | false |
161 | grafanaManagedRecordingRules | experimental | @grafana/alerting-squad | false | false | false |
162 | queryLibrary | experimental | @grafana/explore-squad | false | false | false |
163 | autofixDSUID | experimental | @grafana/plugins-platform-backend | false | false | false |
164 | logsExploreTableDefaultVisualization | experimental | @grafana/observability-logs | false | false | true |
165 | newDashboardSharingComponent | experimental | @grafana/sharing-squad | false | false | true |
166 | alertingListViewV2 | experimental | @grafana/alerting-squad | false | false | true |
167 | notificationBanner | experimental | @grafana/grafana-frontend-platform | false | false | false |
168 | dashboardRestore | experimental | @grafana/grafana-frontend-platform | false | false | false |
169 | datasourceProxyDisableRBAC | GA | @grafana/identity-access-team | false | false | false |
170 | alertingDisableSendAlertsExternal | experimental | @grafana/alerting-squad | false | false | false |
171 | preserveDashboardStateWhenNavigating | experimental | @grafana/dashboards-squad | false | false | false |
172 | alertingCentralAlertHistory | experimental | @grafana/alerting-squad | false | false | true |
173 | pluginProxyPreserveTrailingSlash | GA | @grafana/plugins-platform-backend | false | false | false |
174 | azureMonitorPrometheusExemplars | experimental | @grafana/partner-datasources | false | false | false |
175 | pinNavItems | experimental | @grafana/grafana-frontend-platform | false | false | false |
176 | authZGRPCServer | experimental | @grafana/identity-access-team | false | false | false |
177 | openSearchBackendFlowEnabled | preview | @grafana/aws-datasources | false | false | false |
178 | ssoSettingsLDAP | experimental | @grafana/identity-access-team | false | false | false |
179 | databaseReadReplica | experimental | @grafana/grafana-backend-services-squad | false | false | false |