StatisticClient::report PHP Method

report() public static method

上报统计数据
public static report ( string $module, string $interface, boolean $success, integer $code, string $msg, string $report_address = '' ) : boolean
$module string
$interface string
$success boolean
$code integer
$msg string
$report_address string
return boolean
    public static function report($module, $interface, $success, $code, $msg, $report_address = '')
    {
        $report_address = $report_address ? $report_address : '127.0.0.1:55656';
        if (isset(self::$timeMap[$module][$interface]) && self::$timeMap[$module][$interface] > 0) {
            $time_start = self::$timeMap[$module][$interface];
            self::$timeMap[$module][$interface] = 0;
        } else {
            if (isset(self::$timeMap['']['']) && self::$timeMap[''][''] > 0) {
                $time_start = self::$timeMap[''][''];
                self::$timeMap[''][''] = 0;
            } else {
                $time_start = microtime(true);
            }
        }
        $cost_time = microtime(true) - $time_start;
        $bin_data = Protocol::encode($module, $interface, $cost_time, $success, $code, $msg);
        if (extension_loaded('swoole')) {
            if (!self::$client || !self::$client->isConnected()) {
                self::$client = new swoole_client(SWOOLE_TCP, SWOOLE_SOCK_SYNC);
                list($ip, $port) = explode(':', $report_address);
                self::$client->connect($ip, $port);
            }
            self::$client->send($bin_data);
            self::$client->close();
            self::$client = null;
        } else {
            return self::sendData($report_address, $bin_data);
        }
    }

Usage Example

Example #1
0
 public static function CommonStatistic($module, $interface, $success, $code, $msg, $report_address = '')
 {
     // 统计的产生,接口调用是否成功、错误码、错误日志
     //$success = true; $code = 0; $msg = 'success';
     // 上报结果
     StatisticClient::report($module, $interface, $success, $code, $msg, $report_address);
     StatisticClient::report($module, 'all_pv', $success, $code, $msg, $report_address);
 }
All Usage Examples Of StatisticClient::report