最近在做java性能瓶颈定位分析工具的研究,发现glowroot工具是一款相当不错的APM工具(Wonderful tool),架构简洁,部署简单,上手容易。
经过亲身搭建体验,总结了产品的架构,工具的特点,性能,功能点,并把实操的部署搭建步骤,分享推广给需要的人
 
工具的架构:
 
工具的特点:无代码侵入,agent代理监控,使用方便,简单,快速
针对慢请求和错误请求的跟踪捕获
深入钻取分析(非常方便的过滤)
响应时间分解图
响应时间百分比图
SQL捕获和聚合
服务调用捕获和聚合
MBean属性捕获和图表
可配置告警
多粒度(1m、5m、30m、4小时)的历史数据汇总,具有可配置保留
完全支持跨越多个线程的异步请求
具有移动支持的响应式用户界面
 
工具性能损耗:
开销非常之小,损耗在低微妙级别,小到很难在大多数应用程序上测量出,这些开销可以在这些应用程序运行过程中忽略不计
与市面上顶级的java APM工具做性能损耗对比
 
工具的功能:transactions事件模块,errors错误日志模块,jvm模块,reporting报表模块,synthetic模块,incidents模块,系统配置模块
界面demo展示
 
工具的部署使用:
 
一,先安装cassandra数据库,前提需要安装好jdk环境
Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源。Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型)。Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。
 
 
(1)下载Cassandra安装包,tar -zxvf解压到/home/chenxi/soft/cassandra目录。
 
(2)在/home/chenxi/soft/cassandra目录下建立data;commitlog;saved_caches三个目录,Cassandra服务运行时会写入相应数据。
 
(3)chown -R将/home/chenxi/soft/cassandra目录的所有者改为非root用户,因为cassandra 不支持root用户启动,需要切换到其他用户 sudo su - chenxi,才能正常启动cassandra进程。
 
(4)修改cassandra的conf目录中的cassandra.yaml文件,将本机IP作为Seed服务器。
 
(5)./cassandra启动服务,./nodetool status检验服务状态。

二,部署glowroot-central
下载glowroot-central与glowroot(代理)
 
(1)将安装包解压到/home/chenxi/soft/glowroot-central目录,更改目录所有者权限。
 
(2)修改glowroot-central.properties配置文件,cassandra.contactPoints参数更改成cassandra服务器地址,其余参数可以保持默认。
 
(3)启动服务:java -jar glowroot-central.jar
 
三,部署glowroot代理
(1)把glowroot-0.13.6-dist安装包解压到/home/chenxi/soft/glowroot-agent/目录,更改目录所有者权限。
 
(2)在被监控应用服务的jvm配置处加上如下参数。
注:agent.id要保持唯一,否则同一服务多个节点可能不能识别。
 
(3)在/home/chenxi/soft/glowroot-agent/glowroot代理目录下创建并编辑glowroot.properties文件,添加如下参数:
agent.rollup.id=test-tomcat
collector.address= http://控制器地址:8181
注:agent.rollup.id可用于跨多个代理(如跨集群)。
 
(4)在/home/chenxi/soft/glowroot-agent/glowroot代理目录下创建admin.json文件,修改绑定地址 "bindAddress": "代理服务地址"
 
(5)检查关闭服务器防火墙service iptables status
 
(6)用浏览器运行监控: http://localhost:4000
 
 
官网参考地址:https://glowroot.org/

开源性能监控分析工具glowroot的更多相关文章

  1. Zynga 开源其服务器性能监控分析工具 zPerfmon

    流年不利的社交游戏服务商Zynga近日在官方博客宣布开源zPerfmon——该工具负责监控Zynga数以千计的社交游戏服务器.zPerfmon的源代码目前已经上传至Github. 包括Facebook ...

  2. MiniProfiler性能监控分析工具在.NET项目中的使用

    MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...

  3. UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

    摘要:UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据:同时提供JVM基本参数获取.内存dump.线程分析.内存分配采样和热点方法分析等功能. 引言 ...

  4. Linux性能监控分析命令(四)—top命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

  5. 10 个强大的开源 Web 流量分析工具(转帖)

    Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍 ...

  6. Web服务器性能监控分析与优化

    Web服务器性能监控分析与优化 http://www.docin.com/p-759040698.html

  7. Linux性能监控分析命令(五)—free命令介绍

    性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...

  8. Linux性能监控分析命令(三)—iostat命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...

  9. Linux性能监控分析命令(二)—sar命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

随机推荐

  1. nginx&http 第六章 http 协议学习 1

    1.HTTP方法 GET :获取资源 ,GET 方法用来请求访问已被 URI 识别的资源 POST:传输(上传和下载)实体主体 ,POST 方法用来传输实体的主体.虽然用 GET 方法也可以传输实体的 ...

  2. Socket 连接错误及原因

    ECONNABORTED   该错误被描述为"software caused connection abort",即"软件引起的连接中止".原因在于当服务和客户 ...

  3. 机器学习3《数据集与k-近邻算法》

    机器学习数据类型: ●离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所 有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度. ●连续型数据:交量可以在某个范围内取任 ...

  4. 加速OSD的启动

    ceph是目前开源分布式存储里面最好的一个,但是在高负载下会有很多异常的情况会发生,有些问题无法完全避免,但是可以进行一定的控制,比如:在虚拟化场景下,重启osd会让虚拟机挂起的情况 重新启动osd会 ...

  5. shell脚本的自动交互

    使用expect来自动应答shell的交互 #!/usr/bin/expect spawn openssl req -new -key server.key -out server1.csr expe ...

  6. threading中的其他部分方法

    import threading def wahaha(n): print(n, threading.current_thread()) # 1 <Thread(Thread-1, starte ...

  7. python杂乱知识点

    1. =  == is =: ==:比较 值是否相等 is:比较,比较的是内存地址 2. id(内容):得到内容的起始内存地址 3.数字,字符串,存在小数据池的概念,如果如果创建了一样的数字或者字符串 ...

  8. 如何使用GitHub创建Maven私有仓库

    [Github上创建仓库] 首先,在GitHub上创建自己的仓库(mvn-repo): [配置本地setting文件] 找到本地的maven settings文件,配置server: 有两种选择,可以 ...

  9. LeetCode 中等题解(4)

    40 组合总和 II Question 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates ...

  10. php(tp5)生成条形码

    因为公司业务需要,研究了一下条形码 1.下载barcodegen扩展包 官网地址:https://www.barcodebakery.com 2.下载完后解压至 extend 文件夹里面,然后复制以下 ...