Remote Alertmanager: Make timeout configurable in alert senders (#105599)

pull/105606/head
Santiago 2 months ago committed by GitHub
parent 15c903fa5c
commit 180b67ca6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      pkg/services/ngalert/remote/alertmanager.go
  2. 8
      pkg/services/ngalert/sender/sender.go

@ -167,7 +167,7 @@ func NewAlertmanager(ctx context.Context, cfg AlertmanagerConfig, store stateSto
return nil, err
}
s.Run()
err = s.ApplyConfig(cfg.OrgID, 0, []sender.ExternalAMcfg{{URL: cfg.URL + "/alertmanager"}})
err = s.ApplyConfig(cfg.OrgID, 0, []sender.ExternalAMcfg{{URL: cfg.URL + "/alertmanager", Timeout: cfg.Timeout}})
if err != nil {
return nil, err
}

@ -46,6 +46,7 @@ type ExternalAlertmanager struct {
type ExternalAMcfg struct {
URL string
Headers http.Header
Timeout time.Duration
}
type Option func(*ExternalAlertmanager)
@ -229,11 +230,16 @@ func buildNotifierConfig(alertmanagers []ExternalAMcfg) (*config.Config, map[str
},
}
timeout := am.Timeout
if timeout == 0 {
timeout = defaultTimeout
}
amConfig := &config.AlertmanagerConfig{
APIVersion: config.AlertmanagerAPIVersionV2,
Scheme: u.Scheme,
PathPrefix: u.Path,
Timeout: model.Duration(defaultTimeout),
Timeout: model.Duration(timeout),
ServiceDiscoveryConfigs: sdConfig,
}

Loading…
Cancel
Save