干货 | 云智慧透视宝Java代码质量监察和控制贯彻原理

【干货】解密监控宝Docker监控实现原理

分享人高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是
PECL/SeasLog 的作者。8
年研发管理经验,早期从事大规模企业信息化研发架构,09
年涉足互联网数字营销领域并深入研究架构与性能优化。2014
年加入云智慧,致力于 APM 产品的架构与研发。崇尚敏捷,高效,GettingReal。

vnsc威尼斯城官方网站 1

2015年9月,企业级应用性能监控和管理服务商云智慧正式上线了Docker监控功能,能够实时监控Docker容器的CPU、内存、网络流量及Swap状态,让开发者和运维人员在使用Docker时清晰掌握其资源消耗状况。

vnsc威尼斯城官方网站 2

作为国内首家实现Docker监控的SaaS厂商,监控宝Docker监控的技术原理是什么?相对国外的Docker监控产品有何优势?以下是此次分享的实录,请听Neeke细说端详:

1、Docker监控概况

在云时代,仍有大量物理机直接支持服务,相较于虚拟技术来讲,这种方式已经落伍很多,于是各种开源容器技术大大推进了虚拟化技术的发展。

Docker容器相较于其他容器技术来讲,是比较新的,而且发展最为迅速。原因不用多说,背后有老大哥谷歌撑腰。国内也已经兴起了几个以Docker为核心技术的创业公司,比如云智慧的合作伙伴数人、DaoCloud,都是前景非常赞的公司。

虽然这么火热,但关于Docker的运维一直是个痛点。

可以说,目前全球只有两家APM厂商提供了基于SaaS的Docker运维监控,其一是美国APM厂商New
Relic,他们在6月下旬正式发布了Docker监控;另一家,则是中国APM厂商云智慧CloudWise,在继New
Relic之后的9月7日,发布上线了Docker监控。从某种意义上讲,CloudWise填补了国内Docker监控的SaaS服务空白。

2、Docker监控的工作原理

大家都知道,CloudWise在APM领域率先提出了端到端的一体化监控模型,并且在此模型上,发布了技术领先、便于部署和管理的SmartAgent软件架构。此次Docker监控的实现,也是基于SmartAgent的架构来完成的。

SmartAgent以部署的快捷高效和智能化见长,整个部署过程中,用户在两分钟内便可完成。部署分为两部,首先下载、解压、启动数据发送代理SendProxy。SendProxy的作用是提供一个高效的本地数据接收队列与数据发送引擎,并且可以在局域网内进行分布式部署,使得不能上网的机器监控也可正常地通过SendProxy高效地传输到云智慧的SaaS平台。其次,下载、解压、启动DockerAgent。

DockerAgent使用Python进行开发并完成编译,目前支持Ubuntu和CentOS。DockerAgent遵循了SmartAgent的插件规范,所以,无论监控宝或透视宝用户,都可以直接使用。

DockerAgent有三个线程,分别是:DockerProcess \ DockerConfig \
DockerPing,以及一个对象Task。三个线程各司其职,同时受Task对象控制。Task中核心属性是任务惟一标识、任务状态以及任务频率。这些属性由DockerConfig与ClouwWise云平台定时同步。

当任务状态正常时,DockerProcess线程开始采集数据,并遵守频率规范。DockerPing负责心跳检测,定时产生心跳数据。这些数据,都由DockerAgent交由SendProxy,并由SendProxy存储进入队列,并异步地推送至CloudWise云平台。

前面聊到DockerAgent插件遵守了SmartAgent的插件规范,所以它像其他插件一样,包含了
bin 、conf、lib、log等目录,并存在一个启动脚本。该脚本提供了start
、stop、status等命令。

以上是DockerAgent的介绍,后续SmartAgent的架构与插件规范将会陆续开源发布,届时热衷开源与监控的同学,都可以直接参与进来。3、DockerAgent数据采集原理

下面我们聊一下DockerAgent采集数据的原理。DockerAgent首先会使用docker
info命令来获取docker系统信息,这些信息包含了非常有用的数据,如:
Containers, Images, Name, CPUs, Data Space Used, Data Space Total, Total
Memory。

这些数据看似简单基础,但却可以解脱掉Docker运维同学每天重复N次的工作。其次会使用docker
version来检测docker版本,目前我们的DockerAgent仅支持1.15以上的Docker版本。

vnsc威尼斯城官方网站 3

然后,使用dockerps命令来取得容器的运行信息和容器id,容器name,此时便可获知在此台机器上正在运行的docker容器都有哪些。

最后,依次取得这些docker容器的性能指标。取得性能指标的方式,有部分使用docker原生接口,有部分是运行云智慧自己的算法。其中包含容器与主机的系统时区/时间;容器的cpu使用率(通过cgroup/cpuacct内该容器的cpuacct.stat取得);容器的ip;容器内运行的进程数;容器的内存指标,rss\cache\memory_limit\total_cwop等(通过cgroup/memory内该容器的
memory.stat取得);容器的网络指标(通过ifconfig/
statistics取得)。DockerAgent发布上线以后,在当天就接到了非常多热心用户的反馈。很多反馈非常好,我们也在积极地吸收和改进。为大家解决真正头疼的Docker运维、监控、管理问题。相信在很短的时间内,将迭代出更优秀、更稳定、更符合用户预期的DockerAgent,以此不仅填补国内的Docker监控空白,更会真正成为众多Docker用户、企业的伙伴,为大家解决真正头疼的Docker运维、监控问题。

问:咱们和datadog之类docker监控有啥区别和优势?

答:DataDog的安装部署太过繁琐。当时尝试时用了一下午才跑出来数据。DataDog的图表定义比较自由,这点是比较好的;而我们的
Docker监控最大的优势,就是零基础部署。另外,DataDog太贵,好像一个Agent要接近100人民币吧。目前CloudWise的
DockerAgent完全免费。

问:刚才说 docherconfig 是定时与云平台同步,同步的是docker
process和docker ping采集到的数据吗?

答:不是同步采集到的数据,是同步配置。

问:我看讲的是通过sendproxy异步到云平台的啊,那么dockerconfing的作用是什么?

答:DockerConfig是定时从云平台取得配置信息,采集到的数据,是由DockerProcess与DockerPing自行交由SendProxy。同步的数据其实就是Task的属性,比如任务名、任务频率、任务状态。

问:采集数据原理是先ps命令机器上那些 docker容器,再去用docker
info获得他们的指标吗?

答:dockerinfo是返回当前机器上整体的docker指标,然后ps取得活着的docker容器,依次取它们各自的指标。

问:那包括了ps命令出的docker吗?ps直接就取了吗?这么说ps不仅仅是获取那些活的docker容器,还包括他们指标?

答:ps取不到指标,取得的是活的容器并列举;然后用其他的方法取它们的指标。容器名字也是ps时列举时一起取得的。

以上是Neeke就监控宝Docker监控的实现原理进行的分享,大家可以注册监控宝进行免费试用,有任何问题或需求请与我们联系。

分享人高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是
PECL/SeasLog 的作者。8 年研发管理…

这篇图文并茂,高端大气上档次,思维缜密的文章,一看就和我平时的风格不同。对了。这不是我写的,是我家写一手好代码,炒一手好菜的男神架构师老公的大作,曾发表于技术公号,经本人授权转载,如有技术问题,我代为请他本人解答~~

作者:精灵云

众所周知,传统开发模式已经面临了诸多难题。首先,在代码集成方面,因为没有合适粒度的代码合并,大规模的合并会有很大的风险,且传统开发模式中没有自动化测试,以至于测试周期特别长,人力成本高昂。其次,传统开发中的单体应用,通常都很庞大,单体应用把所有模块都包含在一个应用中,升级单个模块也需要对整个应用进行升级,所以升级和创新都很不方便,常见的比如银行系统就是如此。

vnsc威尼斯城官方网站 ,同时,传统的开发模式中单独采用微服务的情况也会由于服务数量多而没有有效管理,在大批量的部署和测试的时候容易出现问题。除此之外,传统开发模式更面临着开发和测试的环境不一致,以及由于没有有效的升级方式导致业务停止的问题。

vnsc威尼斯城官方网站 4

(如何一步步实现DevOps)

为了解决传统开发模式中的问题,目前一个比较流行和彻底的方案是:DevOps流程+微服务理论+使用容器和容器编排工具。在这里展示给大家的是一个理论上的基于容器的CI/CD流程,实际上,DevOps的前身就是CI/CD,实现了CI/CD后,再加上一些发布、部署等标准和管理就构成了DevOps。

