* Alerting: Send alerts to external Alertmanager(s) Within this PR we're adding support for registering or unregistering sending to a set of external alertmanagers. A few of the things that are going are: - Introduce a new table to hold "admin" (either org or global) configuration we can change at runtime. - A new periodic check that polls for this configuration and adjusts the "senders" accordingly. - Introduces a new concept of "senders" that are responsible for shipping the alerts to the external Alertmanager(s). In a nutshell, this is the Prometheus notifier (the one in charge of sending the alert) mapped to a multi-tenant map. There are a few code movements here and there but those are minor, I tried to keep things intact as much as possible so that we could have an easier diff.
52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package definitions
|
|
|
|
// swagger:route GET /api/v1/ngalert/admin_config configuration RouteGetNGalertConfig
|
|
//
|
|
// Get the NGalert configuration of the user's organization, returns 404 if no configuration is present.
|
|
//
|
|
// Produces:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 200: GettableNGalertConfig
|
|
// 404: Failure
|
|
// 500: Failure
|
|
|
|
// swagger:route POST /api/v1/ngalert/admin_config configuration RoutePostNGalertConfig
|
|
//
|
|
// Creates or updates the NGalert configuration of the user's organization.
|
|
//
|
|
// Consumes:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 201: Ack
|
|
// 400: ValidationError
|
|
|
|
// swagger:route DELETE /api/v1/ngalert/admin_config configuration RouteDeleteNGalertConfig
|
|
//
|
|
// Deletes the NGalert configuration of the user's organization.
|
|
//
|
|
// Consumes:
|
|
// - application/json
|
|
//
|
|
// Responses:
|
|
// 200: Ack
|
|
// 500: Failure
|
|
|
|
// swagger:parameters RoutePostNGalertConfig
|
|
type NGalertConfig struct {
|
|
// in:body
|
|
Body PostableNGalertConfig
|
|
}
|
|
|
|
// swagger:model
|
|
type PostableNGalertConfig struct {
|
|
Alertmanagers []string `json:"alertmanagers"`
|
|
}
|
|
|
|
// swagger:model
|
|
type GettableNGalertConfig struct {
|
|
Alertmanagers []string `json:"alertmanagers"`
|
|
}
|