首页 > 其他分享 >微服务调用链的排查,请求日志排查超时时间,锁定超时的原因

微服务调用链的排查,请求日志排查超时时间,锁定超时的原因

时间:2023-12-20 23:11:37浏览次数:40  
标签:info 调用 服务 toJson 排查 日志 超时

微服务调用链的排查,请求日志排查超时时间,锁定超时的原因

A微服务 >> B微服务 >> C微服务 论日志的请求开始时间和结束时间的重要性。

完整的日志格式:另外接口的入参,出参也需要加上,日志需要根据参数的关键字来搜索,比如会员号,ID等唯一标识。
A服务
logger.info("调用B服务httpParams=" + GsonUtils.toJson(httpParams));
调用B服务
logger.info("调用B服务httpResult=" + GsonUtils.toJson(httpResult));

B服务
logger.info("调用C服务httpParams=" + GsonUtils.toJson(httpParams));
调用C服务
logger.info("调用C服务httpResult=" + GsonUtils.toJson(httpResult));

C服务
logger.info("调用外部接口httpParams=" + GsonUtils.toJson(httpParams));
调用外部第三方接口
logger.info("调用外部接口httpResult=" + GsonUtils.toJson(httpResult));

如果调用链微服务没有httpParams这一条日志(日志没有成对出现),否则日志只能是倒排查询,倒序来推测请求是什么时间开始的。


linux排查日志截取:
sed -n '/2023-12-07 12:56:14.442/,/2023-12-07 12:56:43.710/p' test-2023-12-07-44.log >> test-231207.log

 

1.调用外部接口的日志输出格式:请求的入参,出参,请求消耗时间。
开始时间:1701924983639
结束时间:1701924994491
消耗时间:20033
请求返回:null

参考code(排查接口的请求响应时间):

    long startTime = System.currentTimeMillis();
    log.info("开始时间:" + startTime);

    long endTime = System.currentTimeMillis();
    log.info("结束时间:" + endTime);

    log.info("消耗时间:" + (endTime - startTime));

重点:需要排查接口里面的是否调用了延时等方法,否则需要采用异步的方式来调用。 @Async,不影响主流程的进行和占用主流程的接口耗时。

2.调用外部服务的请求日志表,请求参数入库,返回结果入库,方便排查时候查询请求log。锁定时间

GsonUtils.java
private static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

public static String toJson(Object obj) {
    if (obj == null) {
        return "";
    }
    return gson.toJson(obj);
}

 

标签:info,调用,服务,toJson,排查,日志,超时
From: https://www.cnblogs.com/oktokeep/p/17917844.html

相关文章

  • spring eureka服务注册配置,排查服务注册上来了,但是请求没有过来。检查是否服务注册配
    springeureka服务注册配置,排查服务注册上来了,但是请求没有过来。检查是否服务注册配置错误解决方法:去掉该配置eureka.instance.hostname=client微服务的提供IP地址//微服务的提供IP地址,点开服务注册的http://xxx:1246,找到服务,点开的是client微服务:微服务端口号,检......
  • spring gateway 超时重试和默认拦截器配置
    spring:cloud:gateway:default-filters:-name:Retryargs:retries:3RetryConfig中默认的异常处理为IOException.class,TimeoutException.classpublicstaticclassRetryConfigimplementsHasRouteId{ privateStrin......
  • 深度探索Android ANR:监控、排查、优化全攻略
    背景问题1.什么是ANR?ANR是Android系统中的一种错误状态,全称为ApplicationNotResponding,中文翻译为“应用无响应”。当Android系统检测到应用程序在一段时间内未能响应用户输入或无法执行主要的UI线程操作时,就会触发ANR错误。ANR是一种系统保护机制,旨在确保应用的响应性,防止用户......
  • 【虹科分享】使用Allegro网络万用表进行网络故障排查
    文章速览:Allegro网络万用表在公用事业公司的应用领域Allegro网络万用表VS.WiresharkAllegro200和Allegro500:作为标准配置 传统企业成为互联网服务提供商,如何利用数字工具实现现代化转型?本期文章,我们分享一家国外的公共事业公司的现代化转型故事。StadtwerkeUnnaGmb......
  • 国标GB28181安防监控LiteCVR视频平台无法接入Ehome5.0的原因排查
    随着人工智能技术的迅速发展,未来的安防视频技术将更加智能化。通过深度学习和图像识别算法,安防摄像头可以自动识别异常行为、人脸识别、车辆识别等,从而提供更智能、自动化的安全监控。用户在现场使用LiteCVR平台接入ehome5.0,显示无法接入。针对这个情况我们来好好分析一下。......
  • docker常用命令日志记录(二)
    1.拉取镜像dockerpullnginx2.查看镜像 dockerimages[root@VM-8-2-centos~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEnginxlatest605c77e624dd24monthsago141MB3.保存镜像为一个压缩包dockersave[root@V......
  • GB28181视频平台LiteCVR接入音频无声的原因排查
    视频监控系统逐渐向着互联互通和可视化的方向发展。随着互联网技术的发展,视频监控系统可以联网进行数据传输,实现不同监控设备之间的互联互通。同时,可视化技术的应用也使得视频监控数据可以以更加直观的方式呈现,使得人们更加容易理解和应用。GB28181视频平台LiteCVR拓展性强,视频能力......
  • 国标GB28181安防视频平台LiteCVR接入国标设备时,注册不上线的原因排查
    随着社会经济的快速发展和科技的持续进步,安防监控行业在近年来取得了显著的进步。从城市安全到家庭监控,从工厂管理系统到交通管理,安防监控系统已经深入到各个领域,为人们的生活和工作提供了强大的安全保障。有用户在使用视频监控安防平台LiteCVR时,出现了国标GB28181设备注册不上线的......
  • RTSP流媒体视频平台LiteNVR播放HLS流,出现中断且无法自动恢复的原因排查
    有用户反映,在使用安防视频LiteNVR平台时,取平台分发的hls地址在移动端播放一段时间就会停止,且无法自动恢复播放。今天我们来介绍下该问题的排查与解决方法。LiteNVR是基于RTSP/Onvif协议推出的安防视频监控管理平台,它可实现设备接入、实时直播、录像、检索与回放、存储、视频分发......
  • Koa.js 中的日志管理
    日志日志用来记录程序的运行信息。开发服务端程序,必须集成日志管理的功能,一旦系统出现故障可以及时排查问题所在。日志一般分为:访问日志:记录系统的访问记录。运行日志:输出系统运行时的一些信息错误日志:记录系统出错的状态一般我们都是通过nginx做负载均衡,它具备了记录访问日志的......