其他
3K+ Stars 开源的性能监控、统计神器
每天给大家带来网站工具、开源社区项目、开源软件、安卓&IOS软件等黑科技!
公众号推送改版,请务必点击【爱编程爱技术】右上角【设为星标🌟】,这样才不会错过最新的文章推送。
如果你们有什么好的建议,也可以在后台留言。
创作不易,希望大家给一点鼓励,把公众号设置为"星标",给文章点下"赞"和"在看",谢谢大家!每日持续更新,望宝子们多多支持~
无法知道每个服务的运行情况,例如,某一台服务它目前的 QPS 是多少?它的平均延迟是多少,99% 的延迟是多少,99.9% 的延迟又是多少? 如何评估服务的容量,随着服务的调用量越来越大,这个服务需要多少机器来支撑?什么时候应该加机器?
当服务出现抖动时,如何判断是 DB、Cache 还是下游服务引起的? DB 和 Cache 响应延迟是多少? 某一个接口响应时间慢,如何定位是哪个方法引起的? 每个服务的负载是否均衡?
🎨️ 功能特性
开源免费,简单快速、无侵入、透明化接入 针对高并发、低延迟应用设计 高性能: 单线程支持每秒 1600 万次 响应时间的记录,每次记录只花费 63 纳秒 无侵入: 采用 JavaAgent 方式,对应用程序完全无侵入,无需修改应用代码 低内存: 采用内存复用的方式,整个生命周期只产生极少的临时对象 高实时: 支持秒级统计,最低统计粒度为 1 秒,并且是全量统计,不丢失任何一次记录 可配置:可指定统计或不统计某些类、某些方法 拥有极致的性能,不影响应用的 GC,不影响应用的 RT 能统计出方法的 RPS、Avg、Min、Max、StdDev、TP90、TP95、TP99、TP999 等性能指标 性能指标的处理可以定制化,例如:日志收集、上报给日志收集服务等
🧰 快速启动
# MyPerf4J-ASM.zip 地址:
https://github.com/LinShunKang/Objects/blob/master/zips/CN/MyPerf4J-ASM-3.4.0-SNAPSHOT.zip?raw=true
app_name
、metrics.log.xxx
和 filter.packages.include
的值-javaagent:/path/to/MyPerf4J-ASM.jar
-DMyPerf4JPropFile=/path/to/MyPerf4J.propertie
MyPerf4J Method Metrics [2020-01-01 12:49:57, 2020-01-01 12:49:58]
Method[6] Type Level TimePercent RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999
DemoServiceImpl.getId2(long) General Service 322.50% 6524 0.49 0 1 0.50 6524 0 1 1 1 1 1
DemoServiceImpl.getId3(long) General Service 296.10% 4350 0.68 0 1 0.47 4350 1 1 1 1 1 1
DemoServiceImpl.getId4(long) General Service 164.60% 2176 0.76 0 1 0.43 2176 1 1 1 1 1 1
DemoServiceImpl.getId1(long) General Service 0.00% 8704 0.00 0 0 0.00 8704 0 0 0 0 0 0
DemoDAO.getId1(long) DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0
DemoDAO.getId2() DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0
-javaagent:/path/to/MyPerf4J-ASM.jar
-DMyPerf4JPropFile=/path/to/MyPerf4J.properties
🔥 监控指标预览
MyPerf4J 默认支持使用 InfluxDB 进行数据存储,向用户指定的 InfluxDB 中写入 LineProtocol 格式的性能统计数据。监控的效果如下图:
JVM GC
JVM Thread
JVM Memory
MyPerf4J 官方文档中提供了以 InfluxDB 为数据源的 Grafana Dashboard,感兴趣的宝子可以参考官方文档继续深究~
最后附上项目的相关链接:
Github开源地址:
https://github.com/LinShunKang/MyPerf4JGitee开源地址:
https://gitee.com/mirrors/MyPerf4J中文开发手册:
https://github.com/LinShunKang/MyPerf4J/wiki/Chinese-Doc往期推荐: