Skip to main content

"Profiler for buildbot master and its UI"

Project description

This plugin implements a profiler for buildbot master.

  • It uses statistical profiling loosely based on plop https://github.com/bdarnell/plop

  • Suitable for prod as statistical profiling is very low overhead

  • Profiles all threads including main thread and db threads

  • Removes noise samples when the threads are actually in the main loop

  • In-browser UI based on nvd3 and d3-flame-graph

  • Show cpu and memory percent over time

  • flame graph can be restricted to a subset of the trace

  • Detailed caller/callee are displayed when clicking on a function

Usage

installation:

pip install buildbot_profiler

then in master.cfg:

c['www']['plugins']['profiler'] = True

Alternatively, you can install it in service mode, without the UI

c['services'] = [util.ProfilerService()]

ProfilerService takes following arguments:

ProfilerService(frequency=100, gatherperiod=30 * 60, mode='virtual', basepath=None, wantBuilds=100)
  • frequency: the profiling frequency in HZ. Not that if there is no activity during a profiling timer, no data will be recorded.

  • gatherperiod: the period during which the profiler works on one file. By default a new json file is created every 30min with the profile of the last 30min. Note that if there is no activity the gather period might be longer.

  • mode: profiling timer to use. Can be:

    • prof: use SIG_PROF timer,

    • virtual: use SIGVTALRM timer,

    • real: use SIGALRM timer,

  • basepath: the base path where to store the json files. (defaults to (master's basedir)/prof_)

  • wantBuilds: if this is > 0 then the last N builds are stored along side the profile data, for debug purpose.

Standalone Viewer

A standalone viewer is provided for offline browse of user submitted profiles.

bbprofiler

Then you can open your browser on http://localhost:8080

Screenshot

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buildbot-profiler-1.1.1.tar.gz (810.1 kB view details)

Uploaded Source

Built Distribution

buildbot_profiler-1.1.1-py2.py3-none-any.whl (848.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file buildbot-profiler-1.1.1.tar.gz.

File metadata

File hashes

Hashes for buildbot-profiler-1.1.1.tar.gz
Algorithm Hash digest
SHA256 30c5f5fce1c2312180b3f6a5f2c2753a84868becfd41704ba5f4053cb350fc76
MD5 0d2d44030935cc6d92e1fc4e1fec1869
BLAKE2b-256 e1b5f4e6f9a04947b2e274abf7abbcbd0bd47f733dded71fdc41000cd9101d23

See more details on using hashes here.

File details

Details for the file buildbot_profiler-1.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for buildbot_profiler-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e3436f7554646d3fdb675a8bbeec5691e083e7a598903c2d781edea2031ab45a
MD5 8bb4f8f151794487e7cae92d0c92d6b6
BLAKE2b-256 b212030e6f2aecaba137b077fdb493d3af74521b65fcbe24d482e359acc5512a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page