From 8a145d5ba2e7d5217e725fed091fc031c292ab6a Mon Sep 17 00:00:00 2001 From: JellyTony <106534114+JellyTony@users.noreply.github.com> Date: Fri, 4 Nov 2022 15:18:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8A=A5=E8=AD=A6=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4=E6=94=B9=E4=B8=BA=E5=8F=AF?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20(#1253)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update docker-compose.yaml * Update docker-compose.yaml * feat: 报警脚本超时时间改为可配置 * feat: docker 镜像Alerting 增加 超时时间 Co-authored-by: ulricqin Co-authored-by: JeffreyBool --- docker/n9eetc/server.conf | 2 ++ etc/server.conf | 2 ++ src/server/config/config.go | 1 + src/server/engine/notify.go | 6 +++++- 4 files changed, 10 insertions(+), 1 deletion(-) 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 {