Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
AppMonitorSubscriber
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nongyingchen
AppMonitorSubscriber
Commits
a3694760
Commit
a3694760
authored
Sep 16, 2019
by
trace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FIX logic
parent
8481fe46
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
18 deletions
+25
-18
play.js
+25
-18
No files found.
play.js
View file @
a3694760
let
version
=
'1.4.
0
'
let
version
=
'1.4.
1
'
let
release
=
`<div><br/>
let
release
=
`<div><br/>
<br/>1. <br/>
<br/>1. <br/>
补全监控数量, 配置添加参数: monitorNumAtLeast, 至少监控多少个APP. 保持自有 APP 比例, 减少关联可能性
<br/>
fix logic
<br/>
<div/>
<div/>
<br/>
<br/>
<br/>
<br/>
...
@@ -171,7 +171,7 @@ sendEmail(`开始监控-----------------------`)
...
@@ -171,7 +171,7 @@ sendEmail(`开始监控-----------------------`)
// mark - 监控主流程
// mark - 监控主流程
async
function
startMonitor
()
{
async
function
startMonitor
()
{
log
(
'开始监控'
)
dingDing
(
log
(
'开始监控'
)
)
while
(
start
)
{
while
(
start
)
{
dingDing
(
log
(
`抓取一圈`
))
dingDing
(
log
(
`抓取一圈`
))
await
getConfig
()
await
getConfig
()
...
@@ -187,22 +187,24 @@ async function startMonitor() {
...
@@ -187,22 +187,24 @@ async function startMonitor() {
.
then
(()
=>
{
// 动态修改间隔得值
.
then
(()
=>
{
// 动态修改间隔得值
// 自有 app 没到时间不会进入监控
// 自有 app 没到时间不会进入监控
let
allN
=
allNames
(
monitorNames
)
let
allN
=
allNames
(
monitorNames
)
return
allN
// 将监控数量补全到700
})
let
less
=
monitorNumAtLeast
-
allN
.
length
.
then
(
allN
=>
{
// 将监控数量补全到设定值
let
less
=
isTest
()
?
(
allN
.
length
+
10
)
:
(
monitorNumAtLeast
-
allN
.
length
)
let
logLess
=
less
let
logLess
=
less
for
(
let
key
in
status
)
{
for
(
let
key
in
status
)
{
if
(
less
==
0
||
less
<
0
)
{
if
(
less
==
0
||
less
<
0
)
{
break
break
}
}
if
(
!
allN
.
includes
(
key
)
&&
status
[
key
].
status
)
{
if
(
!
allN
.
includes
(
key
)
&&
(
status
[
key
].
status
!=
undefined
)
)
{
log
(
`push 补全:
${
key
}
`
)
log
(
`push 补全:
${
key
}
`
)
allN
.
push
(
key
)
allN
.
push
(
key
)
less
--
less
--
}
}
}
}
log
(
`补全后监控数量:
${
allN
.
length
}
, 补全:
${
logLess
}
`
)
dingDing
(
log
(
`补全后监控数量:
${
allN
.
length
}
, 补全:
${
logLess
}
`
)
)
return
allN
return
isTest
()
?
allN
.
slice
(
0
,
2
)
:
allN
})
})
.
then
(
allN
=>
monitorIfOnline
(
allN
))
.
then
(
allN
=>
monitorIfOnline
(
allN
))
.
then
(
genMail
)
.
then
(
genMail
)
...
@@ -476,12 +478,12 @@ async function getTop100() {
...
@@ -476,12 +478,12 @@ async function getTop100() {
}
}
async
function
sleepForInterVal
(
val
)
{
async
function
sleepForInterVal
(
val
)
{
log
(
`进行睡眠:
${
lastIntervalTime
}
`
)
dingDing
(
log
(
`进行睡眠:
${
lastIntervalTime
}
`
)
)
await
sleep
(
val
)
await
sleep
(
val
)
}
}
async
function
monitorIfOnline
(
names
)
{
async
function
monitorIfOnline
(
names
)
{
log
(
`获取数量:
${
names
.
length
}
`
)
dingDing
(
log
(
`获取数量:
${
names
.
length
}
`
)
)
status
[
moniteDuration
]
=
Date
()
status
[
moniteDuration
]
=
Date
()
for
(
let
i
in
names
)
{
for
(
let
i
in
names
)
{
let
name
=
names
[
i
]
let
name
=
names
[
i
]
...
@@ -540,11 +542,11 @@ async function monitorIfOnline(names) {
...
@@ -540,11 +542,11 @@ async function monitorIfOnline(names) {
a
=
status
[
name
]
||
{}
a
=
status
[
name
]
||
{}
status
[
name
]
=
{
...
a
,
status
:
false
,
date
:
Date
().
toString
()
}
status
[
name
]
=
{
...
a
,
status
:
false
,
date
:
Date
().
toString
()
}
}
else
if
(
err
.
toString
().
includes
(
'ETIMEDOUT'
))
{
}
else
if
(
err
.
toString
().
includes
(
'ETIMEDOUT'
))
{
log
(
`连接超时:
${
err
.
toString
()}
`
,
true
)
dingDing
(
log
(
`连接超时:
${
err
.
toString
()}
`
,
true
)
)
throw
err
throw
err
}
else
{
}
else
{
errorLog
.
push
(
`Motitor Online Error:
${
link
(
name
,
"error "
)}
-
${
err
.
message
}
`
)
errorLog
.
push
(
`Motitor Online Error:
${
link
(
name
,
"error "
)}
-
${
err
.
message
}
`
)
log
(
`获取在线错误:
${
name
}
,
${
err
.
message
}
`
,
true
)
dingDing
(
log
(
`获取在线错误:
${
name
}
,
${
err
.
message
}
`
,
true
)
)
}
}
})
})
}
}
...
@@ -570,7 +572,7 @@ function getRegion(name) {
...
@@ -570,7 +572,7 @@ function getRegion(name) {
}
}
function
markError
()
{
function
markError
()
{
let
emailContent
=
''
let
emailContent
=
''
log
(
`发生意外错误, 生错错误邮件:
${
errorLog
.
toString
()}
`
)
dingDing
(
log
(
`发生意外错误, 生错错误邮件:
${
errorLog
.
toString
()}
`
)
)
emailContent
+=
`<details>`
emailContent
+=
`<details>`
emailContent
+=
`<summary>虫子拿权限发生意外事故</summary>`
emailContent
+=
`<summary>虫子拿权限发生意外事故</summary>`
emailContent
+=
`<dl>`
emailContent
+=
`<dl>`
...
@@ -602,7 +604,7 @@ function genMail() {
...
@@ -602,7 +604,7 @@ function genMail() {
&&
newOnline
.
length
==
0
&&
newOnline
.
length
==
0
&&
Object
.
keys
(
permissionChange
).
length
==
0
&&
Object
.
keys
(
permissionChange
).
length
==
0
&&
Object
.
keys
(
newTopMonitorNames
).
length
==
0
)
{
&&
Object
.
keys
(
newTopMonitorNames
).
length
==
0
)
{
log
(
`没有更新, 不生成内容邮件`
)
dingDing
(
log
(
`没有更新, 不生成内容邮件`
)
)
if
(
errorLog
.
length
>
0
)
{
if
(
errorLog
.
length
>
0
)
{
emailContent
+=
`Error:
${
markError
()}
`
emailContent
+=
`Error:
${
markError
()}
`
return
emailContent
return
emailContent
...
@@ -674,7 +676,7 @@ function genMail() {
...
@@ -674,7 +676,7 @@ function genMail() {
if
(
hitOurs
==
0
if
(
hitOurs
==
0
&&
hitDaichao
==
0
&&
hitDaichao
==
0
&&
errorLog
.
length
==
0
)
{
&&
errorLog
.
length
==
0
)
{
log
(
`当轮监控, 没有涉及我们的 APP 或者错误, 就不生成邮件内容`
)
dingDing
(
log
(
`当轮监控, 没有涉及我们的 APP 或者错误, 就不生成邮件内容`
)
)
return
null
return
null
}
}
...
@@ -791,6 +793,7 @@ function aliveContent(date, lastSend) {
...
@@ -791,6 +793,7 @@ function aliveContent(date, lastSend) {
}
}
function
clearLocalVariable
()
{
function
clearLocalVariable
()
{
dingDing
(
log
(
`临时变量将清除:
${
logAllVariable
()}
`
))
// 清除临时变量
// 清除临时变量
newOffline
=
[]
newOffline
=
[]
newOnline
=
[]
newOnline
=
[]
...
@@ -802,6 +805,10 @@ function clearLocalVariable() {
...
@@ -802,6 +805,10 @@ function clearLocalVariable() {
hitOurs
=
0
hitOurs
=
0
}
}
function
logAllVariable
()
{
return
log
(
`涉及登记APP:
${
hitOurs
}
, 涉及贷超:
${
hitDaichao
}
, 新下线:
${
newOffline
.
length
}
, 新上线:
${
newOnline
.
length
}
, 错误:
${
errorLog
.
length
}
`
)
}
function
outLink
(
name
)
{
function
outLink
(
name
)
{
return
`<a href="
${
base_gp_url
}${
name
}
">
return
`<a href="
${
base_gp_url
}${
name
}
">
${
getRegion
(
name
)}
-
${
name
}
<br/>
${
getRegion
(
name
)}
-
${
name
}
<br/>
...
@@ -857,7 +864,7 @@ function notifyOutside() {
...
@@ -857,7 +864,7 @@ function notifyOutside() {
function
sendEmail
(
content
,
to
=
notifyEmail
)
{
function
sendEmail
(
content
,
to
=
notifyEmail
)
{
if
(
content
==
null
||
content
==
undefined
||
content
==
''
)
{
if
(
content
==
null
||
content
==
undefined
||
content
==
''
)
{
log
(
'没有生成内容, 检查心跳'
,
true
)
dingDing
(
log
(
'没有生成内容, 检查心跳'
,
true
)
)
let
date
=
new
Date
()
let
date
=
new
Date
()
let
lastDing
=
new
Date
(
status
.
lastDingDate
||
'Tue Jan 29 2019 19:32:24 GMT+0800 (CST)'
)
let
lastDing
=
new
Date
(
status
.
lastDingDate
||
'Tue Jan 29 2019 19:32:24 GMT+0800 (CST)'
)
let
lastSend
=
new
Date
(
status
.
lastSendDate
||
'Tue Jan 29 2019 19:32:24 GMT+0800 (CST)'
)
let
lastSend
=
new
Date
(
status
.
lastSendDate
||
'Tue Jan 29 2019 19:32:24 GMT+0800 (CST)'
)
...
@@ -930,7 +937,7 @@ function dingDing(content, toDing = debugDingding) {
...
@@ -930,7 +937,7 @@ function dingDing(content, toDing = debugDingding) {
msgtype
:
'text'
,
msgtype
:
'text'
,
text
:
{
content
:
content
}
text
:
{
content
:
content
}
})
})
},
(
err
,
param
)
=>
param
&&
param
.
statusCode
!=
200
&&
log
(
`Error:
${
err
}
\nParam:
${
JSON
.
stringify
(
param
)}
`
))
},
(
err
,
param
)
=>
param
&&
param
.
statusCode
>=
400
&&
log
(
`发送钉钉Error:
${
err
}
\nParam:
${
JSON
.
stringify
(
param
)}
`
))
}
}
function
sleep
(
ms
)
{
function
sleep
(
ms
)
{
return
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
ms
));
return
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
ms
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment