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 return nil, err
} }
s.Run() 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 { if err != nil {
return nil, err return nil, err
} }

@ -46,6 +46,7 @@ type ExternalAlertmanager struct {
type ExternalAMcfg struct { type ExternalAMcfg struct {
URL string URL string
Headers http.Header Headers http.Header
Timeout time.Duration
} }
type Option func(*ExternalAlertmanager) 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{ amConfig := &config.AlertmanagerConfig{
APIVersion: config.AlertmanagerAPIVersionV2, APIVersion: config.AlertmanagerAPIVersionV2,
Scheme: u.Scheme, Scheme: u.Scheme,
PathPrefix: u.Path, PathPrefix: u.Path,
Timeout: model.Duration(defaultTimeout), Timeout: model.Duration(timeout),
ServiceDiscoveryConfigs: sdConfig, ServiceDiscoveryConfigs: sdConfig,
} }

Loading…
Cancel
Save