0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板

京东云 ? 来源:jf_75140285 ? 作者:jf_75140285 ? 2025-05-27 14:40 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、前言

当前所测试业务需求为集成在业务系统WMS的jar包,jar包测试主要集中在本地拉取开发编写的代码做单元测试,因为jar包没有单独的应用,每当大促压测或日常压测,架构师或开发同事问道:这个jar包的JVM指标如何?jar包的火焰图是什么样的?对此,只能望洋兴叹。基于以上背景,对jar监控做了一些调研和实战。

?

二、调研过程

1.forcebot平台

forcebot平台是泰山上一款支持Groovy脚本编写的压测平台,通过将jar包上传,编写脚本,便可看到当前压测的响应时间、TP99等监控信息。forcebot平台也支持抓取火焰图信息,抓取到的火焰图结果如下,但是此信息为Groovy脚本进程火焰图信息而并非Groovy脚本调用jar的火焰图信息

wKgZPGg1Xk-AcxLpAAYDPRm3zKw958.png

2.jconsole/jvisualvm+Grafana监控

jconsole

jconsole是JDK自动的、基于jmx协议的、对JVM进行可视化监视和管理的工具。jconsole支持连接本地进程远程进程,如果需要连接远程进程,那么远程进程必须开启jmx协议。

wKgZPGg1Xk-AVvCbAAEJT7V8O3M491.png

jvisualvm

jvisualvm也是JVM自带的一个类似于jconsole的可视化监控工具,jvisualvm也支持本地进程远程进程

wKgZO2g1XlGAbr04AAH068nSsug649.png

wKgZPGg1XlKAKn74AAN-7xKce-c884.png

远程监控的其他监控信息可以在易维平台查看到Grafana监控情况,但是对于相同指标比如CPU使用率信息的记录,jvisualvm和Grafana对指标的描述结果有偏差,初步分析是两个监控看板对于指标数据的采集及统计有偏差。

wKgZO2g1XlSAJ7uYAAQhgkNpTd8527.png

通过以上监控信息我们可以明确的看到当前jar包的JVM、CPU以及相应方法的耗时情况。但是现有易维平台提供的Grafana看板指标数据有限,无法详细看到TP99、TPS等数据,且通过visuals拿到的数据和Grafana拿到的数据对于相同指标来说数据值有差异,搭建一套统一的看板势在必行。经调研易维平台没有用influxdb来存储数据,用的是ES,易维grafana中展示的数据是在ES中出的,ES中就没有JVM相关的监控信息,遂探究了如何自建性能测试工具进行监控看板的搭建。

三、性能测试平台搭建

wKgZPGg1XlWAcvCeAAEeUA974fw654.png

1.jmeter

常用的压力测试软件有:LoadRunner、ApacheJMeter、NeoLoad、WebLOAD、Loadster、Load impact、CloudTest、Loadstorm、阿里云PTS等等,jmeter是一款使用Java开发的,开源免费的测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),且简单易用,本文便使用了jmeter压测工具。

?

jmeter可以对http请求做压测,但是做jar包的压测,需要对jmeter做二次开发进行定制化编写,对于以上jemter的二次开发之前已有文章发表对此不做过多赘述,详见 jmeter二次开发发送java请求

?

我们可以通过使用插件等方式设置线程数、循环次数等信息定制化监控我们我们压测的需要监控的指标数据。

2.telegraf

1.1.Telegraf是什么

Telegraf是一个Go语言编写的代理程序,可收集系统和服务的统计数据,并写入到InfluDB数据库。内存占用小,通过插件系统可轻松添加支持其他服务的扩展。是一个轻量级数据采集系统。

?

Telegraf metric是用于在处理期间对数据建模的内部表示。这些指标完全基于InfluxDB的数据模型,包含四个主要组件:

?度量名称(Measurement)

?标签(tags)

?字段(Field)

?时间戳(time)

1.2.为什么要用Telegraf

?可以采集多种组件的运行信息,不需要自己手动写定时脚本,降低了数据获取的难度

?CPU

?内存

?不需要自己手动写定时脚本,降低了数据获取的难度

?配置简单

?与InfluxDB完美结合,按照时间序列采集数据

?轻量级,占用内存小

3.influxdb

3.1.InfluxDB简介

是一个由InfluxData开发的开源时序型数据库。它由Go语言写成,着力于高性能地查询与存储时序数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

Influxdb有如下三大特性

?基于时间序列

?可度量性

?基于事件

相应的,我们也可以使用prometheus数据库采集数据,Prometheus也是由go语言开发的,是一套开源的监控&报警&时间序列数据库的组合。

3.2.InfluxDB使用

InfluxDB数据模型包括Measurement(表)、Tags(维度列)组件、Field(数值列)以及point。

InfluxDB数据保留策略操作

创建数据库保留策略

?:保留策略的名称

?:为哪个数据库创建保留策略

?:该保留策略对应的数据过期时间

?REPLICATION:副本因子:几个副本

?SHARD DURATION:分片组的默认时长

?[DEFAULT]:是否为默认策略

CREATE RETENTION POLICY  "influx_retention" ON "telegraf" DURATION 30d REPLICATION 1 DEFAULT;

查看数据库保留策略

SHOW RETENTION POLICIES ON telegraf;

使用telegraf+InfluxDB搭建的数据资源管理看板。

wKgZO2g1XleACh2WAAqloW6cSmQ867.png

4.Grafana

4.1.Grafana是什么?

Grafana是开源的、炫酷的可视化监控、分析工具,它主要包含以下特点:

?多种展示方式

?支持多数据源:

?Graphite:时间序列 图形系统

?InfluxDB

?Opentsdb:基于HBase

?Prometheus:开源 服务监控系统和时序数据库

?ElasticSearch,elk:

?多种通知提醒

?Email、SMS、

?混合展示

?同一个图表中,混合使用不同的数据源

4.2.为什么要用Grafana?

Grafana主流数据库:ElasticSearch、InfluxDB、MySQL、Opentsdb、Postgresql。涵盖了大部分数据库,并且有很炫酷的图表库,开源、可以进行二次开发、汉化、可以做前端开发。

搭建的Grafana看板如下

wKgZO2g1XliATibIAAdZgfcNbJs750.png

?

四、特别提醒

1.jmeter与telegraf的衔接需要使用Jolokia工具,此工具的作用为作为JMX的HTTP桥接器,使得Telegraf能够通过HTTP协议轻松地访问JMX管理的Java应用程序的数据。关于Jolokia的官网及简介链接如下:

jolokia详细文档: jolokia官网?

2. 指标的采集及监控数据对齐可以参考MDC监控 监控指标简介

3. 火焰图数据的采集可以使用arthas工具,安装过程可参考神灯文章 JVM虚拟机之字节码文件详解

五、总结与展望

千里之行,始于足下,本次从0到1搭建监控性能指标看板的历程中得到了深刻的体现。从最初的设想、规划,到一步步实施、调试,再到最终的呈现与优化,每一步都凝聚了搭建者的心血与智慧。在这个过程中,不仅成功搭建了一个功能完善的监控性能指标看板,更重要的是,学会了如何在压测过程中,根据指标情况提出合理的优化建议,为开发团队提供了有力的数据支持,帮助他们更好地优化代码,提升系统性能。这一成果不仅是对自我技术能力的肯定,更是对团队协作精神的最好诠释。

同时,这次经历也让我深刻感受到了自我技术成长的巨大飞跃。在解决问题的过程中,我不断挑战自我,学习新知识,掌握新技能,逐渐形成了自己的技术体系和方法论。这些宝贵的经验和收获,将成为我未来职业生涯中不可或缺的财富。

最后,特别感谢在搭建看板过程中给予我无私帮助和支持的同学们!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 监控
    +关注

    关注

    6

    文章

    2322

    浏览量

    57796
  • JVM
    JVM
    +关注

    关注

    0

    文章

    160

    浏览量

    12657
  • JMX
    JMX
    +关注

    关注

    0

    文章

    3

    浏览量

    5700
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux C编程一站式学习

    Linux C编程一站式学习
    发表于 08-09 09:13

    LinuxC编程一站式学习

    本帖最后由 宇宙雄鹰 于 2012-8-26 20:47 编辑 LinuxC编程一站式学习
    发表于 08-26 20:45

    Linux C编程一站式学习

    Linux C编程一站式学习
    发表于 11-02 13:06

    嵌入Linux 学习,一站式服务

    嵌入Linux 学习,一站式服务详情请到淘宝搜索 “通程商铺”
    发表于 03-25 12:16

    阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据

    摘要: 简介 在kubernetes的监控方案中,Heapster+Influxdb+Grafana的组合相比prometheus等开源方案而言更为简单直接。而且Heapster在
    发表于 05-10 15:28

    ISCA,HPCA,MICRO,IEDM等资料一站式汇总

    求助:ISCA,HPCA,MICRO,IEDM等资料一站式汇总
    发表于 06-22 07:48

    NodeMCU+Influxdb+Grafana主要由哪几部分构成

    电力计量——NodeMCU+Influxdb+Grafana主要由下几个部分构成:-数据库:Influxdb——开源的时序数据库 -前端:Grafana——开源的图表展示 -数据采集
    发表于 02-16 06:42

    三步搭建RK3568编译OpenHarmony一站式开发环境

    1、RK3568编译OpenHarmony的步骤RK3568的一站式开发环境搭建只需三步,几分钟就可完成,十分快捷。开发环境搭建在Ubuntu20.04操作系统上,硬盘可用空间建议100G以上,注意
    发表于 08-23 18:00

    ST可穿戴一站式解决方案

    ST可穿戴一站式解决方案 ,对ST芯片的说明
    发表于 11-13 16:14 ?0次下载

    influxdb+grafana+nodemcu

    电力计量——NodeMCU+Influxdb+Grafana主要由下几个部分构成:-数据库:Influxdb——开源的时序数据库 -前端:Grafana——开源的图表展示 -数据采集
    发表于 12-17 18:01 ?8次下载
    <b class='flag-5'>influxdb+grafana</b>+nodemcu

    为什么选择一站式PCBA加工?PCBA一站式服务的优势

    一站式PCBA智造厂家今天为大家讲讲PCBA一站式服务是什么?为什么选择PCBA一站式服务。随着科技的不断更新和发展,越来越多的公司开始选择PCBA一站式服务。那么,为什么越来越多的客
    的头像 发表于 01-03 08:49 ?1040次阅读

    一站式晶圆三维检测机WM系列

    优可测一站式晶圆三维检测机WM系列:一站式检测晶圆粗糙度、台阶高度、研磨纹路、切割深度、字符深度等,支持客制化定制。
    发表于 03-05 14:14 ?2次下载

    机房建设一站式整体解决方案

    纷纷转向种全面而高效的建设模式----机房建设一站式整体解决方案。 一站式方案:从规划到运维的全程服务 这种整体式的服务模式覆盖了机房建设的每个阶段,确保了从初期规划设计到后期运
    的头像 发表于 04-02 16:15 ?795次阅读

    CCS集成母排一站式测试

    CCS集成母排,一站式测试,多点耐压测试,焊接小电阻测试,NTC电阻测试,瞬间短断路测试
    的头像 发表于 06-04 20:00 ?2109次阅读
    CCS集成母排<b class='flag-5'>一站式</b>测试

    文解析一站式代工代料服务

    一站式PCBA加工厂家今天为大家讲讲一站式PCBA代工代料服务概述及一站式服务的便利性与专业性。一站式代工代料服务(Turnkey Solution)是
    的头像 发表于 06-10 09:18 ?310次阅读