Alerting: Add feature toggles for Alertmanager migration (#77372)

* Alerting: Add feature toggles for Alertmanager migration

* address code review comments
pull/77395/head
Santiago 2 years ago committed by GitHub
parent f3fe63e87e
commit 363830883c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md
  2. 3
      packages/grafana-data/src/types/featureToggles.gen.ts
  3. 18
      pkg/services/featuremgmt/registry.go
  4. 3
      pkg/services/featuremgmt/toggles_gen.csv
  5. 12
      pkg/services/featuremgmt/toggles_gen.go

@ -156,6 +156,9 @@ Experimental features might be changed or removed without prior notice.
| `costManagementUi` | Toggles the display of the cost management ui plugin |
| `managedPluginsInstall` | Install managed plugins directly from plugins catalog |
| `prometheusPromQAIL` | Prometheus and AI/ML to assist users in creating a query |
| `alertmanagerRemoteSecondary` | Enable Grafana to sync configuration and state with a remote Alertmanager. |
| `alertmanagerRemotePrimary` | Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager. |
| `alertmanagerRemoteOnly` | Disable the internal Alertmanager and only use the external one defined. |
## Development feature toggles

@ -150,4 +150,7 @@ export interface FeatureToggles {
costManagementUi?: boolean;
managedPluginsInstall?: boolean;
prometheusPromQAIL?: boolean;
alertmanagerRemoteSecondary?: boolean;
alertmanagerRemotePrimary?: boolean;
alertmanagerRemoteOnly?: boolean;
}

@ -927,5 +927,23 @@ var (
FrontendOnly: true,
Owner: grafanaObservabilityMetricsSquad,
},
{
Name: "alertmanagerRemoteSecondary",
Description: "Enable Grafana to sync configuration and state with a remote Alertmanager.",
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
},
{
Name: "alertmanagerRemotePrimary",
Description: "Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.",
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
},
{
Name: "alertmanagerRemoteOnly",
Description: "Disable the internal Alertmanager and only use the external one defined.",
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
},
}
)

@ -131,3 +131,6 @@ pluginsInstrumentationStatusSource,experimental,@grafana/plugins-platform-backen
costManagementUi,experimental,@grafana/databases-frontend,false,false,false,false
managedPluginsInstall,experimental,@grafana/plugins-platform-backend,false,false,false,false
prometheusPromQAIL,experimental,@grafana/observability-metrics,false,false,false,true
alertmanagerRemoteSecondary,experimental,@grafana/alerting-squad,false,false,false,false
alertmanagerRemotePrimary,experimental,@grafana/alerting-squad,false,false,false,false
alertmanagerRemoteOnly,experimental,@grafana/alerting-squad,false,false,false,false

1 Name Stage Owner requiresDevMode RequiresLicense RequiresRestart FrontendOnly
131 costManagementUi experimental @grafana/databases-frontend false false false false
132 managedPluginsInstall experimental @grafana/plugins-platform-backend false false false false
133 prometheusPromQAIL experimental @grafana/observability-metrics false false false true
134 alertmanagerRemoteSecondary experimental @grafana/alerting-squad false false false false
135 alertmanagerRemotePrimary experimental @grafana/alerting-squad false false false false
136 alertmanagerRemoteOnly experimental @grafana/alerting-squad false false false false

@ -534,4 +534,16 @@ const (
// FlagPrometheusPromQAIL
// Prometheus and AI/ML to assist users in creating a query
FlagPrometheusPromQAIL = "prometheusPromQAIL"
// FlagAlertmanagerRemoteSecondary
// Enable Grafana to sync configuration and state with a remote Alertmanager.
FlagAlertmanagerRemoteSecondary = "alertmanagerRemoteSecondary"
// FlagAlertmanagerRemotePrimary
// Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.
FlagAlertmanagerRemotePrimary = "alertmanagerRemotePrimary"
// FlagAlertmanagerRemoteOnly
// Disable the internal Alertmanager and only use the external one defined.
FlagAlertmanagerRemoteOnly = "alertmanagerRemoteOnly"
)

Loading…
Cancel
Save