[Buildbot-commits] [Buildbot] #2461: Add support for providing and graphing data charts of build statistics over time.

Buildbot trac trac at buildbot.net
Tue May 14 14:53:11 UTC 2013

#2461: Add support for providing and graphing data charts of build statistics over
Reporter:  juj           |       Owner:
    Type:  project-idea  |      Status:  new
Priority:  major         |   Milestone:  0.9.+
 Version:  0.8.7p1       |  Resolution:
Keywords:                |

Comment (by juj):

 I have recently added this feature into MathGeoLib, see here:


 How does it work?

 1. Each build slave builds a test executable as part of its build.
 2. The test executable is programmed to output a test results JSON file to
 local disk. See an example:
 3. A FileUpload step is performed to upload this to WWW server. The WWW
 server stores all .json result files across time in a single web-
 accessible folder.
 4. A custom WWW page was created
 (http://clb.demon.fi/dump/MathGeoLib_testresults/index.html) that
    a. is given a HTTP GET parameter of where to locate the JSON results
    b. loads all JSON files (by git revision hash) using jQuery.
    c. assembles the loaded JSON data into a format displayable using
    d. Outputs results graph to user.

 I see that anyone looking to integrate this to their own project will need
 to perform similar kind of custom results file creation process
 via their application, to be able to graph custom data.

 This whole process is very specific to MathGeoLib. I see a lot of room for
 further work:
   - Generalize the machinery to that it is useful for other domains, open
      - Should the results JSON file format be 'standardized' on?
      - What other types of graphs would be useful?
   - Simplify the machinery that it's easier to integrate to new projects.
   - Integrate the graph rendering page to waterfall.
   - Add support for drawing graphs for changes over time. The current page
 draws data only for a single git commit hash.
   - Add support for drawing graphs from internal data produced by
 Buildbot. By internal data I mean e.g. the properties produced by build
     Example: http://clb.demon.fi:8113/builders/vs2012-MathGeoLib-32bit-
     One might want to graph time elapsed in the build step, and how it
 varies across time. Users can also defined properties, and there are
 properties specific to certain steps, like the "warnings-count" on the
 example page.

 There is a JSON API to buildbot to retrieve these properties, so perhaps
 that would be a starting point.

 On a very high-level scale, I see there being two types of data: build
 properties that are automatically produced by BuildBot steps, and custom
 data that's internal to the project and possibly very domain-specific,
 like the profiling data generated by MathGeoLib.

 Graphing buildbot-generated data should be super-easy (could be automatic
 even without user configuration needed?), but graphing project-generated
 data will definitely require a custom procedure like the one developed as
 a proof-of-concept above.

Ticket URL: <http://trac.buildbot.net/ticket/2461#comment:4>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation

More information about the Commits mailing list