Skip to content

Info

License: Free — part of the universal collection tier.

Jenkins CI

The jenkins probe monitors a Jenkins controller via its open HTTP REST API, reporting job status counts, per-job build duration and number, node and executor counts, and build queue depth.

Quick start

# probes.d/10-jenkins.yaml — each file under probes.d/ is a YAML array of probes
- name: jenkins
  type: jenkins
  params:
    endpoint: https://jenkins.example.com
    username: monitor
    api_token: ${secret:jenkins.api_token}   # OS secret store; inline plaintext is auto-sealed on install

Parameters

Parameter Must set Default Description
endpoint Yes - Base URL of the controller. Example: https://jenkins.example.com
username In practice - User the API calls authenticate as; empty queries anonymously
api_token In practice - API token of that user. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file
interval No 60 Seconds between collections
timeout No 15 Request timeout in seconds
instance_name No - Stable identity of this controller instead of the one it reports

Metrics

Metric Unit Description
senhub.jenkins.up 1 1 when the last cycle reached the Jenkins controller
senhub.jenkins.job.count {job} Jobs by last-build status (success/failure/unstable/aborted), tagged with status
senhub.jenkins.job.duration s Duration of the last build per job, tagged with job
senhub.jenkins.job.last_build_number {build} Last build number per job
senhub.jenkins.node.count {node} Build nodes by state (online/offline), tagged with state
senhub.jenkins.node.executor.count # Executors across online nodes, by state (busy, idle)
senhub.jenkins.queue.size # Items in the build queue

Operational notes

  • Generate an API token at https://<jenkins>/user/<username>/configure. API tokens are preferred over passwords and can be revoked without changing the account password.
  • The endpoint parameter is required; the probe will fail to start without it.
  • No external SDK is used — the probe speaks the Jenkins JSON REST API directly with the stdlib HTTP client.

Metric reference

Every metric this probe can emit. Metric is the OpenTelemetry name the OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a Nagios check and the API metrics= filter match. PRTG channel is the label PRTG shows, placeholders filled from the series' tags.

Metric Name PRTG channel Unit Description
senhub.jenkins.up senhub.jenkins.up Jenkins Up # 1 when the last cycle reached the Jenkins controller, 0 otherwise
senhub.jenkins.job.count senhub.jenkins.job.count Jenkins Jobs # Number of jobs whose last build ended in this status (success/failure/unstable/aborted)
senhub.jenkins.job.duration senhub.jenkins.job.duration Jenkins {job} Last Build Duration ms Duration of the job's last build
senhub.jenkins.job.last_build_number senhub.jenkins.job.last_build_number Jenkins {job} Last Build Number # Build number of the job's last build
senhub.jenkins.node.count senhub.jenkins.node.count Jenkins Nodes # Number of build nodes/agents by status (online/offline)
senhub.jenkins.node.executor.count senhub.jenkins.node.executor.count Jenkins Executors # Number of executors across online nodes by state (busy/free)
senhub.jenkins.queue.size senhub.jenkins.queue.size Jenkins Queue Size # Number of items in the build queue
senhub.jenkins.queue.blocked senhub.jenkins.queue.blocked Jenkins Queue Blocked # Number of blocked items in the build queue