zoukankan      html  css  js  c++  java
  • Pinpoint扩展插件实践笔记

    为链路(spanEvent)添加tag

    背景

    我们可能需要想在代码中写入特定的信息到调用链中,并且希望对里面的特定key做检索

    实现思路

    创建一个特定的类,只需要一个方法,再对这个类的方法进行增强,这个就可以拿到入参信息,把它加入到调用链路,这个思路是对的,也实现了,不过有优化空间,默认的插件拦截器都是会创建一个spanEvent,这样如果业务中调用了太多次,链路就会很深,实际上这些tag信息是不需要单独开链路的,只需要与当前的链路绑定就好了,所以可以获取当前的spanEvent,把tag内容添加进去

    检索的能力通过在收集器端解析特定的key,再把内容写到es中,再通过web端进行检索

    获取当前链路的traceId

    背景

    为了和其它的监控结合,比如在dubbo调用链中显示traceId,或者缓存监控框架中记录traceId,虽然官方提供了日志的增强,可以在日志中打印出traceId,或者使用MDC.get("ptxId")获取,但这个依赖于日志,如果系统没有打印日志,MDC中就是空的,所以需要一个单独获取traceId的便捷方法

    实现思路

    也是和添加tag思路一样,只需要暴露一个util类,再对它进行增强,在after方法里获取当前的traceId,将它赋值给方法的返回值,这里通过实践发现不能直接返回一个String,修改这个String的值,并不能改变最终的结果,需要包装成一个类,再修改里面的属性。

     

  • 相关阅读:
    ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)
    运维标准化与流程化建设
    运维与自动化运维发展方向
    文件atime未变问题的研究
    ansible 任务委派 delegate_to
    ansible 调优
    windows中安装模拟器后修改模拟器中的hosts方法
    负载均衡服务器主要考量三个指标
    DRBD+NFS+Keepalived高可用环境
    sshpass
  • 原文地址:https://www.cnblogs.com/yissheng/p/7828832.html
Copyright © 2011-2022 走看看