"buildbot主程序及其UI的剖析器"
项目描述
此插件实现了buildbot主程序的剖析器。
它使用基于plop的统计剖析,plop的网址为https://github.com/bdarnell/plop
适用于生产环境,因为统计剖析的开销非常低
剖析所有线程,包括主线程和数据库线程
当线程实际上处于主循环时,删除噪声样本
基于nvd3和d3-flame-graph的浏览器UI
显示随时间变化的CPU和内存百分比
火焰图可以限制在跟踪的子集
当点击函数时,显示详细的调用者和被调用者
用法
安装
pip install buildbot_profiler
然后在master.cfg中
c['www']['plugins']['profiler'] = True
或者,您可以在服务模式下安装它,不带UI
c['services'] = [util.ProfilerService()]
ProfilerService接受以下参数
ProfilerService(frequency=100, gatherperiod=30 * 60, mode='virtual', basepath=None, wantBuilds=100)
frequency: 剖析频率(单位为Hz)。注意,如果没有活动在剖析计时器期间,则不会记录数据。
gatherperiod: 剖析器在一个文件上工作的周期。默认情况下,每30分钟创建一个新的json文件,包含最后30分钟的剖析数据。注意,如果没有活动,收集周期可能会更长。
mode: 要使用的剖析计时器。可以是
prof: 使用SIG_PROF计时器,
virtual: 使用SIGVTALRM计时器,
real:使用 SIGALRM 计时器。
basepath:存储 JSON 文件的基准路径。默认为 (master's basedir)/prof_。
wantBuilds:如果此值大于 0,则将最后 N 次构建存储在配置文件数据旁边,以供调试使用。
独立查看器
为离线浏览用户提交的配置文件提供独立查看器。
bbprofiler
然后您可以在浏览器中打开 http://localhost:8080
屏幕截图
变更日志
1.3.1 升级构建到 webpack,修复记录时长和采样率的参数解析
1.2.3 修复针对 python2 的错误
1.2.2 修复针对 python3 的错误
1.2.1 修复负载计算中的问题
- 1.2.0 将火焰图折叠起来,以便您可以探索更大的跟踪。
修复服务,以便在运行之间重置跟踪。
1.1.0 添加一个服务,使用分析器而无需烦恼用户界面。
1.0.0 初始版本