vnsc威尼斯城官方网站 5

(基于容器的CI/CD流程)

实现DevOps之自动化测试

那么如何来完整的实现DevOps呢?通常情况下,传统开发模式转向DevOps的第一步是解决自动化问题。要想持续的集成代码,没有自动化测试来保证快速地进行合并后的验证,风险是很高的,而且没有自动化测试,测试环境很有可能成为整个开发环节的瓶颈。只要是经常使用的测试用例,需要尽量自动化每一个操作。

自动化工具很多,对自动化工具和测试框架的选择是需要根据具体应用来决定的,这里只列举其中常用的一小部分——Jenkins、Python、Robot
Framework、Shell Script、Selenium、Ansible和Docker Container
Orchestration——这些都是我们面对客户需求的时候经常用到的。然而,不是每次集成都需要跑完所有的测试用例,因而对测试用例进行管理,可提高持续集成的效率。

vnsc威尼斯城官方网站 6

(自动化测试)

如何来判断自动化测试用例和框架是否有效?常见的判断依据有三个,首先是自动化测试的覆盖率。如果通过率再高,覆盖率低,那么自动化测试就不是一个有效的,目前企业级比较认可的覆盖率是75%左右,再提高也比较困难。其次是看漏测率,有时候自动化用例本身也可能有Bug,前期阶段通过比较手动测试自动化测试的结果来判断自动化测试是否有效。最后,当产品发布后根据从客户来源的bug数目来判断自动化测试用例是否有效。另外,要稳定一套自动化用例,一般需要2个版本周期或者更长。

实现DevOps之持续集成和持续交付

持续集成一个主要的功能是让每个工程师的代码提交都不会影响到Mainline,以保证Mainline的可发布状态。实施持续集成时,需要注意的地方:

  1. 指定规则,提交代码时要一并提交新功能的测试用例。

  2. 集成的粒度和频度也很关键。一般一个小模块,不超过1周的时间。

vnsc威尼斯城官方网站 7

(持续集成)

持续集成通过后,根据应用程序的特点,在经过系统集成测试、性能测试、稳定的自动化测试通过率以及管理层的批准后,才是可持续交付和部署的应用程序。

持续交付有两种方式,一种就是基于DevOps的自动持续发布,一种是多个功能一并发布。在持续交付的过程中需要注意三个问题:

1.部署到生产环境后也要有相应的测试;

2.使用Toggle控制功能是否生效;

3.要有回滚的手段(灰度发布)。

实现DevOps之微服务化

有了自动化测试、持续集成和持续交付三块,已经基本实现了DevOps的粗略流程,而为了提高DevOps的效率,
往往需要结合微服务。一个微服务理论上只做一件事,并能用任何语言编写。微服务是松耦合的,意味着一个应用的微服务可以被部署到不同机器上并通过resAPI/RPI来通信,当定义好微服务的API之后,每个team便能独立开发。因此,微服务更容易被测试和实现CI/CD。

vnsc威尼斯城官方网站 8

(微服务的最佳实践)

在微服务的最佳实践中,首先不得不提容器。容器的轻量化让微服务启动很快,同时容器的跨平台性保证了微服务可以在不同的平台启动起来。第二种是使用代理服务器来访问微服务,现在最常见的方式是前端连接一个代理服务器,后端再连接运行同一个微服务的几个相同容器。一个大的应用会使用几十上百个微服务,和微服务不相关的库文件不建议放在容器中。实践微服务中,建议使用配置管理工具(ansible,
puppet等)和容器服务编排工具(K8s,Swarm,EcOS等)。

vnsc威尼斯城官方网站 9

(康威定律)

在开发微服务中康威定律起到了很大的作用。康威定律指出任何软件代码都是用来反映组织机构而产生的,如果要采用微服务的开发方法,就需要是把团队划分成多个小团队,由每个小团队负责一个或多个微服务。所以如果要转成DevOps和CI/CD的开发模式,就需要采用这种敏捷开发模式,一个团队7-8个人比较合适。

实现DevOps之容器技术

另外一个实现DevOps的重要手段是Docker容器技术。和传统的Hypervisor相比,Docker没有自己的操作系统,它使用宿主机的操作系统,而Hypervisor需要建立虚拟机,每个虚拟机需要装一个操作系统,因此Docker效率更高更节约资源。如果一台物理机可以操作20个虚拟机,便至少可以启动200个容器,且启动容器的时间是秒级。

