跳转到主要内容

"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

屏幕截图

https://raw.githubusercontent.com/tardyp/buildbot_profiler/master/screenshot.png

变更日志

  • 1.3.1 升级构建到 webpack,修复记录时长和采样率的参数解析

  • 1.2.3 修复针对 python2 的错误

  • 1.2.2 修复针对 python3 的错误

  • 1.2.1 修复负载计算中的问题

  • 1.2.0 将火焰图折叠起来,以便您可以探索更大的跟踪。

    修复服务,以便在运行之间重置跟踪。

  • 1.1.0 添加一个服务,使用分析器而无需烦恼用户界面。

  • 1.0.0 初始版本

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

此版本没有可用的源分布文件。请参阅有关 生成分布存档 的教程。

构建分布

buildbot_profiler-1.3.1-py2.py3-none-any.whl (517.5 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面