超牛逼!这款开源性能监控系统真强大~
点击关注公众号,回复“1024”获取2TB学习资源!
当网站上线后,流量增加或短暂功能故障,都会造成使用者体验相当不好,而这时该怎么快速找到性能的瓶颈呢?通常 CPU 达到 100% 时,有时候也很难复制及找出关键问题点。
本篇文章,我们会介绍一套工具叫 Pyroscope,让开发者可以快速找到性能瓶颈的代码。Pyroscope 目前可以支持 Python, Ruby 或 Go 的环境。本文笔者会针对 Go 环境做介绍。
什么是 Pyroscope?
Pyroscope 是一套开源的性能即时监控平台,简单的 Server 及 Agent 架构,让开发者可以轻松监控代码性能,不管你要找 10 秒或几分钟内的性能数据,都可以快速的即时呈现,开发者也不用在意装了此监控会造成任何性能上的负担。Pyroscope 背后的储存采用 Badger 这套 Key-Value 数据库,性能上是非常好的。目前只支持 3 种语言 (Python, Ruby 及 Go) 未来会预计支持 NodeJS。假设您还没引入任何性能分析工具或平台,那 Pyroscope 会是您最好的选择。
Pyroscope 架构
如果你有打算找性能分析工具平台,Pyroscope 提供了三大优势,让开发者可以放心使用
低 CPU 使用率,不会影响既有平台
可储存好几年的资料,并且可用 10 秒细颗粒度查看资料
压缩储存资料,减少浪费硬盘空间
架构只有分 Server 和 Agent,除了 Go 语言之外,Python 跟 Ruby App 都是透过 pyroscope 指令启动相关 app 来监控系统效能。
启动 Pyroscope 服务
启动方式有两种,第一是直接用 docker 指令启动。
$ docker run -it -p 4040:4040 pyroscope/pyroscope:latest server
另一种可以用 docker-compose 启动。
---
services:pyroscope:image: "pyroscope/pyroscope:latest"ports:- "4040:4040"command:- "server"
安装 Agent
在 Go 语言中使用
本篇用 Go 语言当作示例,先 import package
import "github.com/pyroscope-io/pyroscope/pkg/agent/profiler"
接著在 main.go 写入底下代码即可:
profiler.Start(profiler.Config{ApplicationName: "simple.golang.app",ServerAddress: "http://pyroscope:4040",
})
其中 http://pyroscope 可以换成自定义的 hostname 即可,接着打开上述网址就可以看到性能监控的画面了。
在 Python 和 Ruby 语言中使用
# If using Python
$ pyroscope exec python manage.py runserver # If using Ruby
$ pyroscope exec rails server
心得
这套工具相当方便,在 Go 语言虽然可以用 pprof 快速找到问题,但是难免还是需要手动的一些地方才可以查出性能瓶颈,有了这套平台,就可以将全部 App 都进行监控,当使用者有任何问题,就可以快速透过 Pyroscope 查看哪些代码出了问题。
更多关于监控系统的推荐与介绍,请参阅公众号专栏文章(直接点击右边的文字直达专栏处):监控系统
作者:小恶魔
原文:http://t.cn/A6c0G3dm
推荐阅读 点击标题可跳转
又一款超牛逼的性能调优利器 — 火焰图
一互联网公司被警方一锅端了!这种岗位千万别干!
入职 6 个月,被裁员。。。
武大 94 年博士年薪 201 万入职华为!学霸日程表曝光
或将取代云计算!下一个技术风口来了
安排几款实用的内网穿透工具+教程
OAuth2 vs JWT,到底怎么选?
SpringCloud Gateway 详解
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
随手在看、转发是最大的支持!
超牛逼!这款开源性能监控系统真强大~相关推荐
- 挺带劲!这款免费开源的监控系统真强大~
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 大家好,我是民工哥. 一提到监控系统,大家很快就能想到Zabbix.Prometheus等,今天,民工哥 ...
- 挺带劲,这款国人开源的监控系统功能真强大~
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:小黄鸭编程社区 项目简介 集监控点监控.日志监控.数 ...
- 还在付费使用 XShell?我选择这款超牛逼的 SSH 客户端,完全免费!
点击关注公众号,回复"1024"获取2TB学习资源! 分享过 FinallShell 这款 SSH 客户端,也是我目前常用的 SSH 客户端工具,FinalShell 使用起来方便 ...
- 超牛逼!100 个开箱即用的 Shell 脚本,拿好了~
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的 ...
- 挺带劲!这款开源数据库迁移工具超牛逼
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 迁移数据库可以说是日常工作中的家常便饭,不过,如果一不小心把数据库搞炸了,那就麻烦大了(搞不好就得背锅了 ...
- 几款超牛逼的 SSH 客户端工具!好用到爆
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 一.Windows 想来占有量最大的操作系统,得非莫属了吧,相信 Windows 系统肯定是陪伴了很多小 ...
- 几款超牛逼的终端命令行工具!好用到爆
点击关注公众号,回复"1024"获取2TB学习资源! 终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法 ...
- 再见 Teamviewer!这款国产轻量级远程桌面软件超牛逼
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 对很多 Mac 用户来说,想用远程控制请教下大佬,太难了. 在 Windows 上一个 QQ 就能搞定的 ...
- 最牛逼的性能监控系统!集强大功能于一身
点击关注公众号,Java干货及时送达 SkyWalking 是一个应用性能监控系统,特别为微服务.云原生和基于容器(Docker, Kubernetes, Mesos)体系结构而设计.除了应用指标监控 ...
最新文章
- 为什么Java中只有值传递?
- python wasm_Python-pywasm-美味尝鲜
- 兼容浏览器将NodeList对象转换为数组
- jdbc oracle存储过程,java jdbc 执行oracle存储过程
- 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)
- 拆分备份(还原)比较大的数据库为多个bak文件
- Visio的VBA初探
- GDB Watchpoints
- 程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害!
- loj10131 暗的连锁
- AcWing 1952. 金发姑娘和 N 头牛(离散化+差分)
- IO中的阻塞、非阻塞、同步、异步概念分析详解(通俗易懂)
- 公司周刊-非常6+1—营销平台小组
- Syncfusion的社区许可及免费电子书和白皮书
- 硬盘助手写入文件的正确提取
- 第11章 Java枚举与泛型总结
- 计算机专业毕业顶岗实习周记,计算机专业毕业顶岗实习周记10篇参考).doc
- 数商云跨境电商平台解决方案 1
- linux 查看dhcp dns,RHEL6 DNS+DHCP+DDNS
- TestFlight用法(iOS APP官方测试工具)