diff --git a/flow/alerting/alerting.go b/flow/alerting/alerting.go index f5f303fb83..6dcbc85409 100644 --- a/flow/alerting/alerting.go +++ b/flow/alerting/alerting.go @@ -69,9 +69,9 @@ func (a *Alerter) registerSendersFromPool(ctx context.Context) ([]AlertSenderCon region = &envRegion } - alertSender, err2 := NewEmailAlertSenderWithNewClient(ctx, region, &emailServiceConfig) - if err2 != nil { - return fmt.Errorf("failed to initialize email alerter: %w", err2) + alertSender, alertSenderErr := NewEmailAlertSenderWithNewClient(ctx, region, &emailServiceConfig) + if alertSenderErr != nil { + return fmt.Errorf("failed to initialize email alerter: %w", alertSenderErr) } alertSenderConfigs = append(alertSenderConfigs, AlertSenderConfig{Id: id, Sender: alertSender}) default: diff --git a/flow/alerting/email_alert_sender.go b/flow/alerting/email_alert_sender.go index 198c791cd8..ec55d377ea 100644 --- a/flow/alerting/email_alert_sender.go +++ b/flow/alerting/email_alert_sender.go @@ -11,11 +11,8 @@ import ( "github.com/PeerDB-io/peer-flow/shared/aws_common" ) -type EmailAlertSender interface { +type EmailAlertSender struct { AlertSender -} - -type emailAlertSenderImpl struct { client *ses.Client sourceEmail string configurationSetName string @@ -25,11 +22,11 @@ type emailAlertSenderImpl struct { emailAddresses []string } -func (e *emailAlertSenderImpl) getSlotLagMBAlertThreshold() uint32 { +func (e *EmailAlertSender) getSlotLagMBAlertThreshold() uint32 { return e.slotLagMBAlertThreshold } -func (e *emailAlertSenderImpl) getOpenConnectionsAlertThreshold() uint32 { +func (e *EmailAlertSender) getOpenConnectionsAlertThreshold() uint32 { return e.openConnectionsAlertThreshold } @@ -42,7 +39,7 @@ type EmailAlertSenderConfig struct { EmailAddresses []string `json:"email_addresses"` } -func (e *emailAlertSenderImpl) sendAlert(ctx context.Context, alertTitle string, alertMessage string) error { +func (e *EmailAlertSender) sendAlert(ctx context.Context, alertTitle string, alertMessage string) error { _, err := e.client.SendEmail(ctx, &ses.SendEmailInput{ Destination: &types.Destination{ ToAddresses: e.emailAddresses, @@ -72,7 +69,7 @@ func (e *emailAlertSenderImpl) sendAlert(ctx context.Context, alertTitle string, return nil } -func NewEmailAlertSenderWithNewClient(ctx context.Context, region *string, config *EmailAlertSenderConfig) (EmailAlertSender, error) { +func NewEmailAlertSenderWithNewClient(ctx context.Context, region *string, config *EmailAlertSenderConfig) (*EmailAlertSender, error) { client, err := newSesClient(ctx, region) if err != nil { return nil, err @@ -80,8 +77,8 @@ func NewEmailAlertSenderWithNewClient(ctx context.Context, region *string, confi return NewEmailAlertSender(client, config), nil } -func NewEmailAlertSender(client *ses.Client, config *EmailAlertSenderConfig) EmailAlertSender { - return &emailAlertSenderImpl{ +func NewEmailAlertSender(client *ses.Client, config *EmailAlertSenderConfig) *EmailAlertSender { + return &EmailAlertSender{ client: client, sourceEmail: config.sourceEmail, configurationSetName: config.configurationSetName, diff --git a/flow/alerting/slack_alert_sender.go b/flow/alerting/slack_alert_sender.go index d3800db6a0..85f0657d11 100644 --- a/flow/alerting/slack_alert_sender.go +++ b/flow/alerting/slack_alert_sender.go @@ -7,22 +7,19 @@ import ( "github.com/slack-go/slack" ) -type SlackAlertSender interface { +type SlackAlertSender struct { AlertSender -} - -type slackAlertSenderImpl struct { client *slack.Client channelIDs []string slotLagMBAlertThreshold uint32 openConnectionsAlertThreshold uint32 } -func (s *slackAlertSenderImpl) getSlotLagMBAlertThreshold() uint32 { +func (s *SlackAlertSender) getSlotLagMBAlertThreshold() uint32 { return s.slotLagMBAlertThreshold } -func (s *slackAlertSenderImpl) getOpenConnectionsAlertThreshold() uint32 { +func (s *SlackAlertSender) getOpenConnectionsAlertThreshold() uint32 { return s.openConnectionsAlertThreshold } @@ -33,8 +30,8 @@ type slackAlertConfig struct { OpenConnectionsAlertThreshold uint32 `json:"open_connections_alert_threshold"` } -func newSlackAlertSender(config *slackAlertConfig) SlackAlertSender { - return &slackAlertSenderImpl{ +func newSlackAlertSender(config *slackAlertConfig) *SlackAlertSender { + return &SlackAlertSender{ client: slack.New(config.AuthToken), channelIDs: config.ChannelIDs, slotLagMBAlertThreshold: config.SlotLagMBAlertThreshold, @@ -42,7 +39,7 @@ func newSlackAlertSender(config *slackAlertConfig) SlackAlertSender { } } -func (s *slackAlertSenderImpl) sendAlert(ctx context.Context, alertTitle string, alertMessage string) error { +func (s *SlackAlertSender) sendAlert(ctx context.Context, alertTitle string, alertMessage string) error { for _, channelID := range s.channelIDs { _, _, _, err := s.client.SendMessageContext(ctx, channelID, slack.MsgOptionBlocks( slack.NewHeaderBlock(slack.NewTextBlockObject("plain_text", ":rotating_light:Alert:rotating_light:: "+alertTitle, true, false)),