BuildButler
Jenkins

Jenkins Local

Self-contained Jenkins plugin that stores CI data directly in your own PostgreSQL database and displays it within the Jenkins UI.

The Jenkins Local plugin is a fully self-contained solution. It stores all CI data in your own PostgreSQL database and surfaces analytics directly inside the Jenkins UI — no external services, no internet required.

BuildButler Local dashboard inside Jenkins

How it works

┌────────────────────────────────────────────────────────┐
│                    Your Infrastructure                 │
│                                                        │
│  ┌─────────────┐    ingest    ┌────────────────────┐   │
│  │   Jenkins   │─────────────▶│   PostgreSQL DB    │   │
│  │  (+ plugin) │              │   (your own)       │   │
│  └─────────────┘              └────────────────────┘   │
│         │                              │               │
│         └──────── reads ───────────────┘               │
│         │                                              │
│  ┌──────▼──────────────────────────────┐              │
│  │  BuildButler dashboard (Jenkins UI) │              │
└──┴─────────────────────────────────────┴──────────────┘

Data never leaves your infrastructure. The plugin writes directly to Postgres and reads from it to render the BuildButler dashboard panels inside Jenkins.

Prerequisites

  • Jenkins 2.387.3 or later
  • A PostgreSQL 14+ database accessible from Jenkins
  • Java 11+

Installation

  1. Download the buildbutler-local.hpi plugin from the Downloads page.
  2. In Jenkins, go to Manage Jenkins → Plugins → Advanced.
  3. Under Deploy Plugin, upload the .hpi file and click Deploy.
  4. Restart Jenkins when prompted.

Configuration

After installation, go to Manage Jenkins → BuildButler Local to configure the plugin.

Build Data Collection

Control which jobs are monitored and how build logs are collected.

Build Data Collection configuration

Database Connection

Enter your PostgreSQL connection details. Click Test Connection to verify, then Initialize Schema to create the required tables on first setup.

Database Connection configuration

Log Storage (S3-Compatible)

Optionally configure an S3-compatible object store (AWS S3, MinIO, etc.) to store raw build console logs.

Log Storage S3 configuration

Slack Notifications

Configure a default Slack webhook and per-event overrides. Toggle which build events trigger notifications and how many console log lines to include.

Slack Notifications configuration

Email Notifications (SMTP)

Configure your SMTP server to send email alerts on build events.

Email Notifications SMTP configuration

Queue Alerts

Define rules that fire when the build queue exceeds a threshold for a sustained duration. Rules are expressed as a JSON array and support total-queue and per-label modes.

Queue Alerts configuration

Flaky Test Detection

Configure how BuildButler identifies flaky tests — set the number of status transitions, the evaluation window, and the reliability threshold below which a test is flagged.

Flaky Test Detection configuration

JIRA Integration

Connect BuildButler to your Jira instance to link build failures to tickets directly from the dashboard.

JIRA Integration configuration

AI Provider

Configure an AI provider (Anthropic, OpenAI, or Google) to enable the Ask AI feature for natural language queries about your build data.

AI Provider configuration

Data ingested

The plugin hooks into the Jenkins build lifecycle and collects:

DataWhen
Build result, status, durationOn build completion
Pipeline stage execution timesOn pipeline completion
Test results (JUnit/TestNG/etc.)On build completion
Agent status and availabilityPeriodically (every 60s)
Build console logsOn build completion

Multiple Jenkins controllers

If you run multiple Jenkins controllers, each can be configured to write to the same PostgreSQL database. Install the plugin on each controller and configure it with a unique Server Label — each controller gets its own label so data can be filtered by source in the dashboard.

Network requirements

The plugin is fully self-contained — it writes build data directly to your own PostgreSQL database and handles everything locally. There is no dependency on api.buildbutler.dev or any BuildButler-hosted infrastructure.

Outbound connections are only made to the following destinations, depending on which features are enabled:

DestinationPurpose
us.i.posthog.comAnonymous usage analytics
hooks.slack.comSlack webhook notifications
api.openai.comAI natural language queries
api.anthropic.comAI natural language queries
generativelanguage.googleapis.comAI natural language queries
quickchart.ioChart image generation for email templates
User-configured Jira URLJira integration

Troubleshooting

SymptomLikely causeFix
Connection refusedWrong host/portVerify Postgres is reachable from Jenkins
Authentication failedWrong credentialsCheck username and password
Schema not createdInsufficient DB permissionsGrant CREATE privileges to the DB user
No data appearingPlugin not enabled on jobEnable BuildButler in the job configuration