Commit 310b6766 by trace

FIX logic

parent 012ff5fd
let version = '1.4.0'
let version = '1.4.1'
let release = `<div><br/>
<br/>1. <br/>
补全监控数量, 配置添加参数: monitorNumAtLeast, 至少监控多少个APP. 保持自有 APP 比例, 减少关联可能性<br/>
fix logic<br/>
<div/>
<br/>
<br/>
......@@ -171,7 +171,7 @@ sendEmail(`开始监控-----------------------`)
// mark - 监控主流程
async function startMonitor() {
log('开始监控')
dingDing(log('开始监控'))
while (start) {
dingDing(log(`抓取一圈`))
await getConfig()
......@@ -187,22 +187,24 @@ async function startMonitor() {
.then(() => { // 动态修改间隔得值
// 自有 app 没到时间不会进入监控
let allN = allNames(monitorNames)
// 将监控数量补全到700
let less = monitorNumAtLeast - allN.length
return allN
})
.then(allN => {
// 将监控数量补全到设定值
let less = isTest() ? (allN.length + 10) : (monitorNumAtLeast - allN.length)
let logLess = less
for (let key in status) {
if (less == 0 || less < 0) {
break
}
if (!allN.includes(key) && status[key].status) {
if (!allN.includes(key) && (status[key].status != undefined)) {
log(`push 补全: ${key}`)
allN.push(key)
less--
}
}
log(`补全后监控数量: ${allN.length}, 补全: ${logLess}`)
return allN
dingDing(log(`补全后监控数量: ${allN.length}, 补全: ${logLess}`))
return isTest() ? allN.slice(0, 2) : allN
})
.then(allN => monitorIfOnline(allN))
.then(genMail)
......@@ -476,12 +478,12 @@ async function getTop100() {
}
async function sleepForInterVal(val) {
log(`进行睡眠: ${lastIntervalTime}`)
dingDing(log(`进行睡眠: ${lastIntervalTime}`))
await sleep(val)
}
async function monitorIfOnline(names) {
log(`获取数量: ${names.length}`)
dingDing(log(`获取数量: ${names.length}`))
status[moniteDuration] = Date()
for (let i in names) {
let name = names[i]
......@@ -540,11 +542,11 @@ async function monitorIfOnline(names) {
a = status[name] || {}
status[name] = { ...a, status: false, date: Date().toString() }
} else if (err.toString().includes('ETIMEDOUT')) {
log(`连接超时: ${err.toString()}`, true)
dingDing(log(`连接超时: ${err.toString()}`, true))
throw err
} else {
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) {
}
function markError() {
let emailContent = ''
log(`发生意外错误, 生错错误邮件: ${errorLog.toString()}`)
dingDing(log(`发生意外错误, 生错错误邮件: ${errorLog.toString()}`))
emailContent += `<details>`
emailContent += `<summary>虫子拿权限发生意外事故</summary>`
emailContent += `<dl>`
......@@ -602,7 +604,7 @@ function genMail() {
&& newOnline.length == 0
&& Object.keys(permissionChange).length == 0
&& Object.keys(newTopMonitorNames).length == 0) {
log(`没有更新, 不生成内容邮件`)
dingDing(log(`没有更新, 不生成内容邮件`))
if (errorLog.length > 0) {
emailContent += `Error: ${markError()}`
return emailContent
......@@ -674,7 +676,7 @@ function genMail() {
if (hitOurs == 0
&& hitDaichao == 0
&& errorLog.length == 0) {
log(`当轮监控, 没有涉及我们的 APP 或者错误, 就不生成邮件内容`)
dingDing(log(`当轮监控, 没有涉及我们的 APP 或者错误, 就不生成邮件内容`))
return null
}
......@@ -791,6 +793,7 @@ function aliveContent(date, lastSend) {
}
function clearLocalVariable() {
dingDing(log(`临时变量将清除: ${logAllVariable()}`))
// 清除临时变量
newOffline = []
newOnline = []
......@@ -802,6 +805,10 @@ function clearLocalVariable() {
hitOurs = 0
}
function logAllVariable() {
return log(`涉及登记APP: ${hitOurs}, 涉及贷超: ${hitDaichao}, 新下线: ${newOffline.length}, 新上线: ${newOnline.length}, 错误: ${errorLog.length}`)
}
function outLink(name) {
return `<a href="${base_gp_url}${name}">
${getRegion(name)} - ${name}<br/>
......@@ -857,7 +864,7 @@ function notifyOutside() {
function sendEmail(content, to = notifyEmail) {
if (content == null || content == undefined || content == '') {
log('没有生成内容, 检查心跳', true)
dingDing(log('没有生成内容, 检查心跳', true))
let date = new Date()
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)')
......@@ -930,7 +937,7 @@ function dingDing(content, toDing = debugDingding) {
msgtype: 'text',
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) {
return new Promise(resolve => setTimeout(resolve, ms));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment