日志说明

当您使用 SOFARPC 启动应用程序以后,默认情况下,RPC 会创建 logs 目录,并生成相关日志文件。

日志列表

日志名称

说明

rpc/rpc-registry.log

服务地址订阅与接收日志。

rpc/tr-threadpool

服务连接池日志(SOFABoot 支持该日志)。

rpc/rpc-default.log

SOFARPC INFO、WARN 日志,无标准格式。

rpc/common-error.log

SOFARPC 错误日志,无标准格式。

rpc/rpc-remoting.log

网络层日志,无标准格式。

rpc/sofa-router.log

SOFARouter 相关日志,无标准格式。

rpc/rpc-remoting-serialization.log

网络层序列化日志,无标准格式。

tracelog/rpc-client-digest.log

SOFARPC 调用客户端摘要日志。

tracelog/rpc-server-digest.log

SOFARPC 调用服务端摘要日志。

tracelog/rpc-profile.log

SOFARPC 处理性能日志。

confreg/config.client.log

服务注册中心客户端日志。

SOFATracer 日志

SOFATracer 集成在 SOFARPC(5.4.0 及之后的版本)后,还会输出如下链路数据日志。

说明

  • 开源版的日志默认为 JSON 格式,企业版默认以逗号分隔。

  • 日志会不定期新增部分字段,新增字段会从日志尾部添加,不会影响原日志字段。若您实际打印的日志与本文中日志字段数不一致,请按顺序进行对比,新增字段可咨询售后技术支持。

RPC 客户端摘要日志

rpc-client-digest.log 是 RPC 客户端摘要日志,日志样例如下:

2021-09-27 16:43:59.096,myserver-app,1ecee1741632732******410896596,0,com.alipay.samples.rpc.SampleService:1.0,hello,bolt,,127.0.0.1,myclient-app,,,1ms,0ms,SOFA-SEV-BOLT-BIZ-12201-9-T20,00,,,0ms,,

对应 key 的说明如下:

key

说明

timestamp

日志打印时间

local.app

当前应用名

tracerId

TraceId

spanId

SpanId

service

服务接口信息

method

调用方法

span.kind

Span 类型

protocol

协议类型。取值:bolt、rest。

invoke.type

调用类型。取值如下:

  • sync:同步调用,Bolt 默认的调用方式。

  • oneway:异步调用,消费方发送请求后直接返回,忽略提供方的处理结果。

  • callback:异步调用,消费方提供一个回调接口,当提供方返回后,SOFA 框架会执行回调接口。

  • future:异步调用,消费方发起调用后马上返回,当需要结果时,消费方需要主动去获取数据。

remote.ip

目标 IP

remote.app

目标应用名称

remote.zone

目标 zone

remote.idc

目标 IDC

remote.city

目标城市

user.id

用户 ID

result.code

结果码。取值如下:

  • 00:请求成功。

  • 01:业务异常。

  • 02:RPC 逻辑错误。

  • 03:请求超时。

  • 04:路由失败。

req.size

请求数据大小

resp.size

响应数据大小

client.elapse.time

调用总耗时,单位:ms。

client.conn.time

客户端连接耗时,单位:ms。

req.serialize.time

请求序列化耗时,单位:ms。

outtime

超时参考耗时,单位:ms。

current.thread.name

当前线程名

route.record

路由记录,路由选择的过程记录。

elastic.id

弹性数据位

be.elastic

本次调用的服务是否需要弹性:

  • T:表示需要弹性。

  • F:表示不需要。

elastic.service.name

转发调用的方法名。

local.client.ip

源 IP

local.client.port

本地客户端端口

local.zone

本地 zone

target.ip.in.one.physical

目标 IP 是否在当前物理机:

  • T:表示在同一物理机。

  • F:表示不在同一物理机。

sys.baggage

系统透传的 baggage 数据

bus.baggage

业务透传的 baggage 数据

send.time

RPC 请求耗时

phase.time

各阶段耗时,单位:ms。

special.time.mark

特殊时间点标记

router.forward

路由转发详情

RPC 服务端摘要日志

rpc-server-digest.log 是 RPC 服务端摘要日志,日志样例如下:

