public static function getMods() { $ret = []; $all = MetricsModel::getMods(); foreach ($all as $m) { $ret[$m] = count(MetricsModel::getClzz($m)); } return $ret; }
/** * 计算错误请求排行榜 */ 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(); } }