Skip to content

CI/CD monitoring

Monitoring the build and delivery pipeline — Jenkins instances and Gitee repositories — as part of the observability estate.


Two ways to bring Jenkins into Sondar, either alone or together:

  1. Jenkins metrics — the jenkins_tel collect type reads job and node information from the Jenkins API (no Jenkins plugin required). It collects node state (total/busy executors, available memory/disk), job result codes, and build activity.
  2. OpenTelemetry plugin — the OpenTelemetry plugin provides distributed tracing of Jenkins jobs and pipeline executions. The jenkins_overview_opentelemetry dashboard reads the traced runs.

jenkins_tel polls the Jenkins API on an interval:

readers:
- jenkins_tel:
interval: 30s
url: "http://my-jenkins:8080"
username: admin
password: secret
response_timeout: "5s"
max_build_age: "1h"
max_subjob_depth: 0
max_subjob_per_layer: 10
  • url / username / password — the instance and credentials.
  • max_build_age (default 1h) — ignore builds older than this, so the collector does not replay history on every poll.
  • max_subjob_depth (default 0 = unlimited) — Jenkins nests sub-jobs arbitrarily (workflow-multibranch creates one per branch); this caps the depth pulled.
  • max_subjob_per_layer (default 10) — the number of sub-jobs pulled per level, so a wide branch fan-out is bounded. A job path include/exclude filter is also available to narrow which jobs are read.

Data lands in app_jenkins_tel. Dashboards: Jenkins Overview, Jenkins Overview — OpenTelemetry (the OTel-trace view: job runs by user/PR, step runtime trends, failed-job error logs, most-active users, node state).

The Jenkins result codes are mapped to English in the dashboards: Success, Failed, Not built, Unstable, Aborted.

The Gitee app is a webhook-event integration rather than a metrics collector: a Gitee repository’s webhooks deliver events (issues, PRs, pushes), which the app’s extraction rule turns into Sondar events in the gitee_event repo. The Gitee Overview dashboard then analyses issue flow — new/closed issues by type, issue state distribution, task statistics by owner, and test-submission timing across an iteration.

The webhook sample content in the app’s extraction carries Chinese PR example data (demo payload); the event fields the extraction produces are English and queryable. See event-collection.md for how webhook events flow into the platform.