vnsc威尼斯城官方网站 10

vnsc威尼斯城官方网站 11

(Docker和Hypervisor的对比)

使用容器编排工具可以实现对容器的健康检查、动态伸缩、灰度发布和蓝绿发布等功能。而我们提到的容器编排技术,比如K8s,Mesos和Swarm,都是开源的工具,这里我们把精灵云自研的容器编排工具EcOS和开源工具进行了简单对比。

vnsc威尼斯城官方网站 12

(几种常见容器编排技术的比较)

K8s是由谷歌发起的开源框架,最大的问题是太笨重,对使用者来说操作很复杂,学习周期很长。Swarm是Docker公司开发的工具,Docker本身不能支持的功能,Swarm也是无法支持的。如图所示,EcOS是精灵云自主开发的容器编排技术,最大的特点是结合了开源工具的优点,在应用编排上完全可视化。EcOS内置的自研调度框架Newben,在网络、应用迁移、负载均衡、弹性伸缩、调度规则等方面也比开源框架有比较大的优势,在支撑过数万用户和数十万的容器调度考验后,Newben是目前国内定制能力最强,支撑功能最丰富的调度框架。

实现DevOps之灰度发布

如果一个服务由多个相同的容器运行,灰度发布则先对其中的部分容器先进行升级,可混合让老版本和新版本的容器同时提供服务。如发现新服务没有什么问题,则可以把所有剩下的微服务再全部进行升级。

vnsc威尼斯城官方网站 13

(灰度发布)

实现DevOps之版本控制

DevOps下版本控制的原则是始终在Mainline上进行新功能的开发,并经由持续集成的自动化测试对代码进行验证。当功能开发到一定阶段的时候,对可RC的代码创建分支,该分支上停止新功能的开发,只求稳定。当产品发布后,如发现问题,可出hotfix。根据时间点和具体需要,可把其他分支的hotfix
merge到Mainline上。

vnsc威尼斯城官方网站 14

(版本控制原理)

Q&A

Q1.微服务是一个抽象概念还是说有具体的工具来实现?

A1:微服务是一种软件架构风格,它以专注于单一责任与功能的小型功能模块为基础,利用模块化的方式组合出复杂的大型应用程序。另一方面,也可以说微服务是一种编程思维,如果是想要开发出能在云上运行的微服务,可参考云原生的12因素法则。

Q2.请问传统的非常庞大的单体应用如何逐步改成微服务?

A2:1)新的功能开发使用微服务方式。

2)把边缘模块换成微服务方式。

3)将前端和后端分离

4)抽出服务,逐步替换。这一步尤为复杂,需要由经验丰富的架构师来主导。

Q3.请问一下刚所说的75%覆盖率,是前后端全部的?

A3:平均覆盖率为75%。

Q4.你们这边Devops应用在什么量级别?

A4:Ghostcloud已经结合Jenkins和EcOS,完全实现了自动化的持续集成。但是目前还有一些手动的系统集成测试和性能测试。

Q5.您所说的企业级应用指的哪种类型的?包括一些复杂的saas应用吗?有没有一些实际的项目事例的自动化测试覆盖率供参考?

A5:银行的管理系统,电商的平台,企业的云平台管理软件等,大型的由企业使用的软件都可以叫企业级应用。SaaS当然可以算是企业级应用。国外很多大公司的代码覆盖率都是这个70%~80%值,可以看一下这篇文章:

Q6. web ui的自动化测试用的什么工具,比如input框如何search到?

A6:web ui的测试工具很多,比如Robot Framework的Selenium.
对于input框这类元素,可使用xpath来定位。

Q7.负载均衡有啥好的方案
怎么自动发现应用拓扑(ip)变化.

A7:我们目前使用的是HAProxy,并且正在开发Nginx的支持。自动发现使用的是ETCD+DNS+Wather的方式,当容器IP地址发生改变,可自动捕获,并更新代理服务器的配置文件。

Q8.之前我们在搭建paas平台时,花费了很多时间在环境搭建、定位环境问题上,请问对于平台的搭建维护,有什么好的建议?

A8:建议试一下EcOS,一键部署。www.ghostcloud.cn

Q9. traefik专门用来做微服务负载均衡 国内用得多吗?

A9:大多数还是用的HAProxy和Nginx吧。

活动详情链接:

验证码:333

一、Java平台体系及应用场景

从1995年Sun
Microsystems公司正式推出Java,到2006年时Sun公司将其开源,迄今为止已经有了20年的历史。Java本身已不仅仅只是一门面向对象的编程语言,而是由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的跨平台开发与部署的支持,实现“一次编写、到处运行”的目的。Java已经广泛的应用于嵌入式、移动终端、企业服务器、大型机等各种场合。

Sun官方所定义的Java技术体系包括如下几个组成部分:

* Java程序设计语言

* 各种硬件平台上的Java虚拟机

* Class文件格式

* 来自商业机构和开源社区的第三方Java类库

vnsc威尼斯城官方网站 15

 

图:Java技术体系组件图

Java Virtual
Machine(JVM)是Java体系的基础,负责解释、编译执行.class文件形式的字节码,同时负责内存管理、热点代码检测和运行时编译优化。正是由于有了虚拟机的基础,才使Java实现了“一次编写、到处运行”。Java这20年的发展,其实更是虚拟机的发展过程。期间经历了Sun、BEA公司各自开发的虚拟机,2009年之后,ORACLE将这两家公司收购,并将这些虚拟机取长补短、合二为一。目前还是开源的虚拟机OpenJDK,可供爱好者学习研究用。

JRE部分是支持Java程序运行的标准环境。JDK是JRE的超集,包含JRE的一切,再加上工具如编译器、调试器等。

 

二、Java性能监控需求

对于一个企业的应用系统,大多数情况下,肯定是由多种编程语言开发的各种系统的集成。我们都非常关心系统的可用性、及时响应性、资源的消耗,比如CPU、内存、各种I/O、网路带宽等消耗情况。对于这些问题的性能瓶颈点,我们一般可以归纳为外部服务(如第三方API)、资源读写、代码异常。如果在发生这些问题时,能够及时完整的抓拍记录保留下来,那么对于我们解决问题将会提供充足的证据,解决问题会变的非常容易。

对于Java应用系统来说,JVM自身提供了相应的性能监控手段和工具,经常在出现问题后,比如内存泄漏或溢出时,我们会通过jmap命令导出堆的转储快照,利用相应的命令jhat或其他相应的第三方内存分析工具来分析对象的占用情况。

响应缓慢时,我们可能会用jstat监视命令、或jdk的可视化工具jconsole、visualvm来分析JVM的垃圾回收类型、回收频率,来推测是否是垃圾回收导致的。有可能我们还要接着分析线程转储快照,通过jstack取出线程的栈快照,来分析是否有真死锁、死循环导致的相应缓慢、资源负载高等情况。

当有问题出现时,许多开发人员可能都是比较盲目的用这些工具来试探性定位问题,而大多数情况下,这种试探会无功而返。因为这些分析工具主要是侧重Java单方面的分析,比如该系统调用第三方API,如果第三方API有问题,是无法监控到的。还有像文件、DB资源的访问也是是无法监控到的。

而且,只有对Java虚拟机机制较为熟悉的高级开发人员才能比较好的运用、理解这些工具,对于大多数普通Java开发人员来说,这些问题只会令他们束手无策。

像外部服务(如第三方API)、资源读写、代码异常这些瓶颈点,需要通过代码级别的监控才能直接、快速、有效的找到症结所在。调用第三方API的耗时、资源访问的耗时、代码抛出的非预知异常,这些常见问题代码监控完全能够监控到,并能够实时抓拍记录,一旦有问题可以快速还原事故问题现场。通过代码级别监控发现问题后,也可以在辅助利用虚拟机内置监控工具进行进一步的定位。

 

三、透视宝Java监控实现原理

vnsc威尼斯城官方网站 16

 

图:Java的执行模型

 

在Java的执行体系中,由.Java源码文件编译后的.class字节码文件,可以理解为中间语言。

vnsc威尼斯城官方网站 17

 

图:透视宝Java监控实现原理

 

vnsc威尼斯城官方网站 18

 

图:透视宝Java监控实例运行图

 

1、字节码load至JVM时发生了什么

* 回调函数注册完毕后,凡是当有任何的class文件即将被类加载器加载前,都

会执行回调函数transform,在此方法内实现的类改变操作。

