2019独角兽企业重金招聘Python工程师标准>>>

监测mysql查询时间

@Autowired
    private Tracer tracer; //用于访问Spring Cloud Sleuth跟踪信息
public Organization getOrg
            (String organizationId) {
        Span newSpan = tracer.createSpan("getOrgDBCall");//创建一个新的自定义跨度,名为getOrgDBCall
        logger.debug("In the organizationService.getOrg() call");
        try {
            return orgRepository.findById(organizationId);
        }
        finally{
          newSpan.tag("peer.service", "mysql");//将标签信息添加到跨度中,提供了将要被Zipkin捕获的服务名称
          newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);//记录事件,告诉Spring Cloud Sleuth捕获调用完成的时间
          tracer.close(newSpan);//关闭跟踪,否则报错
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
监测redis查询时间

private Organization checkRedisCache(String organizationId) {
       Span newSpan = tracer.createSpan("readLicensingDataFromRedis");
        try {
            return orgRedisRepo.findOrganization(organizationId);
        }
        catch (Exception ex){
            return null;
        }
        finally {
          newSpan.tag("peer.service", "redis");
          newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);
          tracer.close(newSpan);
        }
    }

@Aspect
@Component
@ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = false)
public class TracerServiceAspect {@Pointcut("execution(public * com.xxx.cloud.*.service.impl.*.*(..))")public void tracerLog() {}// 全局的trace对象@AutowiredTracer tracer;// 针对所有Controller层的方法的切面@Around("tracerLog()")public Object doSurround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {Span currentSpan = tracer.getCurrentSpan();String className = proceedingJoinPoint.getSignature().getDeclaringTypeName();String methodName = proceedingJoinPoint.getSignature().getName();Span newSpan = null;if (currentSpan != null) {newSpan = tracer.createSpan(methodName, currentSpan);} else {newSpan = tracer.createSpan(methodName);}newSpan.tag("className", className);newSpan.tag("methodName", methodName);Object result = null;try {// 方法的执行结果result = proceedingJoinPoint.proceed();} catch (Exception e) {newSpan.tag("error", e.getMessage());} finally {newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);// 记录事件,告诉Spring Cloud Sleuth捕获调用完成的时间tracer.close(newSpan);// 关闭跟踪,否则报错}return result;}}

转载于:https://my.oschina.net/xiaominmin/blog/3047867

ZipKin添加自定义跨度Span相关推荐

  1. Java分布式跟踪系统Zipkin(二):Brave源码分析-Tracer和Span

    所有博文均在个人独立博客http://blog.mozhu.org首发,欢迎访问! Brave是Java版的Zipkin客户端,它将收集的跟踪信息,以Span的形式上报给Zipkin系统. (Zipk ...

  2. Spring微服务实战第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪

    文章目录 第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪 9.1 Spring Cloud Sleuth与关联ID 9.1.1 将Spring Cloud Sleuth ...

  3. 分布式跟踪系统(一):Zipkin的背景和设计

    原文链接: https://blog.csdn.net/manzhizhen/article/details/52811600 2010年谷歌发表了其内部使用的分布式跟踪系统Dapper的论文(htt ...

  4. 使用Zipkin和Sleuth进行SpringBoot微服务跟踪

    在本文中,我们将了解使用Zipkin和Spring cloud sleuth框架的微服务分布式跟踪. 尽管微服务具有自身的挑战,但微服务是出色的架构. 复杂的微服务架构具有与其他微服务的下游和上游依存 ...

  5. kong插件应用(熔断 限流,黑白名单,认证(basic,key,jwt,hmac,),授权,加密,zipkin链路跟踪,日志, prometheus可视化, 爬虫控制插件)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 kong安装部署以及kong-dashboard参考:https://blog.csdn.net/luanpeng825485697/article/ ...

  6. 【弄nèng - SpringCloud】应用篇 —— 整合Zipkin【Finchley版】

    文章目录 1. Zipkin简介 2.术语 N. 插一杠子 N.1 下载Zipkin-server jar N.2 启动jar 3. 使用 3.1 it-zipkin-server 3.2 gatew ...

  7. 微服务治理之分布式链路追踪--3.zipkin实战

    微服务治理之分布式链路追踪–3.zipkin实战 本节是基于zipkin分布式追踪系统搭建,因为对 scala 和 play framework 2 框架不熟悉,所以,没有采用opentelemetr ...

  8. zipkin学习--01--理论

    zipkin学习–01–理论 一.zipkin介绍 是分布式跟踪系统(Distributed Tracking System) 监控微服务各个服务的调用情况 举例:一个请求A,需要先后调用f1,f2, ...

  9. zipkin学习20210819

    01--理论 背景 微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,这个接口功能可能需要很多个服务协同,如果链路上任何一个服务出现问题,都会导致接口调用失败. 随着业务的不断扩 ...

最新文章

  1. 52 介绍几个重要的类
  2. 使用 Windows PowerShell 实现 Web UI 自动化
  3. vue跳转页面增加等待_vue跳转页面方法
  4. js室内地图开发_GIS开发_OpenLayers
  5. webpack使用文档
  6. mpvue微信小程序动画_在 mpvue 使用 echarts 小程序组件
  7. 枚举类型转换成字符串
  8. PHP里面最难的是那部分,那个PHP中号称最难的‘递归函数’
  9. JSK-22 排序后的数组删除重复数字【入门】
  10. 如何恢复MAC苹果电脑系统数据文件恢复详细教程
  11. python人脸识别特征脸法_人脸识别-PCA特征脸
  12. 995. Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数)解法(C++ 注释)
  13. C语言小案例_微信小程序开发(教学大纲) | 附视频
  14. 减肥成功,给自己的减肥之路留个纪念(测试博客)
  15. 百度地图实现marker显示数字
  16. python 生存分析_用python教程进行生存分析何时何地
  17. 安科瑞预付费系统在电力系统中的应用
  18. alert 弹出框的操作
  19. 计算机二级备考:Word 部分_3 表格 长文档综合排版 文档 共享
  20. 光纤收发器双模和单模有什么区别?如何区分单模、双模光纤收发器?

热门文章

  1. 如何去掉Silverlight应用程序在浏览器中的滚动条
  2. 2014年百度之星程序设计大赛 - 初赛(第二轮)Chess
  3. 信息安全意识电子期刊第八期
  4. “此iPhone不能使用,因为Apple Mobile Device服务没有启动”解决办法
  5. linux下的lamp环境的搭建!!!
  6. 浅谈微软跨平台与MONO
  7. C#6.0,C#7.0新特性
  8. 工厂模式、策略者模式、责任链模式综合应用
  9. BIM技术在各阶段应用的软件你知多少?
  10. HTTP第一篇——搭建