diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 1d6dbe5f7a6..50fd56fa9ff 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -44,7 +44,6 @@ export interface FeatureToggles { annotationComments?: boolean; migrationLocking?: boolean; storage?: boolean; - alertProvisioning?: boolean; export?: boolean; storageLocalUpload?: boolean; azureMonitorResourcePickerForMetrics?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 3182c53c179..73e59f13bea 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -158,11 +158,6 @@ var ( Description: "Configurable storage for dashboards, datasources, and resources", State: FeatureStateAlpha, }, - { - Name: "alertProvisioning", - Description: "Provisioning-friendly routes for alerting", - State: FeatureStateAlpha, - }, { Name: "export", Description: "Export grafana instance (to git, etc)", diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 13ad09f4067..95d0cc121fe 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -119,10 +119,6 @@ const ( // Configurable storage for dashboards, datasources, and resources FlagStorage = "storage" - // FlagAlertProvisioning - // Provisioning-friendly routes for alerting - FlagAlertProvisioning = "alertProvisioning" - // FlagExport // Export grafana instance (to git, etc) FlagExport = "export" diff --git a/pkg/services/ngalert/api/api.go b/pkg/services/ngalert/api/api.go index feff31c52ab..57cb59e470b 100644 --- a/pkg/services/ngalert/api/api.go +++ b/pkg/services/ngalert/api/api.go @@ -11,7 +11,6 @@ import ( "github.com/grafana/grafana/pkg/services/accesscontrol" "github.com/grafana/grafana/pkg/services/datasourceproxy" "github.com/grafana/grafana/pkg/services/datasources" - "github.com/grafana/grafana/pkg/services/featuremgmt" apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" "github.com/grafana/grafana/pkg/services/ngalert/eval" "github.com/grafana/grafana/pkg/services/ngalert/metrics" @@ -136,14 +135,12 @@ func (api *API) RegisterAPIEndpoints(m *metrics.API) { }, ), m) - if api.Cfg.IsFeatureToggleEnabled(featuremgmt.FlagAlertProvisioning) { - api.RegisterProvisioningApiEndpoints(NewForkedProvisioningApi(&ProvisioningSrv{ - log: logger, - policies: api.Policies, - contactPointService: api.ContactPointService, - templates: api.Templates, - muteTimings: api.MuteTimings, - alertRules: api.AlertRules, - }), m) - } + api.RegisterProvisioningApiEndpoints(NewForkedProvisioningApi(&ProvisioningSrv{ + log: logger, + policies: api.Policies, + contactPointService: api.ContactPointService, + templates: api.Templates, + muteTimings: api.MuteTimings, + alertRules: api.AlertRules, + }), m) } diff --git a/pkg/services/ngalert/api/api_alertmanager_test.go b/pkg/services/ngalert/api/api_alertmanager_test.go index 304ce1e0ffd..2585130d9ca 100644 --- a/pkg/services/ngalert/api/api_alertmanager_test.go +++ b/pkg/services/ngalert/api/api_alertmanager_test.go @@ -18,7 +18,6 @@ import ( "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/accesscontrol" acMock "github.com/grafana/grafana/pkg/services/accesscontrol/mock" - "github.com/grafana/grafana/pkg/services/featuremgmt" apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" "github.com/grafana/grafana/pkg/services/ngalert/metrics" ngmodels "github.com/grafana/grafana/pkg/services/ngalert/models" @@ -531,9 +530,6 @@ func createMultiOrgAlertmanager(t *testing.T) *notifier.MultiOrgAlertmanager { DefaultConfiguration: setting.GetAlertmanagerDefaultConfiguration(), DisabledOrgs: map[int64]struct{}{5: {}}, }, // do not poll in tests. - IsFeatureToggleEnabled: func(key string) bool { - return key == featuremgmt.FlagAlertProvisioning - }, } mam, err := notifier.NewMultiOrgAlertmanager(cfg, &configStore, &orgStore, kvStore, provStore, decryptFn, m.GetMultiOrgAlertmanagerMetrics(), nil, log.New("testlogger"), secretsService) diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go index 9308923fa18..7e6de39c079 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go @@ -6,7 +6,7 @@ import ( "github.com/grafana/grafana/pkg/services/ngalert/models" ) -// swagger:route GET /api/v1/provisioning/alert-rules/{UID} provisioning RouteGetAlertRule +// swagger:route GET /api/v1/provisioning/alert-rules/{UID} provisioning stable RouteGetAlertRule // // Get a specific alert rule by UID. // @@ -14,7 +14,7 @@ import ( // 200: AlertRule // 400: ValidationError -// swagger:route POST /api/v1/provisioning/alert-rules provisioning RoutePostAlertRule +// swagger:route POST /api/v1/provisioning/alert-rules provisioning stable RoutePostAlertRule // // Create a new alert rule. // @@ -22,7 +22,7 @@ import ( // 201: AlertRule // 400: ValidationError -// swagger:route PUT /api/v1/provisioning/alert-rules/{UID} provisioning RoutePutAlertRule +// swagger:route PUT /api/v1/provisioning/alert-rules/{UID} provisioning stable RoutePutAlertRule // // Update an existing alert rule. // @@ -33,7 +33,7 @@ import ( // 200: AlertRule // 400: ValidationError -// swagger:route DELETE /api/v1/provisioning/alert-rules/{UID} provisioning RouteDeleteAlertRule +// swagger:route DELETE /api/v1/provisioning/alert-rules/{UID} provisioning stable RouteDeleteAlertRule // // Delete a specific alert rule by UID. // @@ -110,7 +110,7 @@ func NewAlertRule(rule models.AlertRule, provenance models.Provenance) AlertRule } } -// swagger:route PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group} provisioning RoutePutAlertRuleGroup +// swagger:route PUT /api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group} provisioning stable RoutePutAlertRuleGroup // // Update the interval of a rule group. // diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_contactpoints.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_contactpoints.go index e29ea1c0621..dbb1f502eb0 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_contactpoints.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_contactpoints.go @@ -7,7 +7,7 @@ import ( "github.com/grafana/grafana/pkg/services/ngalert/notifier/channels" ) -// swagger:route GET /api/v1/provisioning/contact-points provisioning RouteGetContactpoints +// swagger:route GET /api/v1/provisioning/contact-points provisioning stable RouteGetContactpoints // // Get all the contact points. // @@ -15,7 +15,7 @@ import ( // 200: Route // 400: ValidationError -// swagger:route POST /api/v1/provisioning/contact-points provisioning RoutePostContactpoints +// swagger:route POST /api/v1/provisioning/contact-points provisioning stable RoutePostContactpoints // // Create a contact point. // @@ -26,7 +26,7 @@ import ( // 202: Ack // 400: ValidationError -// swagger:route PUT /api/v1/provisioning/contact-points/{UID} provisioning RoutePutContactpoint +// swagger:route PUT /api/v1/provisioning/contact-points/{UID} provisioning stable RoutePutContactpoint // // Update an existing contact point. // @@ -37,7 +37,7 @@ import ( // 202: Ack // 400: ValidationError -// swagger:route DELETE /api/v1/provisioning/contact-points/{UID} provisioning RouteDeleteContactpoints +// swagger:route DELETE /api/v1/provisioning/contact-points/{UID} provisioning stable RouteDeleteContactpoints // // Delete a contact point. // diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_mute_timings.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_mute_timings.go index 84794e0805f..72ad6efca88 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_mute_timings.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_mute_timings.go @@ -5,7 +5,7 @@ import ( "github.com/prometheus/alertmanager/config" ) -// swagger:route GET /api/v1/provisioning/mute-timings provisioning RouteGetMuteTimings +// swagger:route GET /api/v1/provisioning/mute-timings provisioning stable RouteGetMuteTimings // // Get all the mute timings. // @@ -13,7 +13,7 @@ import ( // 200: MuteTimings // 400: ValidationError -// swagger:route GET /api/v1/provisioning/mute-timings/{name} provisioning RouteGetMuteTiming +// swagger:route GET /api/v1/provisioning/mute-timings/{name} provisioning stable RouteGetMuteTiming // // Get a mute timing. // @@ -21,7 +21,7 @@ import ( // 200: MuteTimeInterval // 400: ValidationError -// swagger:route POST /api/v1/provisioning/mute-timings provisioning RoutePostMuteTiming +// swagger:route POST /api/v1/provisioning/mute-timings provisioning stable RoutePostMuteTiming // // Create a new mute timing. // @@ -32,7 +32,7 @@ import ( // 201: MuteTimeInterval // 400: ValidationError -// swagger:route PUT /api/v1/provisioning/mute-timings/{name} provisioning RoutePutMuteTiming +// swagger:route PUT /api/v1/provisioning/mute-timings/{name} provisioning stable RoutePutMuteTiming // // Replace an existing mute timing. // @@ -43,7 +43,7 @@ import ( // 200: MuteTimeInterval // 400: ValidationError -// swagger:route DELETE /api/v1/provisioning/mute-timings/{name} provisioning RouteDeleteMuteTiming +// swagger:route DELETE /api/v1/provisioning/mute-timings/{name} provisioning stable RouteDeleteMuteTiming // // Delete a mute timing. // @@ -55,7 +55,7 @@ import ( // swagger:model type MuteTimings []MuteTimeInterval -// swagger:parameters RouteGetTemplate RouteGetMuteTiming RoutePutMuteTiming RouteDeleteMuteTiming +// swagger:parameters RouteGetTemplate RouteGetMuteTiming RoutePutMuteTiming stable RouteDeleteMuteTiming type RouteGetMuteTimingParam struct { // Template Name // in:path diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_policies.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_policies.go index 3c5bbbf4532..c6d21784b09 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_policies.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_policies.go @@ -1,6 +1,6 @@ package definitions -// swagger:route GET /api/v1/provisioning/policies provisioning RouteGetPolicyTree +// swagger:route GET /api/v1/provisioning/policies provisioning stable RouteGetPolicyTree // // Get the notification policy tree. // @@ -8,7 +8,7 @@ package definitions // 200: Route // 400: ValidationError -// swagger:route PUT /api/v1/provisioning/policies provisioning RoutePutPolicyTree +// swagger:route PUT /api/v1/provisioning/policies provisioning stable RoutePutPolicyTree // // Sets the notification policy tree. // diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_templates.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_templates.go index c9e594e23bd..fcbc2d80203 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_templates.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_templates.go @@ -4,7 +4,7 @@ import ( "github.com/grafana/grafana/pkg/services/ngalert/models" ) -// swagger:route GET /api/v1/provisioning/templates provisioning RouteGetTemplates +// swagger:route GET /api/v1/provisioning/templates provisioning stable RouteGetTemplates // // Get all message templates. // @@ -12,7 +12,7 @@ import ( // 200: MessageTemplate // 400: ValidationError -// swagger:route GET /api/v1/provisioning/templates/{name} provisioning RouteGetTemplate +// swagger:route GET /api/v1/provisioning/templates/{name} provisioning stable RouteGetTemplate // // Get a message template. // @@ -20,7 +20,7 @@ import ( // 200: MessageTemplate // 404: NotFound -// swagger:route PUT /api/v1/provisioning/templates/{name} provisioning RoutePutTemplate +// swagger:route PUT /api/v1/provisioning/templates/{name} provisioning stable RoutePutTemplate // // Updates an existing template. // @@ -31,7 +31,7 @@ import ( // 202: Ack // 400: ValidationError -// swagger:route DELETE /api/v1/provisioning/templates/{name} provisioning RouteDeleteTemplate +// swagger:route DELETE /api/v1/provisioning/templates/{name} provisioning stable RouteDeleteTemplate // // Delete a template. // diff --git a/pkg/services/ngalert/api/tooling/post.json b/pkg/services/ngalert/api/tooling/post.json index 150845a1854..7fecceb91ce 100644 --- a/pkg/services/ngalert/api/tooling/post.json +++ b/pkg/services/ngalert/api/tooling/post.json @@ -813,6 +813,13 @@ "type": "array", "x-go-name": "InhibitRules" }, + "muteTimeProvenances": { + "additionalProperties": { + "$ref": "#/definitions/Provenance" + }, + "type": "object", + "x-go-name": "MuteTimeProvenances" + }, "mute_time_intervals": { "items": { "$ref": "#/definitions/MuteTimeInterval" @@ -3248,6 +3255,7 @@ "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "alertGroup": { + "description": "AlertGroup alert group", "properties": { "alerts": { "description": "alerts", @@ -3269,9 +3277,7 @@ "labels", "receiver" ], - "type": "object", - "x-go-name": "AlertGroup", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "type": "object" }, "alertGroups": { "description": "AlertGroups alert groups", @@ -3398,7 +3404,6 @@ "$ref": "#/definitions/Duration" }, "gettableAlert": { - "description": "GettableAlert gettable alert", "properties": { "annotations": { "$ref": "#/definitions/labelSet" @@ -3457,18 +3462,18 @@ "status", "updatedAt" ], - "type": "object" + "type": "object", + "x-go-name": "GettableAlert", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "gettableAlerts": { + "description": "GettableAlerts gettable alerts", "items": { "$ref": "#/definitions/gettableAlert" }, - "type": "array", - "x-go-name": "GettableAlerts", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" + "type": "array" }, "gettableSilence": { - "description": "GettableSilence gettable silence", "properties": { "comment": { "description": "comment", @@ -3520,14 +3525,17 @@ "status", "updatedAt" ], - "type": "object" + "type": "object", + "x-go-name": "GettableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "gettableSilences": { - "description": "GettableSilences gettable silences", "items": { "$ref": "#/definitions/gettableSilence" }, - "type": "array" + "type": "array", + "x-go-name": "GettableSilences", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "labelSet": { "additionalProperties": { @@ -3656,7 +3664,6 @@ "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "postableSilence": { - "description": "PostableSilence postable silence", "properties": { "comment": { "description": "comment", @@ -3696,10 +3703,11 @@ "matchers", "startsAt" ], - "type": "object" + "type": "object", + "x-go-name": "PostableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "receiver": { - "description": "Receiver receiver", "properties": { "name": { "description": "name", @@ -3710,7 +3718,9 @@ "required": [ "name" ], - "type": "object" + "type": "object", + "x-go-name": "Receiver", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "silence": { "description": "Silence silence", diff --git a/pkg/services/ngalert/api/tooling/spec.json b/pkg/services/ngalert/api/tooling/spec.json index 0b90d7fbeb9..ee3e57b7a13 100644 --- a/pkg/services/ngalert/api/tooling/spec.json +++ b/pkg/services/ngalert/api/tooling/spec.json @@ -1670,7 +1670,8 @@ "/api/v1/provisioning/alert-rules": { "post": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Create a new alert rule.", "operationId": "RoutePostAlertRule", @@ -1702,7 +1703,8 @@ "/api/v1/provisioning/alert-rules/{UID}": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get a specific alert rule by UID.", "operationId": "RouteGetAlertRule", @@ -1734,7 +1736,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Update an existing alert rule.", "operationId": "RoutePutAlertRule", @@ -1770,7 +1773,8 @@ }, "delete": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Delete a specific alert rule by UID.", "operationId": "RouteDeleteAlertRule", @@ -1798,7 +1802,8 @@ "/api/v1/provisioning/contact-points": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get all the contact points.", "operationId": "RouteGetContactpoints", @@ -1822,7 +1827,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Create a contact point.", "operationId": "RoutePostContactpoints", @@ -1857,7 +1863,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Update an existing contact point.", "operationId": "RoutePutContactpoint", @@ -1897,7 +1904,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Delete a contact point.", "operationId": "RouteDeleteContactpoints", @@ -1932,7 +1940,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Update the interval of a rule group.", "operationId": "RoutePutAlertRuleGroup", @@ -1976,7 +1985,8 @@ "/api/v1/provisioning/mute-timings": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get all the mute timings.", "operationId": "RouteGetMuteTimings", @@ -2000,7 +2010,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Create a new mute timing.", "operationId": "RoutePostMuteTiming", @@ -2032,7 +2043,8 @@ "/api/v1/provisioning/mute-timings/{name}": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get a mute timing.", "operationId": "RouteGetMuteTiming", @@ -2066,7 +2078,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Replace an existing mute timing.", "operationId": "RoutePutMuteTiming", @@ -2104,7 +2117,8 @@ }, "delete": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Delete a mute timing.", "operationId": "RouteDeleteMuteTiming", @@ -2131,7 +2145,8 @@ "/api/v1/provisioning/policies": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get the notification policy tree.", "operationId": "RouteGetPolicyTree", @@ -2155,7 +2170,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Sets the notification policy tree.", "operationId": "RoutePutPolicyTree", @@ -2187,7 +2203,8 @@ "/api/v1/provisioning/templates": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get all message templates.", "operationId": "RouteGetTemplates", @@ -2210,7 +2227,8 @@ "/api/v1/provisioning/templates/{name}": { "get": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Get a message template.", "operationId": "RouteGetTemplate", @@ -2244,7 +2262,8 @@ "application/json" ], "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Updates an existing template.", "operationId": "RoutePutTemplate", @@ -2282,7 +2301,8 @@ }, "delete": { "tags": [ - "provisioning" + "provisioning", + "stable" ], "summary": "Delete a template.", "operationId": "RouteDeleteTemplate", @@ -3192,6 +3212,13 @@ }, "x-go-name": "InhibitRules" }, + "muteTimeProvenances": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Provenance" + }, + "x-go-name": "MuteTimeProvenances" + }, "mute_time_intervals": { "type": "array", "items": { @@ -5627,6 +5654,7 @@ "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "alertGroup": { + "description": "AlertGroup alert group", "type": "object", "required": [ "alerts", @@ -5649,8 +5677,6 @@ "$ref": "#/definitions/receiver" } }, - "x-go-name": "AlertGroup", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/alertGroup" }, "alertGroups": { @@ -5779,7 +5805,6 @@ "$ref": "#/definitions/Duration" }, "gettableAlert": { - "description": "GettableAlert gettable alert", "type": "object", "required": [ "labels", @@ -5839,19 +5864,19 @@ "x-go-name": "UpdatedAt" } }, + "x-go-name": "GettableAlert", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/gettableAlert" }, "gettableAlerts": { + "description": "GettableAlerts gettable alerts", "type": "array", "items": { "$ref": "#/definitions/gettableAlert" }, - "x-go-name": "GettableAlerts", - "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/gettableAlerts" }, "gettableSilence": { - "description": "GettableSilence gettable silence", "type": "object", "required": [ "comment", @@ -5904,14 +5929,17 @@ "x-go-name": "UpdatedAt" } }, + "x-go-name": "GettableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/gettableSilence" }, "gettableSilences": { - "description": "GettableSilences gettable silences", "type": "array", "items": { "$ref": "#/definitions/gettableSilence" }, + "x-go-name": "GettableSilences", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/gettableSilences" }, "labelSet": { @@ -6041,7 +6069,6 @@ "x-go-package": "github.com/prometheus/alertmanager/api/v2/models" }, "postableSilence": { - "description": "PostableSilence postable silence", "type": "object", "required": [ "comment", @@ -6082,10 +6109,11 @@ "x-go-name": "StartsAt" } }, + "x-go-name": "PostableSilence", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/postableSilence" }, "receiver": { - "description": "Receiver receiver", "type": "object", "required": [ "name" @@ -6097,6 +6125,8 @@ "x-go-name": "Name" } }, + "x-go-name": "Receiver", + "x-go-package": "github.com/prometheus/alertmanager/api/v2/models", "$ref": "#/definitions/receiver" }, "silence": { diff --git a/pkg/services/ngalert/notifier/alertmanager_config.go b/pkg/services/ngalert/notifier/alertmanager_config.go index 9491cf5a0ef..e564813f151 100644 --- a/pkg/services/ngalert/notifier/alertmanager_config.go +++ b/pkg/services/ngalert/notifier/alertmanager_config.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions" "github.com/grafana/grafana/pkg/services/ngalert/models" "github.com/grafana/grafana/pkg/services/ngalert/store" @@ -82,11 +81,9 @@ func (moa *MultiOrgAlertmanager) GetAlertmanagerConfiguration(ctx context.Contex result.AlertmanagerConfig.Receivers = append(result.AlertmanagerConfig.Receivers, &gettableApiReceiver) } - if moa.settings.IsFeatureToggleEnabled(featuremgmt.FlagAlertProvisioning) { - result, err = moa.mergeProvenance(ctx, result, org) - if err != nil { - return definitions.GettableUserConfig{}, err - } + result, err = moa.mergeProvenance(ctx, result, org) + if err != nil { + return definitions.GettableUserConfig{}, err } return result, nil diff --git a/pkg/services/ngalert/tests/util.go b/pkg/services/ngalert/tests/util.go index 9d1694a4d22..4c5a9433349 100644 --- a/pkg/services/ngalert/tests/util.go +++ b/pkg/services/ngalert/tests/util.go @@ -40,11 +40,6 @@ func SetupTestEnv(t *testing.T, baseInterval time.Duration) (*ngalert.AlertNG, * cfg.UnifiedAlerting.Enabled = new(bool) *cfg.UnifiedAlerting.Enabled = true - cfg.IsFeatureToggleEnabled = func(key string) bool { - // Enable alert provisioning FF when running tests. - return key == featuremgmt.FlagAlertProvisioning - } - m := metrics.NewNGAlert(prometheus.NewRegistry()) sqlStore := sqlstore.InitTestDB(t) secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) diff --git a/pkg/tests/api/alerting/api_provisioning_test.go b/pkg/tests/api/alerting/api_provisioning_test.go index a391c9a3154..197dfa4d57f 100644 --- a/pkg/tests/api/alerting/api_provisioning_test.go +++ b/pkg/tests/api/alerting/api_provisioning_test.go @@ -9,7 +9,6 @@ import ( "github.com/grafana/grafana/pkg/infra/tracing" "github.com/grafana/grafana/pkg/models" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/tests/testinfra" "github.com/stretchr/testify/require" ) @@ -23,7 +22,6 @@ func TestProvisioning(t *testing.T) { EnableUnifiedAlerting: true, DisableAnonymous: true, AppModeProduction: true, - EnableFeatureToggles: []string{featuremgmt.FlagAlertProvisioning}, }) grafanaListedAddr, store := testinfra.StartGrafana(t, dir, path)