* 实现的transform方法中,我们使用的是ASM字节码操作框架,ASM从二进制

形式的类文件中读取、分析类的信息,然后修改改变类的行为。

* transform方法的基本代码形式如下:

vnsc威尼斯城官方网站 19

 

2、如何实际改变类行为

* 在依赖于ASM基础之上,我们抽象出这样的业务模型

vnsc威尼斯城官方网站 20

 

* 常用的拦截探针

vnsc威尼斯城官方网站 21

 

* 常用的运行时拦截处理器

vnsc威尼斯城官方网站 22

 

* 支持的拦截定义过滤器规则

vnsc威尼斯城官方网站 23

 

* 该业务模型对应的行为

vnsc威尼斯城官方网站 24

 

定义拦截描述时,指定过滤拦截哪些类、哪些方法,然后,在这些行为的点上,可以埋入探针、处理器。重写visitCode、visitInsn、visitMaxs分别实现方法进入、返回、异常的相关操作改写。

vnsc威尼斯城官方网站 25

 

四、透视宝Java监控部署流程

1、登录云智慧透视宝官网,点击页面右上角导航的“免费试用”,正确填写免费试用的申请信息后会弹出下面的对话框,同时激活邮件会自动发送到你的邮箱中,按照流程注册帐号即可。

vnsc威尼斯城官方网站 26

 

2、注册成功后,登录透视宝,点击配置-应用,在配置页面中下载安装Smart
Agent。安装成功后,Smart
Agent会根据系统配置自动获取主机信息,大致两分钟后,您就可以在“主机→服务器”模块中查看该服务器的CPU、内存、网卡、磁盘及进程等性能数据。

vnsc威尼斯城官方网站 27

 

3、如果要监控应用运行时代码、主机中服务和数据库性能数据,您需要进一步安装和配置Smart
Agent提供的各种插件,这是因为Smart
Agent实现了一种开放式的插件式结构,对每个运行时代码、服务和数据库的监控都是通过相应的插件来实现的。

vnsc威尼斯城官方网站 28

 

Smart
Agent在安装完成后,加载过程中自动发现你的应用组件,如果没有自动监测到Java环境,也可以手动添加Java
Agent。如上图所示,点击“管理”入口,进入“插件管理”,点击页面下部的“添加服务”,选择JavaAgent后,点击“创建”。

创建完毕后,点击“ON”。(该ON操作只是初始化用户的信息,以便以后采集到的信息能够正确的回传给该用户。)

vnsc威尼斯城官方网站 29

 

以上都操作完后,在{smartagent的安装路径}/plugins,就会看到如下形式的

vnsc威尼斯城官方网站 30

 

在到{smartagent的安装路径}/plugins/JavaAgent_1442476463X1002x0/conf文件夹下,查看app.conf文件,看看该文件内的HostKey的值是否是如下类似的加密形式

vnsc威尼斯城官方网站 31

 

以上情况,表明JavaAgent已经下载启动初始化成功。

4、安装JavaAgent至各种应用服务器上,如tomcat\jboss\weblogic。(该操作参考官网

5、只要启动相应服务器,然后访问您的应用url即可,该url对用的代码执行情况即可呈现给您,一旦出现缓慢问题也一目了然。如下图示意

vnsc威尼斯城官方网站 32

 

五、透视宝Java代码性能监控特点

在功能方面,透视宝无论是在Java,还是其他如.NET、PHP等主流语言的监控上,都包括:查看执行最慢的10个元素,包括元素执行次数、持续时长和占用时长百分比;查看HTTP请求参数,包括请求的响应状态、链接页面、具体的请求参数及返回结果;查看代码执行堆栈的详细树状信息,包括每个方法的计算时间、总耗时和被调用的次数,您能直接看到特殊标识的最慢方法;查看涉及SQL语句的总耗时排序,包括SQL执行总耗时、执行次数和具体的查询语句;第三方API调用。

vnsc威尼斯城官方网站 33

 

端到端性能监控示意图

 

在性能方面,云智慧透视宝的JavaAgent代码监控探针包,对用户的性能影响到底有多大?从安装包本身来看,它非常小,仅为1.5M。在不安装Java探针包和安装Java探针包,分别运行应用。经过测试对比,CPU使用率差值、内存消耗差值、TPS差值均在5%以内。

 

相关文章