Monitor(累計量)監(jiān)控與告警

Monitor(累計量)監(jiān)控與告警

[TOC]

程序上報

使用

//充值次數(shù)監(jiān)控
Monitor::add('CHARGE_COUNT');

實現(xiàn)

Redis::incr('MONITOR_CHARGE_COUNT'.date('YmdHi'));

報表

分鐘曲線、累計量、昨日曲線、按日疊加、按類型疊加

http://monitor.corp.ucfgroup.com/?key=CHARGE_COUNT

權限問題(TODO):每個人只能查看自己添加的監(jiān)控。

實現(xiàn)

//今日報表(可考慮做一級文件緩存)
for ($i = 0; $i < $min; $i++) {
    Redis::get('MONITOR_CHARGE_COUNT');
}

//0點導數(shù)據至Db
foreach ($monitors as $item)
{
    for ($i = 0; $i < 1440; $i++) {
        $ret = Redis::get(...);
        Db::insert($ret);
    }
}

//昨日報表
Db::select('create_time=...');

告警

當時計數(shù):上一分鐘Redis::get('...')一次;
同比波動:上上分鐘Redis::get('...'),對比增減幅度;
環(huán)比波動:昨日同分鐘Db::select()一次,對比增減幅度;
峰值告警:對比config配置值;

性能影響

該方案對線上影響是每個點多一次redis交互;

優(yōu)化方案(TODO):

  1. 用共享內存 + 定時寫Redis的方式,緩解Redis壓力,需要每臺機器部署Agent;
  2. 寫簡單的日志,利用日志同步機制收集;日志形式如下:
//時間戳 業(yè)務點 增量
1449900092  CHARGE_COUNT 1
1449900092  WITHDRAW_COUNT 1
1449900092  CHARGE_COUNT 1

容災設計

  1. 異常捕獲,Redis掛掉不影響程序執(zhí)行;
  2. 代碼級開關設置,可通過上線關閉;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容