CI/CD and source control
as of v1.44.0Pipelines, repositories, test runs and the artefacts and deployments they produce.
vcs 21cicd 16artifact 7deployment 5test 4
- attributes
- 53
- metrics
- 15
- signals
- 8
- stable
- 1
- deprecated
- 6
Signals
What this domain emits, and the attributes each one carries, most strongly required first. An attribute marked * is required on that signal; * is conditionally required.
Spans 2
- cicd.pipeline.run.serverserverRelease candidateThis span describes a CI/CD pipeline run.
- cicd.pipeline.task.internalinternalRelease candidateThis span describes task execution in a pipeline run.
cicd.pipeline.task.name*cicd.pipeline.task.run.id*cicd.pipeline.task.run.result*cicd.pipeline.task.run.url.full*error.type*
Entities 6
- cicd.pipelineRelease candidateA pipeline is a series of automated steps that helps software teams deliver code.
- cicd.pipeline.runRelease candidateA pipeline run is a singular execution of a given pipeline's tasks.
- cicd.workerRelease candidateA CI/CD worker is a component of the CI/CD system that performs work (eg. running pipeline tasks or performing sync). A
- deploymentDevelopmentThe software deployment.
- vcs.refDevelopmentA reference to a specific version in the Version Control System.
- vcs.repositoryRelease candidateA repository in the Version Control System.
Metrics 15
- cicd.pipeline.run.activeRelease candidateupdowncounter · {run}The number of pipeline runs currently active in the system by state.
- cicd.pipeline.run.durationRelease candidatehistogram · sDuration of a pipeline run grouped by pipeline, state and result.
- cicd.pipeline.run.errorsRelease candidatecounter · {error}The number of errors encountered in pipeline runs (eg. compile, test failures).
- cicd.system.errorsRelease candidatecounter · {error}The number of errors in a component of the CI/CD system (eg. controller, scheduler, agent).
- cicd.worker.countRelease candidateupdowncounter · {worker}The number of workers on the CI/CD system by state.
- vcs.change.countRelease candidateupdowncounter · {change}The number of changes (pull requests/merge requests/changelists) in a repository, categorized by their state (e.g. open or merged).
- vcs.change.durationRelease candidategauge · sThe time duration a change (pull request/merge request/changelist) has been in a given state.
- vcs.change.time_to_approvalDevelopmentgauge · sThe amount of time since its creation it took a change (pull request/merge request/changelist) to get the first approval.
- vcs.change.time_to_mergeDevelopmentgauge · sThe amount of time since its creation it took a change (pull request/merge request/changelist) to get merged into the target(base) ref.
- vcs.contributor.countRelease candidategauge · {contributor}The number of unique contributors to a repository.
- vcs.ref.countRelease candidateupdowncounter · {ref}The number of refs of type branch or tag in a repository.
- vcs.ref.lines_deltaRelease candidategauge · {line}The number of lines added/removed in a ref (branch) relative to the ref from the vcs.ref.base.name attribute.
- vcs.ref.revisions_deltaRelease candidategauge · {revision}The number of revisions (commits) a ref (branch) is ahead/behind the branch from the vcs.ref.base.name attribute.
- vcs.ref.timeRelease candidategauge · sTime a ref (branch) created from the default branch (trunk) has existed. The ref.type attribute will always be branch.
- vcs.repository.countRelease candidateupdowncounter · {repository}The number of repositories in an organization.
Specification
- Spansare bound by the trace specification — 289 requirements across 7 documents, 166 of them MUST or SHALL.
- Metricsare bound by the metrics specification — 548 requirements across 8 documents, 279 of them MUST or SHALL.
- Entitiesare bound by the entities specification — 53 requirements across 3 documents, 23 of them MUST or SHALL.
The specification prose never names this domain. That is not an omission: the specification defines signals, not subject matter — what binds vcs telemetry is the general rules above, and the conventions themselves carry the rest.
On the wire, this lands in trace/v1/trace, metrics/v1/metrics, resource/v1/resource. Field-by-field definitions are under OTLP.
Attributes 53
vcs21 attributes
- vcs.change.idRelease candidateThe ID of the change (pull request/merge request/changelist) if applicable. This is usually a unique (within repository) identifier generated by the VCS system.
- vcs.change.stateRelease candidateThe state of the change (pull request/merge request/changelist).
- vcs.change.titleRelease candidateThe human readable title of the change (pull request/merge request/changelist). This title is often a brief summary of the change and may get merged in to a ref
- vcs.line_change.typeRelease candidateThe type of line change being measured on a branch or change.
- vcs.owner.nameRelease candidateThe group owner within the version control system.
- vcs.provider.nameRelease candidateThe name of the version control system provider.
- vcs.ref.base.nameRelease candidateThe name of the reference such as **branch** or **tag** in the repository.
- vcs.ref.base.revisionRelease candidateThe revision, literally revised version, The revision most often refers to a commit object in Git, or a revision number in SVN.
- vcs.ref.base.typeRelease candidateThe type of the reference in the repository.
- vcs.ref.head.nameRelease candidateThe name of the reference such as **branch** or **tag** in the repository.
- vcs.ref.head.revisionRelease candidateThe revision, literally revised version, The revision most often refers to a commit object in Git, or a revision number in SVN.
- vcs.ref.head.typeRelease candidateThe type of the reference in the repository.
- vcs.ref.typeRelease candidateThe type of the reference in the repository.
- vcs.repository.change.id
- vcs.repository.change.title
- vcs.repository.nameRelease candidateThe human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub.
- vcs.repository.ref.name
- vcs.repository.ref.revision
- vcs.repository.ref.type
- vcs.repository.url.fullRelease candidateThe canonical URL of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser.
- vcs.revision_delta.directionRelease candidateThe type of revision comparison.
cicd16 attributes
- cicd.pipeline.action.nameRelease candidateThe kind of action a pipeline run is performing.
- cicd.pipeline.nameRelease candidateThe human readable name of the pipeline within a CI/CD system.
- cicd.pipeline.resultRelease candidateThe result of a pipeline run.
- cicd.pipeline.run.idRelease candidateThe unique identifier of a pipeline run within a CI/CD system.
- cicd.pipeline.run.stateRelease candidateThe pipeline run goes through these states during its lifecycle.
- cicd.pipeline.run.url.fullRelease candidateThe URL of the pipeline run, providing the complete address in order to locate and identify the pipeline run.
- cicd.pipeline.task.nameRelease candidateThe human readable name of a task within a pipeline. Task here most closely aligns with a computing process) in a pipeline. Other terms for tasks include comman
- cicd.pipeline.task.run.idRelease candidateThe unique identifier of a task run within a pipeline.
- cicd.pipeline.task.run.resultRelease candidateThe result of a task run.
- cicd.pipeline.task.run.url.fullRelease candidateThe URL of the pipeline task run, providing the complete address in order to locate and identify the pipeline task run.
- cicd.pipeline.task.typeRelease candidateThe type of the task within a pipeline.
- cicd.system.componentRelease candidateThe name of a component of the CI/CD system.
- cicd.worker.idRelease candidateThe unique identifier of a worker within a CI/CD system.
- cicd.worker.nameRelease candidateThe name of a worker within a CI/CD system.
- cicd.worker.stateRelease candidateThe state of a CI/CD worker / agent.
- cicd.worker.url.fullRelease candidateThe URL of the worker, providing the complete address in order to locate and identify the worker.
artifact7 attributes
- artifact.attestation.filenameDevelopmentThe provenance filename of the built attestation which directly relates to the build artifact filename. This filename SHOULD accompany the artifact at publish t
- artifact.attestation.hashDevelopmentThe full hash value (see glossary), of the built attestation. Some envelopes in the software attestation space also refer to this as the **digest**.
- artifact.attestation.idDevelopmentThe ID of the build software attestation.
- artifact.filenameDevelopmentThe human readable filename of the artifact, typically generated during build and release processes. Often includes the package name and version in the filename
- artifact.hashDevelopmentThe full hash value (see glossary), often found in checksum.txt on a release of the artifact and used to verify package integrity.
- artifact.purlDevelopmentThe Package URL of the package artifact provides a standard way to identify and locate the packaged artifact.
- artifact.versionDevelopmentThe version of the artifact.
deployment5 attributes
- deployment.environment
- deployment.environment.nameStableName of the deployment environment (aka deployment tier).
- deployment.idDevelopmentThe ID of the deployment.
- deployment.nameDevelopmentThe name of the deployment.
- deployment.statusDevelopmentThe status of the deployment.
test4 attributes
- test.case.nameDevelopmentThe fully qualified human readable name of the test case.
- test.case.result.statusDevelopmentThe status of the actual test case result from test execution.
- test.suite.nameDevelopmentThe human readable name of a test suite.
- test.suite.run.statusDevelopmentThe status of the test suite run.
Recent changes
Breaking and notable changes to this domain across the last 6 semantic-conventions releases.
- unitmetriccicd.worker.countUnit changed from
{count}to{worker}. - stabilityattributecicd.pipeline.action.namePromoted to release_candidate.
- stabilityattributecicd.pipeline.namePromoted to release_candidate.
- stabilityattributecicd.pipeline.resultPromoted to release_candidate.
- stabilitymetriccicd.pipeline.run.activePromoted to release_candidate.
- stabilitymetriccicd.pipeline.run.durationPromoted to release_candidate.
- stabilitymetriccicd.pipeline.run.errorsPromoted to release_candidate.
- stabilityattributecicd.pipeline.run.idPromoted to release_candidate.
- stabilityattributecicd.pipeline.run.statePromoted to release_candidate.
- stabilityattributecicd.pipeline.run.url.fullPromoted to release_candidate.
Topics are this site's grouping of upstream namespaces, not a structure the OpenTelemetry project publishes. JSON · All domains