示例#1
0
 public static function getMods()
 {
     $ret = [];
     $all = MetricsModel::getMods();
     foreach ($all as $m) {
         $ret[$m] = count(MetricsModel::getClzz($m));
     }
     return $ret;
 }
示例#2
0
 /**
  * 计算错误请求排行榜
  */
 public static function calculateFailure()
 {
     $result = [];
     // 计算新数据
     $mods = MetricsModel::getMods();
     foreach ($mods as $mod) {
         $clzz = MetricsModel::getClzz($mod);
         if (empty($clzz)) {
             continue;
         }
         foreach ($clzz as $cls) {
             $target = static::getFailureTarget($mod, $cls);
             $datapoints = MetricsData::getDataPoints(10, $target);
             if (empty($datapoints)) {
                 continue;
             }
             foreach ($datapoints as $dp) {
                 if ($dp->target == $target && is_array($dp->datapoints) && count($dp->datapoints) > 0) {
                     $data = $dp->datapoints;
                     $sum = 0;
                     $count = 0;
                     if (is_array($data)) {
                         foreach ($data as $d) {
                             if ($d[0] > 0) {
                                 $sum += $d[0];
                                 $count++;
                             }
                         }
                     }
                     if ($count > 0) {
                         $t = new TopFailure();
                         $t->mod = $mod;
                         $t->serial = $cls;
                         $t->mean = $sum / $count;
                         $t->create_time = time();
                         // $t->save();
                         $result[] = $t;
                     }
                 }
             }
         }
     }
     // 删除所有的数据
     TopFailure::deleteAll();
     foreach ($result as $top) {
         $top->save();
     }
 }