Commit 310b6766 by trace

FIX logic

parent 012ff5fd
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));
......
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