CI Functions span instrumentation
Summary
Instrument GitLab Runner to emit child spans for CI Functions under the job_execution parent span. This is Phase 3 of Runner instrumentation — builds on built-in build stage spans from Phase 2.
Overview
CI Functions are user-defined reusable pipeline components that execute within a job. Each CI Function invocation should produce a child span under job_execution, alongside the built-in build stage spans from Phase 2.
Requirements
- Create a child span for each CI Function invocation under the
job_executionspan - Include standard CI Function attributes:
-
ci.function.name— the CI Function identifier -
ci.function.version— the CI Function version -
ci.function.status(success/failed)
-
- Stream spans to the OTEL Collector as each CI Function completes
- Failed CI Functions should set span status to
ERRORwith a description - CI Function spans should be siblings of built-in build stage spans (not nested under them)
Architecture Reference
Related
- Phase 1 (prerequisite): #39232 (closed), #39231
- Phase 2 (prerequisite): #39230
- Parent epic: &20633