Monitor¶

zan框架内置了统一的监控上报接口(hawk),上报信息至ZCloud应用管理平台。

配置¶

监控的配置参见hawk.php

接口¶

  1. class Hawk {
  2. //请求成功耗时
  3. public function addTotalSuccessTime($side, $service, $method, $ip, $diffSec);
  4. //请求失败耗时
  5. public function addTotalFailureTime($side, $service, $method, $ip, $diffSec);
  6. //增加成功请求个数
  7. public function addTotalSuccessCount($side, $service, $method, $ip);
  8. //增加失败请求个数
  9. public function addTotalFailureCount($side, $service, $method, $ip);
  10. /**
  11. * array(
  12. * 'biz' => 'worker_memory',
  13. * 'metrics' => [
  14. * 'used' => 234234234,
  15. * ],
  16. * 'tags' => [
  17. * 'application' => 'pf-web',
  18. * 'work_id' => '2',
  19. * 'host' => 'bc_sdfs',
  20. * ],
  21. * ),
  22. * @param $biz
  23. * @param array $metrics
  24. * @param array $tags
  25. */
  26. public function add($biz, array $metrics, array $tags = [])
  27. }

入参的含义分别为

  • side:标识server还是client上报,取值为Hawk::SERVER或Hawk::CLIENT
  • service:服务名称
  • method:方法名称
  • ip:请求源ip地址
  • diffSec:耗时长度,单位为秒
  • biz:业务属性
  • metric:业务数据
  • tags:存放额外信息的标签

使用示例¶

  1. $hawk = Hawk::getInstance();
  2. $hawk->addTotalSuccessTime(Hawk::SERVER,
  3. $request->getServiceName(),
  4. $request->getMethodName(),
  5. $request->getRemoteIp(),
  6. microtime(true) - $request->getStartTime()
  7. );
  8. $hawk->addTotalSuccessCount(Hawk::SERVER,
  9. $request->getServiceName(),
  10. $request->getMethodName(),
  11. $request->getRemoteIp()
  12. );
  13.  
  14. $hawk->add('youzan.soa', $metrics, $tags);

原文: http://zanphpdoc.zanphp.io/libs/soa/monitor.html