Skip to content

Commit

Permalink
Improvements in silences
Browse files Browse the repository at this point in the history
  • Loading branch information
chavakula committed Feb 20, 2025
1 parent d0b5f73 commit c75f0ee
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
3 changes: 0 additions & 3 deletions backend/cmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -456,9 +456,6 @@ func handleConfig(cmd *cobra.Command, arguments []string, server bool) error {
viper.SetDefault(flagEventLogFile, "")
viper.SetDefault(flagEventLogParallelEncoders, false)

// default silenced value are set for 1 day = 1440m
viper.SetDefault(flagMaxSilencedExpiryTimeAllowed, "1440m")
viper.SetDefault(flagDefaultSilencedExpiryTime, "1440m")
}

// Etcd defaults
Expand Down
28 changes: 18 additions & 10 deletions backend/store/etcd/silenced_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"
"errors"
"fmt"
"github.com/gogo/protobuf/proto"
"time"

"github.com/gogo/protobuf/proto"
corev2 "github.com/sensu/core/v2"
"github.com/sensu/sensu-go/backend/etcd"
"github.com/sensu/sensu-go/backend/store"
Expand Down Expand Up @@ -208,13 +208,9 @@ func (s *Store) UpdateSilencedEntry(ctx context.Context, silenced *corev2.Silenc
if err := silenced.Validate(); err != nil {
return &store.ErrNotValid{Err: err}
}
allowedMaxTime := time.Now().Add(s.cfg.MaxSilencedExpiryTimeAllowed).Unix()

// check for maximum allowed duration for silenced allowed
if silenced.ExpireAt > 0 && (silenced.ExpireAt > allowedMaxTime) {
err := errors.New(silencedLimitError)
return &store.ErrThreshold{Err: err}
}
// calculate maximum allowed time based on max-silenced-expiry-time-allowed in yaml
allowedMaxTime := time.Now().Add(s.cfg.MaxSilencedExpiryTimeAllowed).Unix()

if silenced.ExpireAt == 0 && silenced.Expire > 0 {
start := time.Now()
Expand All @@ -230,13 +226,25 @@ func (s *Store) UpdateSilencedEntry(ctx context.Context, silenced *corev2.Silenc
}
}

// set default silenced expiry time configured in backend yaml file
if silenced.Expire <= 0 && silenced.ExpireAt == 0 {
// if Expiry date is not set
if silenced.ExpireAt == 0 {
start := time.Now()
if silenced.Begin > 0 {
start = time.Unix(silenced.Begin, 0)
}
silenced.ExpireAt = start.Add(s.cfg.DefaultSilencedExpiryTime).Unix()

// if default-silenced-expiry-time in yaml is set
if s.cfg.DefaultSilencedExpiryTime > 0 {
silenced.ExpireAt = start.Add(s.cfg.DefaultSilencedExpiryTime).Unix()
}
} else {
// if max-silenced-expiry-time-allowed in yaml is set
if s.cfg.MaxSilencedExpiryTimeAllowed > 0 {
if silenced.ExpireAt > allowedMaxTime {
err := errors.New(silencedLimitError)
return &store.ErrThreshold{Err: err}
}
}
}

silencedBytes, err := proto.Marshal(silenced)
Expand Down

0 comments on commit c75f0ee

Please sign in to comment.