Cloud Foundry RTR日志中response_time单位是毫秒还是秒?
Cloud Foundry RTR日志
response_time字段单位说明 原生Gorouter生成的RTR访问日志里,response_time的单位不是强制固定的,由平台侧Gorouter的日志配置决定,一共两种情况:
- 默认配置下,字段值是以秒为单位的浮点数,精度到毫秒级。比如日志里写
response_time:0.035,就代表实际响应耗时35毫秒;写response_time:1.2就代表耗时1200毫秒,也就是1.2秒。 - 如果平台运维开启了响应时间按毫秒输出的配置项,字段值就是以毫秒为单位的整数。比如日志里写
response_time:35代表耗时35毫秒,写response_time:1200代表耗时1.2秒。
不用死磕公开文档找统一说明,花两分钟做两个简单判断就能确认当前环境的单位:
- 先看数值形态:如果字段值带小数点,基本就是秒级浮点数;如果全是整数,大概率是毫秒级整数。
- 做个对照测试:给测试应用加个固定1秒(1000毫秒)的sleep逻辑,发一次请求后找到对应的RTR日志:如果
response_time取值在1.0上下浮动,单位就是秒;如果取值在1000上下浮动,单位就是毫秒。
额外提两个容易踩的坑:
- 这个字段统计的是Gorouter把请求转发给后端应用后,从收到应用返回的第一个字节到接收完完整响应的总耗时,不包含Gorouter自身匹配路由、建立连接的耗时,这部分耗时会存在同日志段的
gorouter_time字段里,单位和response_time一致。 - 很多第三方日志采集、分析插件会默认把秒级的
response_time转成毫秒整数存储,如果你是在ES、日志运维平台这类经过二次加工的存储里看的字段,最好和原始RTR日志对下取值,别把转换后的单位当成原生字段单位。
内容的提问来源于stack exchange,提问作者Tralgafar
相关产品推荐
相关产品推荐

