目前在日常问题定位中使用到的日志主要有:
text
{appName}-info.log #服务详细操作日志信息,含错误日志
{appName}-record.log #主要为服务性能相关日志
{appName}-statistics.log #主要为服务关键信息统计日志,以5分钟为时间窗口,统计服务的rest、dubbo、sql执行次数耗时等信息info日志分析:
- 针对业务慢问题,主要关注 慢请求日志、慢sql日志、dubbo超时日志,常用过滤关键词:error ,timeout 等。
- 如业务慢有相关业务特征,可基于日志重点查看业务相关日志,并从日志中查看整体耗时等信息进行定位
- 如果明确traceId的慢请求,可通过traceId作为关键字在日志中进行过滤查询,然后进行分析。
record日志分析:
- 日志主要记录性能相关日志,关注type 和costTime字段
- 如果确认异常业务类,可通过快速检索type类型的值(如: "type":"REDIS")进行检索分析,
- 如果确认相关异常请求的traceId, 可通过traceId进行快速检测,查看相关链路的性能问题点。
log
recod.log日志样例
{
"traceId": "3018430457072092389",
"spanId": "",
"appName": "bpm",
"type": "MQ",
"subType": "DELAY",
"key": "bpm#MESSAGE_CENTER",
"startMillis": 1776728622111,
"endMillis": 1776728622116,
"costMillis": 5,
"data": {
"topic": "MESSAGE_CENTER",
"delayTime": 5,
"threadName": "kafka-invoker-PERFORMANCE_MESSAGE_CENTER-218",
"threadId": 80909
}
}statistics 日志分析:
- 当对服务异常的问题不清楚,或需要进一步确认时,可通过查看statistics日志,查看服务异常时间段附件的统计相关日志,分析服务可能的异常方向或进一步确认。
如果客户环境已切换为ELK日志体系,可通过在线查看日志或通过运维工具下载在线日志后进行查看的方式进行查看。
ELK在线查看
ELK在线查看方式如下(核心通过kibana在线查看):

关键链路分析:
1、可以某个耗时接口,检测网关下游服务接口耗时,比如通过服务日志、链路日志等,确认是否存在接口慢的情况。

text
1.参考上图,获取对应慢请求的traceId.
2.分别查看应用{appName}-info.log、{appName}-record.log,查看对应traceId的日志。
3、可通过查看{appName}-statistics.log查看应用近期的相关请求等多维度统计维度信息。