日志说明

当您使用 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 客户端摘要日志,日志样例如下:

{"timestamp":"2018-05-20 17:03:20.708","tracerId":"1e27326d1526807000498100185597","spanId":"0","span.kind":"client","local.app":"SOFATracerRPC","protocol":"bolt","service":"com.alipay.sofa.tracer.examples.sofarpc.direct.DirectService:1.0","method":"sayDirect","current.thread.name":"main","invoke.type":"sync","router.record":"DIRECT","remote.app":"samples","remote.ip":"127.0.0.1:12200","local.client.ip":"127.0.0.1","result.code":"00","req.serialize.time":"33","resp.deserialize.time":"39","resp.size":"170","req.size":"582","client.conn.time":"0","client.elapse.time":"155","local.client.port":"59774","baggage":""}

对应 key 的说明如下:

key

说明

timestamp

日志打印时间

tracerId

TraceId

spanId

SpanId

span.kind

Span 类型

local.app

当前应用名

protocol

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

service

服务接口信息

method

调用方法

current.thread.name

当前线程名

invoke.type

调用类型。取值如下:

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

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

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

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

router.record

路由记录。取值:

  • DIRECT:直连。

  • REGISTRY:从注册中心获取地址路由。

remote.app

目标应用名称。

remote.ip

目标 IP

local.client.ip

源 IP

result.code

结果码。取值如下:

  • 00:请求成功。

  • 01:业务异常。

  • 02:RPC 逻辑错误。

  • 03:请求超时。

  • 04:路由失败。

req.serialize.time

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

resp.deserialize.time

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

resp.size

响应数据大小

req.size

请求数据大小

client.conn.time

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

client.elapse.time

调用总耗时,单位:ms。

local.client.port

本地客户端端口

baggage

透传的 baggage 数据

RPC 服务端摘要日志

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

{"timestamp":"2018-05-20 17:00:53.312","tracerId":"1e27326d1526806853032100185011","spanId":"0","span.kind":"server","service":"com.alipay.sofa.tracer.examples.sofarpc.direct.DirectService:1.0","method":"sayDirect","remote.ip":"127.0.0.1","remote.app":"SOFATracerRPC","protocol":"bolt","local.app":"SOFATracerRPC","current.thread.name":"SOFA-BOLT-BIZ-12200-5-T1","result.code":"00","server.pool.wait.time":"3","biz.impl.time":"0","resp.serialize.time":"4","req.deserialize.time":"38","resp.size":"170","req.size":"582","baggage":""}

对应 key 的说明如下:

key

说明

timestamp

日志打印时间

tracerId

TraceId

spanId

SpanId

span.kind

Span 类型

service

服务接口信息

method

调用方法

remote.ip

目标 IP

remote.app

目标应用名称

protocol

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

local.app

当前应用名称

current.thread.name

当前线程名

result.code

返回码,取值如下:

  • 00:请求成功。

  • 01:业务异常。

  • 02:RPC 逻辑错误。

server.pool.wait.time

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

biz.impl.time

业务处理耗时,单位:ms。

resp.serialize.time

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

req.deserialize.time

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

resp.size

响应数据大小

req.size

请求数据大小

baggage

透传的 baggage 数据

RPC 客户端统计日志

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

{"time":"2018-05-18 07:02:19.717","stat.key":{"method":"method","local.app":"client","service":"app.service:1.0"},"count":10,"total.cost.milliseconds":17,"success":"Y"}

对应 key 的说明如下:

key

说明

time

日志打印时间

stat.key

method

调用方法

local.app

当前应用名称

service

服务接口信息

count

调用次数

total.cost.milliseconds

请求总耗时

success

调用结果:

  • Y:调用成功。

  • N:调用失败。

RPC 服务端统计日志

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

{"time":"2018-05-18 07:02:19.717","stat.key":{"method":"method","local.app":"client","service":"app.service:1.0"},"count":10,"total.cost.milliseconds":17,"success":"Y"}

对应 key 的说明如下:

key

说明

time

日志打印时间

stat.key

method

调用方法

local.app

当前应用名称

service

服务接口信息

count

调用次数

total.cost.milliseconds

请求总耗时

success

调用结果:

  • Y:调用成功。

  • N:调用失败。