Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
nightingale
提交
9c129acd
N
nightingale
项目概览
DiDi
/
nightingale
11 个月 前同步成功
通知
46
Star
7053
Fork
1161
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nightingale
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9c129acd
编写于
4月 28, 2020
作者:
7
710leo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: standardized code
上级
7f1a9472
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
93 addition
and
93 deletion
+93
-93
src/modules/judge/judge/func.go
src/modules/judge/judge/func.go
+56
-56
src/modules/tsdb/index/cache.go
src/modules/tsdb/index/cache.go
+25
-25
src/modules/tsdb/migrate/ring.go
src/modules/tsdb/migrate/ring.go
+12
-12
未找到文件。
src/modules/judge/judge/func.go
浏览文件 @
9c129acd
...
...
@@ -18,20 +18,20 @@ type MaxFunction struct {
RightValue
float64
}
func
(
this
MaxFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
MaxFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
max
:=
vs
[
0
]
.
Value
for
i
:=
1
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
1
;
i
<
f
.
Limit
;
i
++
{
if
max
<
vs
[
i
]
.
Value
{
max
=
vs
[
i
]
.
Value
}
}
leftValue
=
max
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -42,20 +42,20 @@ type MinFunction struct {
RightValue
float64
}
func
(
this
MinFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
MinFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
min
:=
vs
[
0
]
.
Value
for
i
:=
1
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
1
;
i
<
f
.
Limit
;
i
++
{
if
min
>
vs
[
i
]
.
Value
{
min
=
vs
[
i
]
.
Value
}
}
leftValue
=
min
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -66,14 +66,14 @@ type AllFunction struct {
RightValue
float64
}
func
(
this
AllFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
AllFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
isTriggered
=
true
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
isTriggered
=
checkIsTriggered
(
vs
[
i
]
.
Value
,
this
.
Operator
,
this
.
RightValue
)
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
isTriggered
=
checkIsTriggered
(
vs
[
i
]
.
Value
,
f
.
Operator
,
f
.
RightValue
)
if
!
isTriggered
{
break
}
...
...
@@ -90,18 +90,18 @@ type SumFunction struct {
RightValue
float64
}
func
(
this
SumFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
SumFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
leftValue
=
sum
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -112,18 +112,18 @@ type AvgFunction struct {
RightValue
float64
}
func
(
this
AvgFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
AvgFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
leftValue
=
sum
/
dataobj
.
JsonFloat
(
this
.
Limit
)
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
leftValue
=
sum
/
dataobj
.
JsonFloat
(
f
.
Limit
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -135,18 +135,18 @@ type DiffFunction struct {
}
// 只要有一个点的diff触发阈值,就报警
func
(
this
DiffFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
DiffFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
first
:=
vs
[
0
]
.
Value
isTriggered
=
false
for
i
:=
1
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
1
;
i
<
f
.
Limit
;
i
++
{
// diff是当前值减去历史值
leftValue
=
first
-
vs
[
i
]
.
Value
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
if
isTriggered
{
break
}
...
...
@@ -163,20 +163,20 @@ type PDiffFunction struct {
RightValue
float64
}
func
(
this
PDiffFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
PDiffFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
first
:=
vs
[
0
]
.
Value
isTriggered
=
false
for
i
:=
1
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
1
;
i
<
f
.
Limit
;
i
++
{
if
vs
[
i
]
.
Value
==
0
{
continue
}
leftValue
=
(
first
-
vs
[
i
]
.
Value
)
/
vs
[
i
]
.
Value
*
100.0
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
if
isTriggered
{
break
}
...
...
@@ -193,11 +193,11 @@ type HappenFunction struct {
RightValue
float64
}
func
(
this
HappenFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
func
(
f
HappenFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
for
n
,
i
:=
0
,
0
;
i
<
len
(
vs
);
i
++
{
if
checkIsTriggered
(
vs
[
i
]
.
Value
,
this
.
Operator
,
this
.
RightValue
)
{
if
checkIsTriggered
(
vs
[
i
]
.
Value
,
f
.
Operator
,
f
.
RightValue
)
{
n
++
if
n
==
this
.
Num
{
if
n
==
f
.
Num
{
isTriggered
=
true
leftValue
=
vs
[
i
]
.
Value
return
...
...
@@ -211,7 +211,7 @@ type NodataFunction struct {
Function
}
func
(
this
NodataFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
func
(
f
NodataFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
for
_
,
value
:=
range
vs
{
if
!
math
.
IsNaN
(
float64
(
value
.
Value
))
{
return
value
.
Value
,
false
...
...
@@ -228,20 +228,20 @@ type CAvgAbsFunction struct {
CompareValue
float64
}
func
(
this
CAvgAbsFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
CAvgAbsFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
value
:=
sum
/
dataobj
.
JsonFloat
(
this
.
Limit
)
leftValue
=
dataobj
.
JsonFloat
(
math
.
Abs
(
float64
(
value
)
-
float64
(
this
.
CompareValue
)))
value
:=
sum
/
dataobj
.
JsonFloat
(
f
.
Limit
)
leftValue
=
dataobj
.
JsonFloat
(
math
.
Abs
(
float64
(
value
)
-
float64
(
f
.
CompareValue
)))
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -253,19 +253,19 @@ type CAvgFunction struct {
CompareValue
float64
}
func
(
this
CAvgFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
CAvgFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
leftValue
=
sum
/
dataobj
.
JsonFloat
(
this
.
Limit
)
-
dataobj
.
JsonFloat
(
this
.
CompareValue
)
leftValue
=
sum
/
dataobj
.
JsonFloat
(
f
.
Limit
)
-
dataobj
.
JsonFloat
(
f
.
CompareValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -277,20 +277,20 @@ type CAvgRateAbsFunction struct {
CompareValue
float64
}
func
(
this
CAvgRateAbsFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
CAvgRateAbsFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
value
:=
sum
/
dataobj
.
JsonFloat
(
this
.
Limit
)
leftValue
=
dataobj
.
JsonFloat
(
math
.
Abs
(
float64
(
value
)
-
float64
(
this
.
CompareValue
)))
value
:=
sum
/
dataobj
.
JsonFloat
(
f
.
Limit
)
leftValue
=
dataobj
.
JsonFloat
(
math
.
Abs
(
float64
(
value
)
-
float64
(
f
.
CompareValue
)))
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
@@ -302,20 +302,20 @@ type CAvgRateFunction struct {
CompareValue
float64
}
func
(
this
CAvgRateFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
this
.
Limit
{
func
(
f
CAvgRateFunction
)
Compute
(
vs
[]
*
dataobj
.
HistoryData
)
(
leftValue
dataobj
.
JsonFloat
,
isTriggered
bool
)
{
if
len
(
vs
)
<
f
.
Limit
{
return
}
sum
:=
dataobj
.
JsonFloat
(
0.0
)
for
i
:=
0
;
i
<
this
.
Limit
;
i
++
{
for
i
:=
0
;
i
<
f
.
Limit
;
i
++
{
sum
+=
vs
[
i
]
.
Value
}
value
:=
sum
/
dataobj
.
JsonFloat
(
this
.
Limit
)
leftValue
=
(
value
-
dataobj
.
JsonFloat
(
this
.
CompareValue
))
/
dataobj
.
JsonFloat
(
math
.
Abs
(
this
.
CompareValue
))
value
:=
sum
/
dataobj
.
JsonFloat
(
f
.
Limit
)
leftValue
=
(
value
-
dataobj
.
JsonFloat
(
f
.
CompareValue
))
/
dataobj
.
JsonFloat
(
math
.
Abs
(
f
.
CompareValue
))
isTriggered
=
checkIsTriggered
(
leftValue
,
this
.
Operator
,
this
.
RightValue
)
isTriggered
=
checkIsTriggered
(
leftValue
,
f
.
Operator
,
f
.
RightValue
)
return
}
...
...
src/modules/tsdb/index/cache.go
浏览文件 @
9c129acd
...
...
@@ -36,49 +36,49 @@ func NewIndexCacheBase(max int) *IndexCacheBase {
return
&
IndexCacheBase
{
maxSize
:
max
,
data
:
make
(
map
[
interface
{}]
*
dataobj
.
TsdbItem
)}
}
func
(
this
*
IndexCacheBase
)
Put
(
key
interface
{},
item
*
dataobj
.
TsdbItem
)
{
this
.
Lock
()
defer
this
.
Unlock
()
this
.
data
[
key
]
=
item
func
(
i
*
IndexCacheBase
)
Put
(
key
interface
{},
item
*
dataobj
.
TsdbItem
)
{
i
.
Lock
()
defer
i
.
Unlock
()
i
.
data
[
key
]
=
item
}
func
(
this
*
IndexCacheBase
)
Get
(
key
interface
{})
*
dataobj
.
TsdbItem
{
this
.
RLock
()
defer
this
.
RUnlock
()
return
this
.
data
[
key
]
func
(
i
*
IndexCacheBase
)
Get
(
key
interface
{})
*
dataobj
.
TsdbItem
{
i
.
RLock
()
defer
i
.
RUnlock
()
return
i
.
data
[
key
]
}
func
(
this
*
IndexCacheBase
)
ContainsKey
(
key
interface
{})
bool
{
this
.
RLock
()
defer
this
.
RUnlock
()
return
this
.
data
[
key
]
!=
nil
func
(
i
*
IndexCacheBase
)
ContainsKey
(
key
interface
{})
bool
{
i
.
RLock
()
defer
i
.
RUnlock
()
return
i
.
data
[
key
]
!=
nil
}
func
(
this
*
IndexCacheBase
)
Size
()
int
{
this
.
RLock
()
defer
this
.
RUnlock
()
return
len
(
this
.
data
)
func
(
i
*
IndexCacheBase
)
Size
()
int
{
i
.
RLock
()
defer
i
.
RUnlock
()
return
len
(
i
.
data
)
}
func
(
this
*
IndexCacheBase
)
Keys
()
[]
interface
{}
{
this
.
RLock
()
defer
this
.
RUnlock
()
func
(
i
*
IndexCacheBase
)
Keys
()
[]
interface
{}
{
i
.
RLock
()
defer
i
.
RUnlock
()
count
:=
len
(
this
.
data
)
count
:=
len
(
i
.
data
)
if
count
==
0
{
return
[]
interface
{}{}
}
keys
:=
make
([]
interface
{},
0
,
count
)
for
key
:=
range
this
.
data
{
for
key
:=
range
i
.
data
{
keys
=
append
(
keys
,
key
)
}
return
keys
}
func
(
this
*
IndexCacheBase
)
Remove
(
key
interface
{})
{
this
.
Lock
()
defer
this
.
Unlock
()
delete
(
this
.
data
,
key
)
func
(
i
*
IndexCacheBase
)
Remove
(
key
interface
{})
{
i
.
Lock
()
defer
i
.
Unlock
()
delete
(
i
.
data
,
key
)
}
src/modules/tsdb/migrate/ring.go
浏览文件 @
9c129acd
...
...
@@ -11,25 +11,25 @@ type ConsistentHashRing struct {
ring
*
consistent
.
Consistent
}
func
(
this
*
ConsistentHashRing
)
GetNode
(
pk
string
)
(
string
,
error
)
{
this
.
RLock
()
defer
this
.
RUnlock
()
func
(
c
*
ConsistentHashRing
)
GetNode
(
pk
string
)
(
string
,
error
)
{
c
.
RLock
()
defer
c
.
RUnlock
()
return
this
.
ring
.
Get
(
pk
)
return
c
.
ring
.
Get
(
pk
)
}
func
(
this
*
ConsistentHashRing
)
Set
(
r
*
consistent
.
Consistent
)
{
this
.
Lock
()
defer
this
.
Unlock
()
this
.
ring
=
r
func
(
c
*
ConsistentHashRing
)
Set
(
r
*
consistent
.
Consistent
)
{
c
.
Lock
()
defer
c
.
Unlock
()
c
.
ring
=
r
return
}
func
(
this
*
ConsistentHashRing
)
GetRing
()
*
consistent
.
Consistent
{
this
.
RLock
()
defer
this
.
RUnlock
()
func
(
c
*
ConsistentHashRing
)
GetRing
()
*
consistent
.
Consistent
{
c
.
RLock
()
defer
c
.
RUnlock
()
return
this
.
ring
return
c
.
ring
}
func
NewConsistentHashRing
(
replicas
int32
,
nodes
[]
string
)
*
ConsistentHashRing
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录