pinpoint新增自定义插件监控
pinpoint:源码地址:https://github.com/pinpoint-apm/pinpoint.git
定义:基于Google的Dapper理论,通过在程序内部的class的方法,构造方法等地方埋点,通过Java-agent技术实现类增强的一种链路追踪的监控(APM)工具,由韩国navercorp公司的团队开发并开源。
原理:我们先以简单的main方法打印1+2语句为例,来介绍一下pinpoint中使用的类增强方法。
public class aaa {public static void main(String[] args) {System.out.println(add(1,2));}public static int add(int a ,int b){return a+b;}
}
这个对于任何一位程序员或者程序初学者来说,都是再熟悉不过的一段代码。那pinpoint如果要监控这一段代码应该怎么做呢?
我们做监控的话理所当然的要很明了的知道这段代码是执行了什么方法,执行该方法花了多长时间,执行的方法的traceid(读者可自行谷歌了解一下)是什么?等等。
Java-agent的类增强技术有一个prmain方法,这个即在被增强的方法执行前先执行要增强的方法。
那我找到埋点的方法,在埋点方法前下个探针,扎他一下,在埋点前(before)记录一下时间,这段程序执行完(after)再记录一下时间,时间差就是这段程序执行了多久。在before和after上再做另外的操作,比如记录一下taceid,连接数据库的库名,程序执行时执行的语句是啥等等。
那我们在上面的例子上就可以埋点 add方法,在类增强里面做其他处理。
以pinpoint上的已有的来看一下
首先是plugin 核心的插件类:箭头所指表示埋点com.mysql.jdbc.NonRegisteringDriver,方框表示埋点的方法是:connect,椭圆的框表示connect方法里面的构造参数
再来看一下他的拦截器:DriverConnectInterceptorV2,如我上面所提的,before prepare after
这两个文件算是pinpoint的核心类文件。
当然笔者如果要开发一个新的插件的话还需要在这里占一个坑位,这里的2100就跟mysql插件对应
这个是他的agent代码,你新增一个新的插件要去pinpoint的web代码上添加上对应的代号就行了,这里的代号不能重复,是一一对应的,需要注意一下。笔者能力有限,关于pinpoint方面目前就这么多的领悟,如果有什么疑问的话可以邮件我讨论一下,我在空闲的时候会对好问题去一一回复。 本人邮箱:1262828055@qq.com
pinpoint新增自定义插件监控相关推荐
- 自定义cacti插件监控jvm
插件功能: 根据网上网上文档,自定义插件监控jvm对象,主要包括各个区域使用率,GC时间,用于对jvm参数调优效果进行监控对比. 实现步骤: A,被监控主机 1.1 被监控主机部署监控脚本,获取指定t ...
- APISIX Ingress 如何支持自定义插件
Ingress 和 Ingress controller Kubernetes 中的 Ingress 是一种资源对象,用于定义如何从 Kubernetes 集群外访问到 Kubernetes 集群内的 ...
- TarsGo新版本发布,支持protobuf,zipkin和自定义插件
本文作者:陈明杰(sandyskies) Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架,目前支持C++,Java,PHP,Nodejs,Golang语言.该框架为用户提供了涉及 ...
- 使用云监控实现GPU云服务器的GPU监控和报警(下)-云监控插件监控
摘要: 目录 使用云监控实现GPU云服务器的GPU监控和报警(上) - 自定义监控 使用云监控实现GPU云服务器的GPU监控和报警(下)-云监控插件监控 1 背景 上一篇文章我们介绍了如何使用 ...
- openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...
- Cacti 自定义脚本监控
Cacti 自定义脚本监控 ************************************************* 脚本内容: [root@cacti scripts]# cat get_ ...
- PinPoint分布式全链路监控
PinPoint分布式全链路监控 安装需要的所有包下载路径: 链接: https://pan.baidu.com/s/1sl9dP9r 密码: jsux 介绍: PinPoint是一个开源的APM(( ...
- 使用zabbix-agent2自定义插件获取https证书过期时间
需求 对经常维护网站的人来说,要经常跟https的证书打交道.一般https证书的有效期是一年,证书一旦过期,公司的损失会非常大.去年网易邮箱因为https证书忘记续期,导致大量用户无法正常使用邮箱就 ...
- kindeditor自定义插件插入视频代码
kindeditor自定义插件插入视频代码 1.添加插件js 目录:/kindeditor/plugins/diy_video/diy_video.js KindEditor.plugin('diy_ ...
最新文章
- ef mysql 插件_EF Core 插件 —— ToSql
- pyqt5动态删除控件问题
- java 连接两个arraylist,java – 在两个线程之间共享一个ArrayList?
- 如何评估Serverless服务能力,这份报告给出了40条标准
- 【MFC】工具栏按钮追加显示文本
- java web ee_Java EE 6 Web配置文件。 在云上。 简单。
- Pandas列百分数转化为小数
- endwith php,辅助函数 | 进阶系列 | Laravel 7 中文文档
- arduino 蓝牙示例_,arduino 蓝牙例子,
- 微信小程序直播插件live-player-plugin使用
- 阻止YouTube视频在Chrome中自动播放
- xdg在Linux中的用法,Linux实用命令之xdg-open
- 往word表中写数据
- 安装分区助手,总是显示“分区助手已安装到你的电脑中,怎么办
- Python爬虫之Scrapy框架系列(18)——深入剖析中间件及实战使用
- 在Java程序员能够从事哪些岗位
- 数据标注案例分析-足球比赛时间轴打点标注项目
- 阿里妈妈-网络广告位投资策略
- 【Unity】DnSpy断点调试Unity已发行游戏的dll
- 中国电信计算机通信笔试题,中国电信入职考试题 求大神解答!