成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

閾值報警功能

高璐 / 2080人閱讀

摘要:定義觸發(fā)規(guī)則我們的前端監(jiān)控,會主要追蹤三種報警情況錯誤率達到設(shè)定閾值報警錯誤率達到閾值報警訪問速度慢報警。郵件通知服務(wù)目前郵件通知服務(wù)也有很多,我們選的是阿里云的郵件推送。配置任務(wù)調(diào)度,創(chuàng)建實例配置阿里云郵件推送,這里使用方式去發(fā)送郵件。

所謂web,即使你我素未謀面,便知志趣相投;足不出戶,亦知世界之大。

?
01 - 什么是閾值報警功能

在我們前端監(jiān)控系統(tǒng)中,雖然我們收集了用戶實時訪問應(yīng)用數(shù)據(jù)信息,并提供可視化界面方便用戶查詢,但是作為一款監(jiān)控系統(tǒng),卻少了靈魂的東西,那就是自動報警功能,因為我們并不喜歡,也沒人愿意時時刻刻查看監(jiān)控系統(tǒng)。因此,我們需要自動報警。
那自動報警怎么做呢?自動報警意味著我們事先定義好一系列規(guī)則,當(dāng)達到設(shè)定條件,系統(tǒng)將觸發(fā)我們定義的行為。

那需要些什么呢?那我們就一步一步來搭建這個監(jiān)控報警功能。

主要階段:定義觸發(fā)規(guī)則、任務(wù)調(diào)度框架、郵件通知服務(wù)。

定義觸發(fā)規(guī)則:我們的前端監(jiān)控,會主要追蹤三種報警情況(js錯誤率達到設(shè)定閾值報警、api錯誤率達到閾值報警、訪問速度慢報警)。

任務(wù)調(diào)度框架:任務(wù)框架有很多,并且都是開源的。由于我們的后臺使用nodeJs,并且數(shù)據(jù)存儲是mongo。所以選了agenda。下圖是各種框架對比。

郵件通知服務(wù):目前郵件通知服務(wù)也有很多,我們選的是阿里云的郵件推送。使用起來簡單,每天有200的免費額度可以使用。

02 — 實現(xiàn)過程

界面上的事我就不多說了,大家可以上監(jiān)控平臺看一下。我們來看一下如何定義任務(wù)調(diào)度-郵件推送。

配置Agenda任務(wù)調(diào)度,創(chuàng)建agenda實例:
const mongoConnectionString = "mongodb://127.0.0.1:27017/agendatask";
const agenda = new Agenda({ db: { address: mongoConnectionString } });
agenda.processEvery("30 seconds");
?

配置阿里云郵件推送,這里使用STMP方式去發(fā)送郵件。
const transporter = nodemailer.createTransport({

"host": "smtpdm.aliyun.com",
"port": 25,
"secureConnection": true, // use SSL, the port is 465
"auth": {
    "user": "*********",
    "pass": "*********"
}

});
var mailOptions = {

from: "前端監(jiān)控平臺管理員", // sender address mailfrom must be same with the user
to: options.email, // list of receivers
subject: subject, // Subject line
replyTo: "****",//custom reply address
html: body, // html body

};
transporter.sendMail(mailOptions, function (error, info) {

 if (error) {
      console.log("Message sent: " + error);
 }
 console.log("Message sent: " + info.response);

});

在用戶點擊開啟/關(guān)閉監(jiān)控警報的時候,我們?yōu)橛脩粼诤笈_創(chuàng)建或取消相應(yīng)的任務(wù)。

//創(chuàng)建/取消發(fā)送郵件任務(wù)
/*
options.email 郵件
options.alarmType 郵件類型(jsError,apiError,perfSpeed)
options.times 間隔時間(s)
options.state 任務(wù)狀態(tài)(true/false)
options.limitValue
options.appKey
*/
function createTask(options) {

//取消任務(wù)
agenda.cancel({ name: `send alarm email`, "data.appKey": options.appKey, "data.alarmType": options.alarmType });
if (!options.state) {
    return;
}
(async function () {
    await agenda.start();
    let job = agenda.create(`send alarm email`, options);
    job.repeatEvery(`${options.times} minutes`, {
        skipImmediate: true
    });
    await job.save();
})();

};
定義調(diào)度任務(wù)實現(xiàn):

別忘了,在應(yīng)用起來后我們會開啟agenda任務(wù)調(diào)度,不然不會觸發(fā)任務(wù)調(diào)度。
exports.startTask = function () {

//定義任務(wù)
agenda.define(`send alarm email`, (job, done) => {
    sendEmail(job.attrs.data);
    done();
});
//開啟任務(wù)
(async function () {
    await agenda.start();
})();

};

