Skip to content

I3934 — A CI run is emitted as an OpenTelemetry trace when an endpoint is configured, and nothing is sent when none is

When the repository configures an OTLP endpoint, every completed validate workflow run is exported as one OpenTelemetry trace, a span per job and per step with queued time, run time and conclusion. With no endpoint configured nothing is sent and nothing fails.

READY wave 0 · p2 · implementation profile · parallel safe

Part of measurements-are-tracked-over-time — Coverage and CI cost are kept, exported and drawn over time, from the one measurement each has.

Ready. Every dependency is done, so majordomus plan start I3934 will be accepted.

Objective

When the repository configures an OTLP endpoint, every completed validate workflow run is exported as one OpenTelemetry trace, a span per job and per step with queued time, run time and conclusion. With no endpoint configured nothing is sent and nothing fails.

Why

Queueing across overlapping runs cost up to 774 summed job-minutes on master run 39784979979 and nothing measured it continuously.

Current state

scripts/ci-baseline reads runs back on request; no run is shipped to a tracing backend.

Desired state

A telemetry workflow exports each completed validate run to the configured OTLP endpoint, and skips silently without one.

Scope

  • .github/workflows/telemetry.yml
  • docs/CI.md
  • .ai/repo/ci/telemetry.yaml
  • .ai/repo/project/issues/I3934.yaml

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • With the endpoint set a run's jobs and steps arrive as spans with timings and conclusions
  • With none the export is skipped and no verdict changes

Validation

  • actionlint .github/workflows/telemetry.yml

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3934.yaml. Read it back with majordomus plan show I3934.

Searches the titles and descriptions of every page this site publishes.