rpcz公司
了解rpcz服务。
用户能通过/rpcz公司看到最近请求的详细信息,并可以插入注释(注释),不可追踪系统短小精悍的)以全局视角看到整体系统的延时分布,rpcz公司更多是一个调试工具,虽然角色有所不同,但在brpc中心rpcz和跟踪的数据来源是一样的。当每秒请求数小于1万时,rpcz会记录所有的请求,超过1万时,rpcz会随机忽略一些请求把采样数控制在1万维·rpcz可以淘汰时间窗口之前的数据,通过-span_keeping_seconds(保持秒数)选项设置,默认1小时。一个长期运行的例子。
关于开销:我们的实现完全规避了线程竞争,开销极小,在qps 30码万的测试场景中,观察不到明显的性能变化,对大部分应用而言应该是“免费”的。即使采集了几千万条请求,rpcz公司也不会增加很多内存,一般在50兆内容.rpcz会占用一些磁盘空间(就像日志一样),如果设定为存一个小时的数据,一般在几百兆左右。
缔约方
默认不开启,加入-启用rpcz选项会在启动后开启。
姓名 | 价值 | 描述 | 定义于 |
---|
启用_ rpcz(R) | true(默认值:false) | 打开rpcz | src/baidu/rpc/builtin/rpcz_service.cpp |
rpcz_hex_log_id(R) | 假 | 以十六进制显示log_id | src/baidu/rpc/builtin/rpcz_service.cpp |
rpcz数据库目录 | ./rpc_data/rpcz | 用于存储rpcz收集的请求/上下文。 | src/baidu/rpc/span.cpp |
rpcz_keep_span_db | 假 | 不要在程序退出时删除rpcz的DB | src/baidu/rpc/span.cpp |
rpcz_keep_span_seconds(R) | 3600 | 保持跨度最多这么多秒 | src/baidu/rpc/span.cpp |
若启动时未加-启用rpcz则可在启动后访问服务器URL/rpcz/启用则关闭,这两个链接等价于访问服务器URL/flags/enable_rpcz?setvalue=true和SERVER_URL/flags/enable_rpcz?setvalue=false在r31010,rpc html版本中增加了一个按钮可视化地开启和关闭。
如果只是brpc客户端这里。
数据展现
/rpcz公司展现的数据分为两层。
第一节
看到最新请求的概况,点击链接进入第二层。
第二层
看到某系列(轨迹)的详细信息。一般通过点击链接进入,也可以把trace=和span=工作查询字符串
内容说明:
- 时间分为了绝对时间(如2015/01/21-20:20:30.817392,小数点后精确到微秒)和前一个时间的差值(如. 19,代表19微秒)。
- trace=ID“会话ID”对应一个系统中完成一次对外服务牵涉到的所有服务,即上下游服务器一跟踪idspan=ID一台服务器或客户端中一个请求的处理过程。轨迹id和跨度id在概率上唯一。
- 第一层页面中的请求=和响应=后的是数据包的字节数,包括附件但不包括协议元。第二层中请求和响应的字节数一般在括号里,比如“被调查者(13)”
- 点击链接可能会访问其他服务器rpcz投资回报率
- 我是最后一个电话,我要……注释
注释
只要你使用了brpc公司跟踪信息打印内容到事件流中,比如:
这条注释会按其发生时间插入到对应请求的rpcz公司中。从这个角度看,rpcz公司是请求级的日志。如果你用跟踪信息打印了沿路的上下文,便可看到请求在每个阶段停留的时间,牵涉到的数据集和参数。这是个很有用的功能。