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的值,并不能改变最终的结果,需要包装成一个类,再修改里面的属性。
Pinpoint扩展插件实践笔记的更多相关文章
- python3.4学习笔记(三) idle 清屏扩展插件
python3.4学习笔记(三) idle 清屏扩展插件python idle 清屏问题的解决,使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏?在stackoverflow看到 ...
- PHP扩展插件imagick使用笔记
PHP扩展插件ImageMagick使用笔记 imagick是一个PHP的扩展,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是 ...
- hadoop2.5.2学习及实践笔记(四)—— namenode启动过程源码概览
对namenode启动时的相关操作及相关类有一个大体了解,后续深入研究时,再对本文进行补充 >实现类 HDFS启动脚本为$HADOOP_HOME/sbin/start-dfs.sh,查看star ...
- 自制Chrome扩展插件:用于重定向js
前言 作为一个前端开发, 在调试生产环境的代码时,是否苦于生产环境代码被压缩,没有sourcemap? 有没有想过将生产环境的js直接重定向为本地开发环境的js? 玩微前端时,有没有想过用本地的子应用 ...
- 《python编程从入门到实践》读书实践笔记(一)
本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...
- BlazeMeter发布chrome扩展插件,支持JMeter脚本创建
BlazeMeter发布chrome扩展插件,支持JMeter脚本创建http://www.automationqa.com/forum.php?mod=viewthread&tid=3898 ...
- Sharepoint 2013列表视图和字段权限扩展插件(免费下载)!
记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有 ...
- hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...
- Sublime Text 前端开发常用扩展插件推荐
Sublime Text 前端开发常用扩展插件推荐 Sublime Text Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能 更重要的是,Sublime Text ...
随机推荐
- 原始Ajax
var $ = { request:function(obj){ //1. 获得xmlhttprequest对象兼容性处理 var xhr; //unde ...
- [Python]BeautifulSoup—HTML解析包
在用Python写爬虫时,一个常见的操作是对抓下的HTML做分析处理,得到想要的内容.一般的方法为使用Python的re库中.用正則表達式来解析文本.只是这样的方法适用于全部的文本.而针对于特定格式的 ...
- JavaScript单线程(setTimeout,setInterval)
今天看到这篇文章,学到了不少东西 特此发出来 和大家分享 JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执 ...
- Python:Dom生成XML文件(写XML)
http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...
- go学习资料
go书单 1.代码规范 https://github.com/golang/go/wiki/CodeReviewComments 2.基础知识 先看: https://github.com/mikel ...
- lua学习笔记(七)
错误处理 assert(exp) error("error message text") pcall安全调用 协同程序 lua没有真正的多线程,都是使用协同程序也实 ...
- Window10 安装问题汇总
7月28号之后,由于没有收到windows的升级提醒,所以下载了ISO文件手动进行了升级. 本文就升级过程中遇到的问题进行一下总结: 1.ISO文件名称:cn_windows_1 ...
- cp 命令 简要
1.cp 1.log hanDir 将1.log复制到hanDir目录中 2.cp 1.log -i hanDir 复制前询问是否覆盖重名文件 3.cp -a han ...
- Weka学习之预处理连接MySql(二)
载入数据 (一)打开文件 (二) 打开url (三) 打开数据库 (四)从一些数据生成器(DataGenerators)中生成人造数据 这篇主要写(三)中的连接mySql 网上 ...
- Jlink升级_官网
Jlink官网:https://www.segger.com/ 关于JLINK固件丢失或升级固件后提示Clone的解决办法 本人用的JLINK仿真器(某宝上买的),在使用新版KEIL时,提示要升级固件 ...