Make alert channel size configurable (and bigger)

Signed-off-by: Filippo Giunchedi <filippo@wikimedia.org>
This commit is contained in:
Filippo Giunchedi 2020-11-25 11:45:40 +01:00
parent 60b1c5eb64
commit f03c45406c
4 changed files with 45 additions and 39 deletions

View File

@ -63,6 +63,9 @@ msg_template: "Alert {{ .Labels.alertname }} on {{ .Labels.instance }} is {{ .St
# Note: When sending only one message per alert group the default
# msg_template is set to
# "Alert {{ .GroupLabels.alertname }} for {{ .GroupLabels.job }} is {{ .Status }}"
# Set the internal buffer size for alerts received but not yet sent to IRC.
alert_buffer_size: 2048
```
Running the bot (assuming *$GOPATH* and *$PATH* are properly setup for go):

View File

@ -45,6 +45,7 @@ type Config struct {
MsgTemplate string `yaml:"msg_template"`
MsgOnce bool `yaml:"msg_once_per_alert_group"`
UsePrivmsg bool `yaml:"use_privmsg"`
AlertBufferSize int `yaml:"alert_buffer_size"`
}
func LoadConfig(configFile string) (*Config, error) {
@ -62,6 +63,7 @@ func LoadConfig(configFile string) (*Config, error) {
IRCChannels: []IRCChannel{},
MsgOnce: false,
UsePrivmsg: false,
AlertBufferSize: 2048,
}
if configFile != "" {

View File

@ -46,6 +46,7 @@ func TestLoadGoodConfig(t *testing.T) {
MsgTemplate: defaultMsgTemplate,
MsgOnce: false,
UsePrivmsg: false,
AlertBufferSize: 666,
}
expectedData, err := yaml.Marshal(expectedConfig)
if err != nil {

View File

@ -37,7 +37,7 @@ func main() {
return
}
alertMsgs := make(chan AlertMsg, 10)
alertMsgs := make(chan AlertMsg, config.AlertBufferSize)
ircNotifier, err := NewIRCNotifier(config, alertMsgs)
if err != nil {