BuildButler

Pipeline Analytics

Understand build duration trends, success rates, queue times, and more with BuildButler's analytics dashboards.

BuildButler collects and aggregates metrics from every Jenkins build to give you a clear picture of pipeline health over time.

Dashboard overview

The Analytics tab shows four key metric cards:

  • Build Success Rate — percentage of passing builds over the selected time window.
  • Avg Build Duration — mean wall-clock time across all builds.
  • P95 Duration — 95th-percentile duration to catch slow outliers.
  • Queue Wait Time — how long builds wait for an executor before starting.

Filtering and grouping

Use the toolbar to narrow the data:

Timeframe:   Last 24h | 7d | 30d | Custom range
Group by:    Job | Folder | Label | Branch
Instance:    All | Production | Staging

The duration chart plots every build as a data point. BuildButler automatically fits a trend line so you can spot regressions at a glance.

Duration (s)

│       ·  ·
│    ·  ·     ·  · ·
│ · ·  ·  ·  ·  ·        ← trend line
│  ·      ·
│──────────────────────── Time

Detecting regressions

When the trend line slope exceeds a configurable threshold (default: +10 % over 7 days), BuildButler flags the job with a Regression badge and can optionally send a notification.

Success rate heatmap

The heatmap view shows success rate per job per day. Red cells indicate days with high failure rates — hover for details.

Exporting data

You can export any chart as:

  • CSV — raw data points for custom analysis
  • PNG — screenshot for reports and presentations
  • JSON — structured data for programmatic use
# Export via the API
curl -H "Authorization: Bearer <token>" \
  "https://buildbutler.example.com/api/v1/analytics/export?format=csv&job=my-pipeline&range=30d" \
  -o analytics.csv

Custom metrics

BuildButler supports user-defined metrics via the BUILDBUTLER_METRICS build parameter. Add a JSON blob to your Jenkinsfile:

// Jenkinsfile
pipeline {
  agent any
  stages {
    stage('Test') {
      steps {
        sh 'npm test'
      }
      post {
        always {
          buildButlerMetrics([
            [name: 'test_count', value: readFile('test-count.txt').trim()],
            [name: 'coverage',   value: readFile('coverage.txt').trim()],
          ])
        }
      }
    }
  }
}

Custom metrics appear as additional columns in the analytics table and can be charted independently.

On this page