2014-06-19 17:14:35.006,client,0ad1348f140****2750021003,0.1,com.alipay.cloudenginetest.services.SofaApiWebReferenceLocalFalseTrService:1.0,service_method,TR,,10.**.**.143,client,,,12ms,0ms,HSFBizProcessor-4-thread-2,00,,F,1000ms,zue:l;ztg:r,mark=T&uid=a2&

对应 key 的说明如下:

key

说明

timestamp

日志打印时间

local.app

当前应用名

tracerId

TraceId

spanId

SpanId

service

服务接口信息

method

调用方法

protocol

协议类型。取值:bolt、rest。

remote.ip

目标 IP

remote.app

目标应用名称

invoke.type

调用类型。取值如下:

  • sync:同步调用,Bolt 默认的调用方式。

  • oneway:异步调用,消费方发送请求后直接返回,忽略提供方的处理结果。

  • callback:异步调用,消费方提供一个回调接口,当提供方返回后,SOFA 框架会执行回调接口。

  • future:异步调用,消费方发起调用后马上返回,当需要结果时,消费方需要主动去获取数据。

remote.ip

调用方 IP

remote.app

调用方应用名

remote.zone

调用方 zone

remote.idc

调用方 IDC

biz.impl.time

请求处理耗时,单位:ms。

不包含服务端响应序列化耗时和反序列化耗时。

resp.serialize.time

响应序列化耗时,单位:ms。

current.thread.name

当前线程名

result.code

返回码,取值如下:

  • 00:请求成功。

  • 01:业务异常。

  • 02:RPC 逻辑错误。

elastic.service.name

表明当前是转发调用,包含转发的服务名称和方法值。

be.elasticc

本次服务是否被转发:

  • T:表示已被转发。

  • F:表示未被转发。

server.pool.wait.time

服务端线程池等待时间,单位:ms。

sys.baggage

系统透传的 baggage 数据

bus.baggage

业务透传的 baggage 数据

server.send.time

RPC 请求转发耗时

req.size

请求数据大小

resp.size

响应数据大小

phase.time

各阶段耗时明细

special.time

特殊时间点标记

router.forward

路由转发详情

RPC 客户端统计日志

rpc-client-stat.log 是 RPC 客户端统计日志。其中,stat.key 即本段时间内的统计关键字集合。统计关键字集合唯一确定一组统计数据,包含 local.appremote.appservice.namemethod.name 字段。日志样例如下:

2014-06-19 17:14:02.186,client,client,com.alipay.cloudenginetest.services.SofaApiWebReferenceLocalFalseTrService:1.0,service_method,1,79,Y,T,RZ00B

对应 key 的说明如下:

key

说明

time

日志打印时间

stat.key

local.app

当前应用名称

remote.app

目标应用名称

service.name

服务名

method.name

方法名

count

调用次数

total.cost.milliseconds

请求总耗时

success

调用结果:

  • Y:调用成功。

  • N:调用失败。

load.test.mark

判断当前是否为全链路压测:

  • T:表示当前为全链路压测。当前线程中能获获取到日志上下文,且上下文中有压测信息。

  • F:表示当前非全链路压测。当前线程中不能获取到日志上下文,或上下文中没有压测信息。

remote.zone

目标 zone

RPC 服务端统计日志

rpc-server-stat.log 是 RPC 服务端统计日志,以 JSON 格式输出的数据。其中,stat.key 即本段时间内的统计关键字集合。统计关键字集合唯一确定一组统计数据,包含 local.appremote.appservice.namemethod.name 字段。日志样例如下:

2014-06-19 17:14:02.186,client,client,com.alipay.cloudenginetest.services.SofaApiWebReferenceLocalFalseTrService:1.0,service_method,1,7,Y,T,GZ00B

对应 key 的说明如下:

key

说明

time

日志打印时间

stat.key

local.app

当前应用名称

remote.app

目标应用名称

service.name

服务名

method

方法名

count

调用次数

total.cost.milliseconds

请求总耗时

success

调用结果:

  • Y:调用成功。

  • N:调用失败。

load.test.mark

判断当前是否为全链路压测:

  • T:表示当前为全链路压测。当前线程中能获获取到日志上下文,且上下文中有压测信息。

  • F:表示当前非全链路压测。当前线程中不能获取到日志上下文,或上下文中没有压测信息。

remote.zone

目标 zone