diff --git a/docker/n9eetc/server.conf b/docker/n9eetc/server.conf index 14aa65b9..13e25326 100644 --- a/docker/n9eetc/server.conf +++ b/docker/n9eetc/server.conf @@ -75,6 +75,8 @@ InsecureSkipVerify = true Batch = 5 [Alerting] +# timeout settings, unit: ms, default: 30000ms +Timeout=30000 TemplatesDir = "./etc/template" NotifyConcurrency = 10 # use builtin go code notify diff --git a/etc/server.conf b/etc/server.conf index 59520156..ed01a056 100644 --- a/etc/server.conf +++ b/etc/server.conf @@ -75,6 +75,8 @@ InsecureSkipVerify = true Batch = 5 [Alerting] +# timeout settings, unit: ms, default: 30000ms +Timeout=30000 TemplatesDir = "./etc/template" NotifyConcurrency = 10 # use builtin go code notify diff --git a/src/server/config/config.go b/src/server/config/config.go index 000c0a05..4f521c1b 100644 --- a/src/server/config/config.go +++ b/src/server/config/config.go @@ -312,6 +312,7 @@ type SMTPConfig struct { } type Alerting struct { + Timeout int64 TemplatesDir string NotifyConcurrency int NotifyBuiltinChannels []string diff --git a/src/server/engine/notify.go b/src/server/engine/notify.go index 692bd724..ca9f6842 100644 --- a/src/server/engine/notify.go +++ b/src/server/engine/notify.go @@ -398,6 +398,10 @@ func alertingCallScript(stdinBytes []byte) { return } + if config.C.Alerting.Timeout == 0 { + config.C.Alerting.Timeout = 30000 + } + fpath := config.C.Alerting.CallScript.ScriptPath cmd := exec.Command(fpath) cmd.Stdin = bytes.NewReader(stdinBytes) @@ -413,7 +417,7 @@ func alertingCallScript(stdinBytes []byte) { return } - err, isTimeout := sys.WrapTimeout(cmd, time.Duration(30)*time.Second) + err, isTimeout := sys.WrapTimeout(cmd, time.Duration(config.C.Alerting.Timeout)*time.Millisecond) if isTimeout { if err == nil {