1. Resources
  2. /
  3. Changelog
  4. /
  5. Understand pull request retry patterns with OpenTelemetry

Understand pull request retry patterns with OpenTelemetry

Understand PR retry patterns in your existing observability tool, without joining webhook data. Buildkite's server-side OpenTelemetry traces include PR metadata, including for GitHub merge-queue builds, and job retry metadata to compare manual and automatic retries and follow attempts.

See how often PRs need retries and which repositories have the most retry activity. Comparing those patterns over time can help you decide where to investigate recurring CI failures and track whether changes reduce retries.

Server-side OpenTelemetry tracing is available only on Enterprise plans. These additions don't change agent-native spans.

Try it with your agent

In [observability tool], what percentage of observed Buildkite PRs
had a manual job retry in the last 7 days?

Write a query using resource attributes buildkite.pipeline.repo and
buildkite.build.pull_request.number, and job span attribute
buildkite.job.retry_source.retry_type = "manual".

Divide distinct PRs with a manual retry by all distinct PRs in the
same dataset and time window, deduplicating by repository + PR number.
Check the tool's attribute mapping and query syntax.

Return the counts and percentage, explaining coverage limitations
and that manual includes API/automation retries. Without data access,
provide runnable steps instead of results.

What's in the traces

  • PR resource attributes: buildkite.build.pull_request.number (string) and buildkite.build.pull_request.url (provider URL). Both are omitted without a PR; the URL is omitted when unavailable.
  • Job span attributes: buildkite.job.retries_count counts preceding manual and automatic retries (0 for originals, 1 for first retries). buildkite.job.retry_source.job_id links to the preceding job's UUID; buildkite.job.retry_source.retry_type identifies the incoming retry as manual or automatic. Both source attributes are omitted for originals or unavailable predecessors.

Results reflect the traces your tool receives and retains, not every retry; attempts that never started aren't included.

For setup and integration details, see the OpenTelemetry docs.

Buildkite

Atom feed

Start turning complexity into an advantage

Create an account to get started for free.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. CI/CD perspectives

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Compare

  1. Buildkite vs GitHub Actions
  2. Buildkite vs Depot

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement
  6. Supplier Code of Conduct
  7. Modern Slavery Statement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2026