Child pages
  • Global Build Stats Plugin - JSON & REST APIs

Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View global-build-stats on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This wiki entry is intended to describe global-build-stats REST API to manually gather informations about your jenkins build statistics.

Build stats chart

You can retrieve chart depending on its id, by requesting the following URL : <jenkins/hudson_url>/plugin/global-build-stats/showChart?buildStatId=<Chart id>

<Chart id> can be retrieved on the "edit chart" screen (see below).

By providing a chart id, no permission checking will be performed against current logged user.
That's why it represents a perfect use case to share global build stats chart url between team members / managers.
But beware : if, in the "edit chart" screen, you re-generate a new chart id, "old" url won't display anything (typically, useful to "rollback" the diffusion of chart url)

Build stats chart overview

You can dynamically generate a new chart, by requesting the following URL : <jenkins/hudson_url>/plugin/global-build-stats/createChart?title=<chart title>&buildStatWidth=<chart width>&buildStatHeight=<chart height>&historicScale=<chart scale>&historicLength=<chart length depending on historicScale>&jobFilter=<job filtering>&nodeFilter=<node filtering>&launcherFilter=<launcher filtering>&successShown=<displays successes ?>&failuresShown=<displays failures ?>&unstablesShown=<displays unstables ?>&abortedShown=<displays aborted builds ?>&notBuildsShown=<displays not builds>&buildStatusesShown=<displays build statuses ?>&yAxisChartType=<type of y axis fod build status>&totalBuildTimeShown=<displays total build time ?>&averageBuildTimeShown=<displays average build time ?>

Only Jenkins/Hudson ADMINISTRATORS will have access to this url (this url is typically used for chart overview). If you don't want to check permissions, use the previous URL.

Detailed values for different fields are given here :

  • buildStatWidth & buildStatHeight : should be number of pixels
  • historicScale : should be an item in { HOURLY, HOURLY_FROM_NOW, DAILY, DAILY_FROM_NOW, WEEKLY, WEEKLY_FROM_NOW, MONTHLY, MONTHLY_FROM_NOW, YEARLY, YEARLY_FROM_NOW }
  • historicLength : should be a number of steps in historicScale. For example, if historicScale is equal to DAILY, historicLenght will corresponds to "number of DAYS"
  • jobFilter : should be equal to ALL or fieldRegex(regex for job name)
  • nodeFilter : should be equal to ALL or fieldRegex(regex for node name). Special node regex ^master$ can be used to filter only on jobs executed on the master.
  • launcherFilter : should be equal to ALL or fieldRegex(regex for user name who launched the build). Special launcher regex ^SYSTEM$ can be used to filter only on jobs that has been launched automatically by jenkins/hudson.
  • successShown, failuresShown, unstablesShown, abortedShown, notBuildsShown, buildStatusesShown, totalBuildTimeShown, averageBuildTimeShown : should be booleans
  • yAxisChartType : is only used if buildStatusesShown=true. Should be an item in { COUNT, PERCENTAGE }

Build stats chart configuration data

You can retrieve persisted build stat chart configuration by requesting the following URL : <jenkins/hudson_url>/plugin/global-build-stats/api/json?depth=2

Here is some data sample returned by this call :

"buildStatConfigs":
[
  {
    "id":"gdJTZ1t!vf6nvnLZcyctEY4495xkn0ep",
    "buildStatTitle":"Commits build des 15 derniers jours (pas de rouge !!)",
    "buildStatWidth":800,
    "buildStatHeight":600,
    "historicLength":15,
    "historicScale":"DAILY_FROM_NOW",
    "dimensionsShown": ["BUILD_COUNTER","BUILD_TOTAL_DURATION","BUILD_AVERAGE_DURATION"],
    "averageBuildTimeShown":true,
    "buildStatusesShown":true,
    "yAxisChartType":"COUNT"
    "totalBuildTimeShown":true,
    "buildFilters":
    {
      "jobFilter":"fieldRegex(.*commit\\sbuild.*)",
      "nodeFilter":"ALL",
      "abortedShown":true,
      "failuresShown":true,
      "notBuildShown":false,
      "successShown":true,
      "unstablesShown":true
    },
  },
  etc...
]

This most important information is the "id" field which will be useful for next section.
jobFilter and nodeFilter values should be either "ALL" or "fieldRegex(<put here a regex>)".
yAxisChartType should be provided only if buildStatusesShown is set to true.
dimensionsShown attribute is redundant with averageBuildTimeShown, buildStatusesShown & totalBuildTimeShown attributes.

Build stats chart data

You can retrieve persisted build stat configuration displayed via a chart by requesting the following URL : <jenkins/hudson_url>/plugin/global-build-stats/api/json?depth=2&buildStatConfigId=<build stat chart id>

Here is some data sample returned by this call :

"dimensions":
  [
    // Build result dimension (will appear only if "display build statuses" is checked on buildStatConfig)
    {
       // Columns represent time scales
       "columns":
         [
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725}
	 ],
        // Rows represent possible build results for the buildStatConfig (statuses checked in build stat config's status filter)
	"rows":
	 [
	   "5) Success",
	   "4) Failures",
	   "3) Unstables",
	   "2) Aborted",
	   "1) Not build",
	   "5) Success",
	   "4) Failures",
	   "3) Unstables",
	   "2) Aborted",
	   "1) Not build",
	   "5) Success",
	   "4) Failures",
	   "3) Unstables",
	   "2) Aborted",
	   "1) Not build",
          ],
         // Values represent cell intersections for rows & columns, corresponding to current dimension (ie number/percentage of builds for [time scale, build status])
	 "values":
	  [
	    38,0,0,0,0,
	    24,0,0,0,0,
	    21,2,0,0,0
	  ]
    },
    // Total build time dimension
    {
       // Columns represent time scales (will appear only if "display total build time" is checked on buildStatConfig)
       "columns":
         [
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725}
	 ],
	"rows":
	 [
	   "Total build time",
	   "Total build time",
	   "Total build time"
	 ],
         // Values represent cell intersections for rows & columns, corresponding to current dimension (ie total build time of builds for every time scale)
	 "values":
	 [
	    1955.534,
	    2689.148,
	    5422.011
	 ]
    },
    // Average build time dimension (will appear only if "display average build time" is checked on buildStatConfig)
    {
       // Columns represent time scales
       "columns":
         [
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725},
	  {"end":1284413298725,"start":1284326898725}
	 ],
	"rows":
	 [
	   "Avg build time",
	   "Avg build time",
	   "Avg build time"
	 ],
         // Values represent cell intersections for rows & columns, corresponding to current dimension (ie average build time of builds for every time scale)
	 "values":
	 [
	    51.46142105263158,
	    112.04783333333333,
	    235.73960869565218
	 ]
    }
  ]
  • No labels

5 Comments

  1. Unknown User (geertpeeters)

    What do you mean with the "edit chart" screen? Where can I find it?

    1. Unknown User (fcamblor)

      Just updated wiki entry to be more precise on the way to retrieve global build chart id (by clicking on the "edit button" on the global build stats page)

  2. Unknown User (darkweasel)

    Does the API expose just the data, without all the chart data? Or is there a better way to get at the historical build data?

    1. Unknown User (fcamblor)

      Nope : data on the global build search is not yet provided

  3. Unknown User (adrianblakey)

    This capability is not exposed in the UI. Please can you provide a fix to correct that defect?

    There does seem like there is support for it in the code. See line 290 https://github.com/jenkinsci/global-build-stats-plugin/blob/master/src/main/java/hudson/plugins/global_build_stats/GlobalBuildStatsPlugin.java


    I simply want to display these charts within a frame on another site that shows our metrics. I can not find an easy way to do this. It seems like this plugin has to be be run as "administrator" - I need a way to create a role that only has the rights to run the display of the global stats. Can you fix this?