Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Nightingale
提交
23b6cf1a
N
Nightingale
项目概览
jobily
/
Nightingale
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
Nightingale
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
23b6cf1a
编写于
12月 15, 2021
作者:
U
Ulric Qin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix repeat sender
上级
3babc6c5
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
14 addition
and
15 deletion
+14
-15
src/server/engine/mute.go
src/server/engine/mute.go
+10
-4
src/server/engine/repeat.go
src/server/engine/repeat.go
+4
-11
未找到文件。
src/server/engine/mute.go
浏览文件 @
23b6cf1a
...
@@ -5,14 +5,15 @@ import (
...
@@ -5,14 +5,15 @@ import (
"github.com/didi/nightingale/v5/src/server/memsto"
"github.com/didi/nightingale/v5/src/server/memsto"
)
)
func
isMuted
(
event
*
models
.
AlertCurEvent
)
bool
{
// 如果传入了clock这个可选参数,就表示使用这个clock表示的时间,否则就从event的字段中取TriggerTime
func
isMuted
(
event
*
models
.
AlertCurEvent
,
clock
...
int64
)
bool
{
mutes
,
has
:=
memsto
.
AlertMuteCache
.
Gets
(
event
.
GroupId
)
mutes
,
has
:=
memsto
.
AlertMuteCache
.
Gets
(
event
.
GroupId
)
if
!
has
||
len
(
mutes
)
==
0
{
if
!
has
||
len
(
mutes
)
==
0
{
return
false
return
false
}
}
for
i
:=
0
;
i
<
len
(
mutes
);
i
++
{
for
i
:=
0
;
i
<
len
(
mutes
);
i
++
{
if
matchMute
(
event
,
mutes
[
i
])
{
if
matchMute
(
event
,
mutes
[
i
]
,
clock
...
)
{
return
true
return
true
}
}
}
}
...
@@ -20,8 +21,13 @@ func isMuted(event *models.AlertCurEvent) bool {
...
@@ -20,8 +21,13 @@ func isMuted(event *models.AlertCurEvent) bool {
return
false
return
false
}
}
func
matchMute
(
event
*
models
.
AlertCurEvent
,
mute
*
models
.
AlertMute
)
bool
{
func
matchMute
(
event
*
models
.
AlertCurEvent
,
mute
*
models
.
AlertMute
,
clock
...
int64
)
bool
{
if
event
.
TriggerTime
<
mute
.
Btime
||
event
.
TriggerTime
>
mute
.
Etime
{
ts
:=
event
.
TriggerTime
if
len
(
clock
)
>
0
{
ts
=
clock
[
0
]
}
if
ts
<
mute
.
Btime
||
ts
>
mute
.
Etime
{
return
false
return
false
}
}
...
...
src/server/engine/repeat.go
浏览文件 @
23b6cf1a
...
@@ -49,23 +49,16 @@ func repeat() {
...
@@ -49,23 +49,16 @@ func repeat() {
event
.
DB2Mem
()
event
.
DB2Mem
()
// 重复通知的告警,应该用新的时间来判断是否生效和是否屏蔽,
// 重复通知的告警,应该用新的时间来判断是否生效和是否屏蔽,
// 不能使用TriggerTime,因为TriggerTime是触发时的时间,
// 不能使用TriggerTime,因为TriggerTime是触发时的时间,是一个比较老的时间
// 先发了告警,又做了屏蔽,本质是不想发了,如果继续用TriggerTime判断
// 先发了告警,又做了屏蔽,本质是不想发了,如果继续用TriggerTime判断,就还是会发,不符合预期
// 就还是会发,不符合预期,所以,这里伪装一下TriggerTime,
if
isNoneffective
(
event
.
NotifyRepeatNext
,
rule
)
{
// 判断完了再卸掉伪装
realTriggerTime
:=
event
.
TriggerTime
event
.
TriggerTime
=
event
.
NotifyRepeatNext
if
isNoneffective
(
event
.
TriggerTime
,
rule
)
{
continue
continue
}
}
if
isMuted
(
event
)
{
if
isMuted
(
event
,
event
.
NotifyRepeatNext
)
{
continue
continue
}
}
event
.
TriggerTime
=
realTriggerTime
fillUsers
(
event
)
fillUsers
(
event
)
notify
(
event
)
notify
(
event
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录