創(chuàng)建完任務(wù)后,agenda會在數(shù)據(jù)庫中生成相應(yīng)的任務(wù),之后agenda回去調(diào)用相應(yīng)的服務(wù):

郵件接收詳情:

好了,源碼已經(jīng)上傳到github,也可以去監(jiān)控平臺使用了,此功能目前只對注冊用戶開放哦。

喜歡請點個贊唄

或者去https://github.com/kisslove/w... Star一下

或者打賞一下

再或者……

哈哈,想法有點多了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106901.html

相關(guān)文章

  • 馬蜂窩大交通業(yè)務(wù)監(jiān)控報警系統(tǒng)架構(gòu)設(shè)計與實現(xiàn)

    摘要:為了讓大交通下的各業(yè)務(wù)線都能夠通過報警盡早發(fā)現(xiàn)問題解決問題,進而提升業(yè)務(wù)系統(tǒng)的服務(wù)質(zhì)量,我們決定構(gòu)建統(tǒng)一的監(jiān)控報警系統(tǒng)。本文主要介紹馬蜂窩大交通業(yè)務(wù)監(jiān)控報警系統(tǒng)的定位整體架構(gòu)設(shè)計,以及我們在落地實踐過程中的一些踩坑經(jīng)驗。 部門的業(yè)務(wù)線越來越多,任何一個線上運行的應(yīng)用,都可能因為各種各樣的原因出現(xiàn)問題:比如業(yè)務(wù)層面,訂單量比上周減少了,流量突然下降了;技術(shù)層面的問題,系統(tǒng)出現(xiàn) ERROR...

    smartlion 評論0 收藏0
  • 微服務(wù)架構(gòu)給IT系統(tǒng)和團隊帶來了什么顯著的變化

    摘要:京東云監(jiān)控響應(yīng)實踐京東云運維平臺為數(shù)萬臺機器提供監(jiān)控,部署,機器管理,權(quán)限管理,安全管理,審計和運營分析等功能,為京東云所有的業(yè)務(wù)在各類異構(gòu)網(wǎng)絡(luò)環(huán)境下提供標(biāo)準(zhǔn)和統(tǒng)一的運維支撐能力。 showImg(https://segmentfault.com/img/bVbsKlQ); 微服務(wù)本身并沒有一個嚴(yán)格的定義,不過從很多人的反饋來看,大家都達成了這樣一個共識:微服務(wù)是一種簡單的應(yīng)用,大概有...

    mayaohua 評論0 收藏0
  • 基于RestOn智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)

    摘要:一項目地址為二項目功能概述該項目實現(xiàn)的是一個基于智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)。我們可以在個人中心的設(shè)置中心進行報警閾值的設(shè)定。睡眠自測試頁面如下圖所示用戶可以在該頁面進行睡眠自測試,點擊提交按鈕后,便可以在彈出框當(dāng)中查看自己的睡眠質(zhì)量等級。 一、項目地址為: https://github.com/linqian123... 二、項目功能概述: 該項目實現(xiàn)的是一個基于RestOn智能睡眠...

    Java_oldboy 評論0 收藏0
  • 基于RestOn智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)

    摘要:一項目地址為二項目功能概述該項目實現(xiàn)的是一個基于智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)。我們可以在個人中心的設(shè)置中心進行報警閾值的設(shè)定。睡眠自測試頁面如下圖所示用戶可以在該頁面進行睡眠自測試,點擊提交按鈕后,便可以在彈出框當(dāng)中查看自己的睡眠質(zhì)量等級。 一、項目地址為: https://github.com/linqian123... 二、項目功能概述: 該項目實現(xiàn)的是一個基于RestOn智能睡眠...

    JayChen 評論0 收藏0
  • 基于RestOn智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)

    摘要:一項目地址為二項目功能概述該項目實現(xiàn)的是一個基于智能睡眠監(jiān)測器的睡眠監(jiān)測系統(tǒng)。我們可以在個人中心的設(shè)置中心進行報警閾值的設(shè)定。睡眠自測試頁面如下圖所示用戶可以在該頁面進行睡眠自測試,點擊提交按鈕后,便可以在彈出框當(dāng)中查看自己的睡眠質(zhì)量等級。 一、項目地址為: https://github.com/linqian123... 二、項目功能概述: 該項目實現(xiàn)的是一個基于RestOn智能睡眠...

    AWang 評論0 收藏0

發(fā)表評論

0條評論

高璐

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<