侠梦说pinpoint--界面上的图标之AgetnInfo数据研究
前言
在启动一个挂载pinpoint的springboot项目的时候,界面上显示成了jboss的图标,所以今天研究了一下这个数据是怎么来的。
我们知道不同图标和服务类型有关,服务不同,图标就不同,这在代码里面使用一个ServiceType属性来描述。
从agent启动开始
- 我们都知道pinpoint采用的是字节码注入来实现APM监控,由Agent采集数据上报给Collector,所以我们的研究入口是agent下面的日志,启动过程中输出如下:
Sending AgentInfo TAgentInfo....
hostname:izwz98jc3nwxdjxg1yfd1hz, ip:172.xx.xx, ports:,
agentId:testboot_agentId, applicationName:testboot_45,
serviceType:1210, pid:28277, agentVersion:1.8.0,
AgentInfo sent.
- 这里会显示我们配置的服务名,agentId、ip等参数。
- agent信息由AgentInfoSendTask这个类定时生成发送。
- 这几个数据在代码里面都是通过注解来获取的:
@AgentId String agentId,
@ApplicationName String applicationName,
@Container boolean isContainer,
@AgentStartTime long agentStartTime,
@ApplicationServerType ServiceType serverType
- 那么由此可知,找到注入@ApplicationServerType的地方就是真相!
- 研究出依赖关系如下:
- 这里我们只关注服务类型,读代码可知,启动时会读取agent配置,所以如果你想显示的指定服务类型,那么在agent的pinpoint.config中配置这个属性即可。
// service type
this.applicationServerType = readString("profiler.applicationservertype", null);
- 带着疑问继续,那么我们一般也没有配置,它是如何识别不同的类型的呢?
插件声明类型
- 上一篇文章有说过ServiceType,不同的插件需要声明一个code码来唯一标识。
- 如果我们没有显式配置profiler.applicationservertype,pinpoint会怎么处理呢?
- 继续来看日志
没错,就是UNDEFINED。没定义肯定取不到值呀。
此时,pinpoint会获取所有已经注册的插件,调用他们的detect方法。如果校验通过,则直接返回插件中配置的serviceType。
boolean detect(ConditionProvider provider);
- 如果都找不到就会返回:STAND_ALONE
ServiceType STAND_ALONE = of(1000, "STAND_ALONE", RECORD_STATISTICS);
那为文章开头的那个图标不是springboot呢?
借用下群友图片,我们知道如果不配置,默认会去检测MAIN-CLASS的值有没有和pinpoint.config中的配置对应上。
一旦检测到,就返回对应插件的serverType,也就是SpringBoot。
- 我这里没有显示boot的原因是,我使用maven原生的方式打包,将依赖包lib分离开了,启动的main-class不是上述配置哪些。
- 至于为什么显示成了jboss,是由于我配置了
profiler.jboss.traceEjb=false
profiler.applicationservertype=JBOSS
欢迎来公众号【侠梦的开发笔记】 一起交流进步
侠梦说pinpoint--界面上的图标之AgetnInfo数据研究的更多相关文章
- GS界面上显示的重要参考数据
GS界面上显示的重要参考数据,这个是压测时重要参考 struct GSinfo { int revBuffNum; int sendBuffNum; int clientNum; int dbAskN ...
- 侠梦说pinpoint--左侧服务地图调用量和WasOn过滤
前言 这篇文章主要是从pinpoint-web界面入手,我们的目标是弄清楚两个问题: 1. pinpoint左侧服务地图上的调用量数据是怎么查询的? 2.界面查询条件WasOnly是什么意思? 左侧服 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出
数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在之前的一篇文章<Winform开发框架之通用数据导入导出操作>介绍了在Winform ...
- dedecms 5.7文章编辑器附件上传图标不显示
我最近发现在使用dedecms 5.7文章编辑器附件上传图标不显示了,以前是没有问题的,这个更新系统就出来问题了,下面我来给大家分享此问题解决办法. 问题bug:在dedecms 5.7中发现了一 ...
- 在 IconFont 上获取图标资源的操作方法与感悟
如何在 IconFont 上获取图标资源 阿里巴巴矢量图标库网站(https://www.iconfont.cn/)上提供了非常丰富的图标资源,包括 SVG.AI.PNG.字体图标等格式.使用该网站提 ...
- html小知识点汇总(浏览器导航上显示图标、div无高度时试着清除浮动、文字环绕图片、字体加粗、div按百分比分、已有的不合适的class,针对特定的标签进行修改)
1.新点击的网页,在浏览器导航上显示图标: 像这种效果: <head> <meta charset="UTF-8"> <meta name=" ...
- C#:隔离点击任务栏上的图标时的“最小化或者恢复”的效果
通常点击任务栏上的图标时,对应窗体实现“最小化或者恢复”的效果.但是在做最小化到托盘时,不希望点击任务栏图标时最小化到托盘,即希望拦截了这些效果(不允许:通过点击任务栏上的图标,实现“最小化或者恢复” ...
- asp.net中遍历界面上所有控件进行属性设置
* 使用方法: * 前台页面调用方法,重置: protected void Reset_Click(object sender, EventArgs e) { ...
- 跟我一起学extjs5(05--主界面上增加顶部和底部区域)
跟我一起学extjs5(05--主界面上增加顶部和底部区域) 这一节为主界面加一个顶部区域和底部区域. 一个管理系统的界面能够粗分为顶部标题部分.中间数据展示和处理的部分.底部备注和状 ...
随机推荐
- 大数据之路day04_1--数组 and for循环进阶
Java数组 在开始之前,提一个十分重要的一点:注意:在给数组分配内存空间时,必须指定数组能够存储的元素来确定数组大小.创建数组之后不能修改数组的大小,可以使用length属性获取数组的大小.在jav ...
- GO 基础学习笔记(1) | 简介
一.官网查看系列 Golang官网:https://golang.org/ Golang中文网:https://studygolang.com/(推荐) 项目学习网站: https://gowalke ...
- 010.Kubernetes二进制部署kube-controller-manager
一 部署高可用kube-controller-manager 1.1 高可用kube-controller-manager介绍 本实验部署一个三实例 kube-controller-manager 的 ...
- 实现支持多用户在线的FTP程序(C/S)
1. 需求 1. 用户加密认证 2. 允许多用户登录 3. 每个用户都有自己的家目录,且只能访问自己的家目录 4. 对用户进行磁盘分配,每一个用户的可用空间可以自己设置 5. 允许用户在ftp ser ...
- mailx加163邮箱发邮件
mailx加163邮箱发邮件 参考:https://www.cnblogs.com/myvic/p/9579954.html 配置 $ yum install mailx -y $ vim /etc/ ...
- Phone Code
Polycarpus has n friends in Tarasov city. Polycarpus knows phone numbers of all his friends: they ar ...
- Kubernetes概述
1. Kubernetes是什么 Kubernetes是一个可移植的.可扩展的.用于管理容器化工作负载和服务的开源平台,它简化(促进)了声明式配置和自动化.它有一个庞大的.快速增长的生态系统.Kube ...
- Python数据挖掘入门与实战PDF电子版加源码
Python数据分析挖掘实战讲解和分析PDF加源码 链接: https://pan.baidu.com/s/1SkZR2lGFnwZiQNav-qrC4w 提取码: n3ud 好的资源就要共享,我会一 ...
- ZeroC ICE的协议
- Alibaba Nacos 学习(一):Nacos介绍与安装
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spr ...