MCPcopy Index your code
hub / github.com/cortexproject/cortex / buildReceiverIntegrations

Function buildReceiverIntegrations

pkg/alertmanager/alertmanager.go:524–640  ·  view source on GitHub ↗

buildReceiverIntegrations builds a list of integration notifiers off of a receiver config. Taken from https://github.com/prometheus/alertmanager/blob/d7b4f0c7322e7151d6e3b1e31cbc15361e295d8d/cmd/alertmanager/main.go#L135-L193.

(nc config.Receiver, tmpl *template.Template, firewallDialer *util_net.FirewallDialer, logger log.Logger, wrapper func(string, notify.Notifier) notify.Notifier)

Source from the content-addressed store, hash-verified

522// receiver config.
523// Taken from https://github.com/prometheus/alertmanager/blob/d7b4f0c7322e7151d6e3b1e31cbc15361e295d8d/cmd/alertmanager/main.go#L135-L193.
524func buildReceiverIntegrations(nc config.Receiver, tmpl *template.Template, firewallDialer *util_net.FirewallDialer, logger log.Logger, wrapper func(string, notify.Notifier) notify.Notifier) ([]notify.Integration, error) {
525 var (
526 errs types.MultiError
527 integrations []notify.Integration
528 add = func(name string, i int, rs notify.ResolvedSender, f func(l log.Logger) (notify.Notifier, error)) {
529 n, err := f(log.With(logger, "integration", name))
530 if err != nil {
531 errs.Add(err)
532 return
533 }
534 n = wrapper(name, n)
535 integrations = append(integrations, notify.NewIntegration(n, rs, name, i, nc.Name))
536 }
537 )
538
539 // Inject the firewall to any receiver integration supporting it.
540 httpOps := []commoncfg.HTTPClientOption{
541 commoncfg.WithDialContextFunc(firewallDialer.DialContext),
542 }
543
544 for i, c := range nc.WebhookConfigs {
545 add("webhook", i, c, func(l log.Logger) (notify.Notifier, error) {
546 return webhook.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
547 })
548 }
549 for i, c := range nc.EmailConfigs {
550 add("email", i, c, func(l log.Logger) (notify.Notifier, error) {
551 return email.New(c, tmpl, util_log.GoKitLogToSlog(l)), nil
552 })
553 }
554 for i, c := range nc.PagerdutyConfigs {
555 add("pagerduty", i, c, func(l log.Logger) (notify.Notifier, error) {
556 return pagerduty.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
557 })
558 }
559 for i, c := range nc.OpsGenieConfigs {
560 add("opsgenie", i, c, func(l log.Logger) (notify.Notifier, error) {
561 return opsgenie.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
562 })
563 }
564 for i, c := range nc.WechatConfigs {
565 add("wechat", i, c, func(l log.Logger) (notify.Notifier, error) {
566 return wechat.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
567 })
568 }
569 for i, c := range nc.SlackConfigs {
570 add("slack", i, c, func(l log.Logger) (notify.Notifier, error) {
571 return slack.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
572 })
573 }
574 for i, c := range nc.VictorOpsConfigs {
575 add("victorops", i, c, func(l log.Logger) (notify.Notifier, error) {
576 return victorops.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)
577 })
578 }
579 for i, c := range nc.PushoverConfigs {
580 add("pushover", i, c, func(l log.Logger) (notify.Notifier, error) {
581 return pushover.New(c, tmpl, util_log.GoKitLogToSlog(l), httpOps...)

Callers 1

buildIntegrationsMapFunction · 0.85

Calls 2

AddMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected