Monitor(積算量)モニタとアラーム

1224 ワード

Monitor(積算量)モニタとアラーム
[TOC]
プログラム
使用
//      
Monitor::add('CHARGE_COUNT');
実現する
Redis::incr('MONITOR_CHARGE_COUNT'.date('YmdHi'));
レポート
分曲線、積算量、昨日曲線、日単位で重畳し、種類別に重畳します。
http://monitor.corp.ucfgroup.com/?key=CHARGE_COUNT
権限問題(TODO):一人一人は自分が追加した監視カメラしか確認できません。
実現する
//    (          )
for ($i = 0; $i < $min; $i++) {
    Redis::get('MONITOR_CHARGE_COUNT');
}

//0     Db
foreach ($monitors as $item)
{
    for ($i = 0; $i < 1440; $i++) {
        $ret = Redis::get(...);
        Db::insert($ret);
    }
}

//    
Db::select('create_time=...');
警告する
その時のカウント:前の分のRedis::get('…')一回;前年同期比変動:先分Redis::get('…')は、増減幅を比較した。ループ比変動:昨日同分Db:select()一回、コントラスト増減幅;ピーク警告:config設定値を比較する。
性能に影響する
この方案はオンラインに対する影響は各点に一回のredisインタラクションである。
最適化方案(TODO):
  • 共有メモリ+タイミングでRedisを書き込む方式で、Redis圧力を緩和し、マシンごとにAgentを配置する必要がある。
  • 簡単なログを書き、ログ同期機構を利用して収集する。ログ形式は以下の通りです。
  • //          
    1449900092  CHARGE_COUNT 1
    1449900092  WITHDRAW_COUNT 1
    1449900092  CHARGE_COUNT 1
    
    デザイン
  • 異常捕獲、Redis切断はプログラム実行に影響しません。
  • コードレベルスイッチの設定は、オンラインでオフすることができます。