Skip to content

Commit

Permalink
Alertmanager: Make sender use go-kit logger and add no-op e-mail send…
Browse files Browse the repository at this point in the history
…er (grafana#8193)

* Alertmanager: Make sender use go-kit logger

* return error from SendEmail

* make linter happy
  • Loading branch information
santihernandezc authored May 28, 2024
1 parent dc2aedb commit 72cd1a7
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions pkg/alertmanager/sender.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import (
"net/http"
"time"

alertingLogging "github.com/grafana/alerting/logging"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
alertingReceivers "github.com/grafana/alerting/receivers"
"github.com/pkg/errors"

Expand All @@ -29,10 +30,10 @@ var (

type Sender struct {
c *http.Client
log alertingLogging.Logger
log log.Logger
}

func NewSender(log alertingLogging.Logger) *Sender {
func NewSender(log log.Logger) *Sender {
netTransport := &http.Transport{
TLSClientConfig: &tls.Config{
Renegotiation: tls.RenegotiateFreelyAsClient,
Expand All @@ -59,7 +60,7 @@ func (s *Sender) SendWebhook(ctx context.Context, cmd *alertingReceivers.SendWeb
cmd.HTTPMethod = http.MethodPost
}

s.log.Debug("Sending webhook", "url", cmd.URL, "http method", cmd.HTTPMethod)
level.Debug(s.log).Log("msg", "Sending webhook", "url", cmd.URL, "http method", cmd.HTTPMethod)

if cmd.HTTPMethod != http.MethodPost && cmd.HTTPMethod != http.MethodPut {
return ErrInvalidMethod
Expand Down Expand Up @@ -91,7 +92,7 @@ func (s *Sender) SendWebhook(ctx context.Context, cmd *alertingReceivers.SendWeb
}
defer func() {
if err := resp.Body.Close(); err != nil {
s.log.Warn("Failed to close response body", "err", err)
level.Warn(s.log).Log("msg", "Failed to close response body", "err", err)
}
}()

Expand All @@ -103,16 +104,22 @@ func (s *Sender) SendWebhook(ctx context.Context, cmd *alertingReceivers.SendWeb
if cmd.Validation != nil {
err := cmd.Validation(body, resp.StatusCode)
if err != nil {
s.log.Debug("Webhook failed validation", "url", cmd.URL, "statuscode", resp.Status, "body", string(body))
level.Debug(s.log).Log("msg", "Webhook failed validation", "url", cmd.URL, "statuscode", resp.Status, "body", string(body))
return fmt.Errorf("webhook failed validation: %w", err)
}
}

if resp.StatusCode/100 == 2 {
s.log.Debug("Webhook succeeded", "url", cmd.URL, "statuscode", resp.Status)
level.Debug(s.log).Log("msg", "Webhook succeeded", "url", cmd.URL, "statuscode", resp.Status)
return nil
}

s.log.Debug("Webhook failed", "url", cmd.URL, "statuscode", resp.Status, "body", string(body))
level.Debug(s.log).Log("msg", "Webhook failed", "url", cmd.URL, "statuscode", resp.Status, "body", string(body))
return fmt.Errorf("webhook response status %v", resp.Status)
}

// SendEmail implements alertingReceivers.EmailSender.
// TODO: no-op for now, implement.
func (s *Sender) SendEmail(_ context.Context, _ *alertingReceivers.SendEmailSettings) error {
return errors.New("e-mail sending not implemented")
}

0 comments on commit 72cd1a7

Please sign in to comment.