> For the complete documentation index, see [llms.txt](https://circleci.com/docs/llms.txt)

# OpenTelemetry for CI/CD

CircleCI supports sending OpenTelemetry spans for your pipelines as they execute. CircleCI emits spans for pipelines, workflows, jobs, tasks, and steps allowing you to understand and visualise the behavior of your pipelines.

## Configure OpenTelemetry export via the UI

Complete the following steps to configure CircleCI to send OpenTelemetry spans to the collector of your choice.

1.  Log in to the [CircleCI web app](https://app.circleci.com/home)
    
2.  Select your organization.
    
3.  Open **Org** from the sidebar.
    
4.  In the organization settings sidebar, click **OpenTelemetry Configuration**
    
5.  Select **Add exporter**
    
6.  Complete the fields.
    
    *   **Endpoint**: The hostname and port for your OTLP collector, for example `otel.example.com:4317`.
        
    *   **Protocol**: Either `grpc` or `http`.
        
    *   **Use insecure connection**: Only enable this switch if your collector is incapable of TLS.
        
    *   **Additional Headers**: If your collector needs additional headers with each request add it here. For example, for Honeycomb you must add an `x-honeycomb-team` header with your Honeycomb API key as the value.
        
    
7.  Select **Add exporter** to save the new exporter.
    

## Configure OpenTelemetry export via the API

The API has the following endpoints. All endpoints require organization admin privileges.

*   `GET /api/v2/otel/exporters?org-id=…​` - List the exporter configurations for the given organization ID.
    
*   `POST /api/v2/otel/exporters` - Add an exporter configuration.
    
*   `DELETE /api/v2/otel/exporters/:id` - Delete an exporter configuration.
    

[Full reference for the APIs.](https://circleci.com/docs/api/v2/#tag/OTel)

### Example setup for exporting to Honeycomb

You need three things:

*   A CircleCI personal API token belonging to an organization admin.
    
*   The CircleCI organization ID.
    
*   A Honeycomb API token.
    

Then run this command, substituting your own values:

`````````
$ curl -sH "Circle-Token: <CircleCI Token>" -X POST -d '{"org_id": "<CircleCI org ID>", "endpoint": "api.honeycomb.io:443", "protocol": "grpc", "headers": {"x-honeycomb-team": "<Honeycomb API token>"}}' 'https://circleci.com/api/v2/otel/exporters'
`````````

**Enterprise and IP-restricted endpoints**

If your OpenTelemetry endpoint restricts IP access (Grafana and Prometheus are common examples), you need to allow-list CircleCI’s core service IP ranges. CircleCI sends spans from its core services, not from job executors, so you do not need to enable the `circleci_ip_ranges` job feature. Query the core service IP ranges via DNS:

`````````
dig core.knownips.circleci.com A +short
`````````

See [IP Ranges](https://circleci.com/docs/guides/security/ip-ranges/) for the full list and more details.

## Mapping of CircleCI primitives to OpenTelemetry spans

The following describes the span data emitted for each CircleCI primitive. Span data follows OpenTelemetry semantic conventions where possible.

### Pipeline

The span name is `Pipeline: {cicd.pipeline.name}`. This deviates from the OpenTelemetry semantic conventions that specify `{cicd.pipeline.action.name} {cicd.pipeline.name}`.

The span attributes are as follows:

  

Trace Attribute

Example Value

Description

`cicd.pipeline.action.name`

RUN

The value is always `RUN` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.name`

Integration

The name of the pipeline. GitHub OAuth pipelines use the project name.

`cicd.pipeline.run.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID.

`cicd.pipeline.run.state`

executing

The value is always `executing` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.run.url.full`

https://app.circleci.com/pipeline/f74a9582-9dd4-4b89-8801-4357de39ca5f

A URL that redirects to the pipeline page in the web UI.

`com.circleci.org.id`

cb53b18d-7379-42ff-915f-29b6f3b86187

The ID of the CircleCI organization in which this ran.

`com.circleci.pipeline.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID. This is the same value as `cicd.pipeline.run.id`.

`com.circleci.pipeline.number`

42

The CircleCI pipeline number.

`com.circleci.project.id`

96781ce1-9288-4d06-89e6-62fc620117db

The ID of the CircleCI project in which this ran.

`service.name`

CircleCI Pipelines

Always `CircleCI Pipelines`.

`vcs.change.id`

42

The GitHub pull request number. Only present for pipelines triggered by a pull request.

`vcs.change.state`

open

The state of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.change.title`

Fix the thing

The title of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.provider.name`

`github`

This shows the Git repo provider in cases where the pipeline relates to a Git event. Possible values are `bitbucket`, `github`, and `gitlab`.

`vcs.ref.base.name`

main

For PR pipelines, this is the name of the ref the PR is merging into. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.base.revision`

14c29a1b2454ae4dd966f27e3b46aec7680d8c14

The Git SHA for the base ref.

`vcs.ref.head.name`

my-feature-branch

For PR pipelines, this is the name of the ref the PR is merging from. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.head.revision`

2fe3ff8ff80a45f9cbd8bcc14c774a1d3ac588e4

The Git SHA for the head ref.

`vcs.ref.type`

branch

Either `branch` or `tag`, depending on the type of the ref. Only present when the pipeline is building a branch or tag.

`vcs.repository.name`

my-repo

The name of the VCS repository, derived from the last path segment of the repository URL.

`vcs.repository.url.full`

`[https://github.com/my-org/my-repo](https://github.com/my-org/my-repo)`

The URL for the VCS repository.

### Workflow

The span name is `Workflow: {workflow name}`, deviating from the OpenTelemetry semantic conventions that specify `{cicd.pipeline.action.name} {cicd.pipeline.name}`.

In OpenTelemetry semantic conventions, the workflow maps to a “pipeline run”. As a result, `cicd.pipeline.run.id` and `cicd.pipeline.run.url.full` contain the workflow ID and URL, not the pipeline ID.

The span attributes are as follows:

  

Trace Attribute

Example Value

Description

`cicd.pipeline.action.name`

RUN

The value is always `RUN` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.name`

build-and-test

The name of the workflow.

`cicd.pipeline.result`

success

The result of the workflow according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, and `cancellation`. The actual workflow status is available in `com.circleci.workflow.status`.

`cicd.pipeline.run.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`cicd.pipeline.run.state`

executing

The value is always `executing` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f

A URL that redirects to the workflow page in the web UI.

`com.circleci.org.id`

cb53b18d-7379-42ff-915f-29b6f3b86187

The ID of the CircleCI organization in which this ran.

`com.circleci.pipeline.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID.

`com.circleci.pipeline.number`

3

The CircleCI pipeline number.

`com.circleci.project.id`

96781ce1-9288-4d06-89e6-62fc620117db

The ID of the CircleCI project in which this ran.

`com.circleci.workflow.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`com.circleci.workflow.rerun`

false

Whether this workflow is a rerun of a previous workflow. True for auto-reruns and manual reruns.

`com.circleci.workflow.rerun.type`

auto-rerun

The reason for a rerun. Only present when `com.circleci.workflow.rerun` is true.

`com.circleci.workflow.setup`

false

Whether this is a setup workflow.

`com.circleci.workflow.status`

success

The status of the workflow in CircleCI.

`error.type`

failed

The workflow status when it represents an error condition. Only present for statuses that map to a `failure` result (`unauthorized`, `error`, `failed`, `failing`).

`service.name`

CircleCI Pipelines

Always `CircleCI Pipelines`.

`vcs.change.id`

42

The GitHub pull request number. Only present for pipelines triggered by a pull request.

`vcs.change.state`

open

The state of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.change.title`

Fix the thing

The title of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.provider.name`

`github`

This shows the Git repo provider in cases where the pipeline relates to a Git event. Possible values are `bitbucket`, `github`, and `gitlab`.

`vcs.ref.base.name`

main

For PR pipelines, this is the name of the ref the PR is merging into. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.base.revision`

14c29a1b2454ae4dd966f27e3b46aec7680d8c14

The Git SHA for the base ref.

`vcs.ref.head.name`

my-feature-branch

For PR pipelines, this is the name of the ref the PR is merging from. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.head.revision`

2fe3ff8ff80a45f9cbd8bcc14c774a1d3ac588e4

The Git SHA for the head ref.

`vcs.ref.type`

branch

Either `branch` or `tag`, depending on the type of the ref. Only present when the pipeline is building a branch or tag.

`vcs.repository.name`

my-repo

The name of the VCS repository, derived from the last path segment of the repository URL.

`vcs.repository.url.full`

`[https://github.com/my-org/my-repo](https://github.com/my-org/my-repo)`

The URL for the VCS repository.

### Job

The span name is `Job: {job name}`, deviating from the OpenTelemetry semantic conventions that specify `{cicd.pipeline.action.name} {cicd.pipeline.name}`.

In OpenTelemetry semantic conventions, the job maps to a “pipeline task” and the containing workflow maps to the “pipeline run”. As a result, `cicd.pipeline.name` and `cicd.pipeline.run.id` contain the workflow name and ID respectively.

The span attributes are as follows:

  

Trace Attribute

Example Value

Description

`cicd.pipeline.action.name`

RUN

The value is always `RUN` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.name`

build-and-test

The name of the workflow that contains this job.

`cicd.pipeline.result`

success

The result of the workflow according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, and `cancellation`. The actual workflow status is available in `com.circleci.workflow.status`.

`cicd.pipeline.run.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`cicd.pipeline.run.state`

executing

The value is always `executing` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f

A URL that redirects to the workflow page in the web UI.

`cicd.pipeline.task.name`

build

The name of the job.

`cicd.pipeline.task.run.id`

cbf6a4ea-a078-4d72-8641-cb5ec149fc35

The CircleCI job ID.

`cicd.pipeline.task.run.result`

success

The result of the job according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, and `cancellation`. The CircleCI job status is available in `com.circleci.job.status`.

`cicd.pipeline.task.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f/job/cbf6a4ea-a078-4d72-8641-cb5ec149fc35

A URL that redirects to the job page in the web UI.

`cicd.pipeline.task.type`

build

The CircleCI job type, for example `build`, `approval`, etc.

`com.circleci.job.id`

cbf6a4ea-a078-4d72-8641-cb5ec149fc35

The CircleCI job ID.

`com.circleci.job.name`

build

The name of the job.

`com.circleci.job.number`

123

The CircleCI job number.

`com.circleci.job.status`

success

The status of the job in CircleCI.

`com.circleci.job.type`

build

The CircleCI job type, for example `build`, `approval`, etc.

`com.circleci.org.id`

cb53b18d-7379-42ff-915f-29b6f3b86187

The ID of the CircleCI organization in which this ran.

`com.circleci.pipeline.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID.

`com.circleci.project.id`

96781ce1-9288-4d06-89e6-62fc620117db

The ID of the CircleCI project in which this ran.

`com.circleci.workflow.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`com.circleci.workflow.name`

build-and-test

The name of the workflow that contains this job.

`com.circleci.workflow.status`

success

The status of the workflow in CircleCI.

`error.type`

failed

The job status when it represents an error condition. Only present for statuses that map to a `failure` result (`failed`, `terminated-unknown`, `unauthorized`).

`service.name`

CircleCI Pipelines

Always `CircleCI Pipelines`.

`vcs.change.id`

42

The GitHub pull request number. Only present for pipelines triggered by a pull request.

`vcs.change.state`

open

The state of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.change.title`

Fix the thing

The title of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.provider.name`

`github`

This shows the Git repo provider in cases where the pipeline relates to a Git event. Possible values are `bitbucket`, `github`, and `gitlab`.

`vcs.ref.base.name`

main

For PR pipelines, this is the name of the ref the PR is merging into. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.base.revision`

14c29a1b2454ae4dd966f27e3b46aec7680d8c14

The Git SHA for the base ref.

`vcs.ref.head.name`

my-feature-branch

For PR pipelines, this is the name of the ref the PR is merging from. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.head.revision`

2fe3ff8ff80a45f9cbd8bcc14c774a1d3ac588e4

The Git SHA for the head ref.

`vcs.ref.type`

branch

Either `branch` or `tag`, depending on the type of the ref. Only present when the pipeline is building a branch or tag.

`vcs.repository.name`

my-repo

The name of the VCS repository, derived from the last path segment of the repository URL.

`vcs.repository.url.full`

`[https://github.com/my-org/my-repo](https://github.com/my-org/my-repo)`

The URL for the VCS repository.

### Task

A task is one parallel run within a job. For jobs with parallelism=1, there is a single task with index 0.

The span name is `Task: {job name} - {task index}` (for example, `Task: build - 0`), deviating from the OpenTelemetry semantic conventions that specify `{cicd.pipeline.action.name} {cicd.pipeline.task.name}`.

In OpenTelemetry semantic conventions, the task maps to a “pipeline task” and the containing workflow maps to the “pipeline run”. As a result, `cicd.pipeline.name` and `cicd.pipeline.run.id` contain the workflow name and ID respectively.

The `cicd.pipeline.task.run.id` is a synthetic UUID derived from the job ID and task index, not a first-class CircleCI identifier.

The span attributes are as follows:

  

Trace Attribute

Example Value

Description

`cicd.pipeline.action.name`

RUN

The value is always `RUN` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.name`

build-and-test

The name of the workflow that contains this task.

`cicd.pipeline.result`

success

The result of the workflow according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, and `cancellation`. The actual workflow status is available in `com.circleci.workflow.status`.

`cicd.pipeline.run.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`cicd.pipeline.run.state`

executing

The value is always `executing` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f

A URL that redirects to the workflow page in the web UI.

`cicd.pipeline.task.name`

build - 0

The name of the task, in the form `{job name} - {task index}`.

`cicd.pipeline.task.run.id`

3c4e5f6a-7b8c-9d0e-1f2a-3b4c5d6e7f80

An ID for the task. Note this is not the internal CircleCI ID for the task.

`cicd.pipeline.task.run.result`

success

The result of the task according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, `cancellation`, and `error`.

`cicd.pipeline.task.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f/job/3c4e5f6a-7b8c-9d0e-1f2a-3b4c5d6e7f80

A URL for the job page for the job containing this task.

`cicd.pipeline.task.type`

build

The CircleCI job type. For tasks, this is always `build` as no other job types create tasks.

`com.circleci.job.id`

cbf6a4ea-a078-4d72-8641-cb5ec149fc35

The CircleCI job ID.

`com.circleci.job.name`

build

The name of the job.

`com.circleci.job.number`

123

The CircleCI job number.

`com.circleci.job.status`

success

The status of the job in CircleCI.

`com.circleci.job.type`

build

The CircleCI job type. For tasks, this is always `build` as no other job types create tasks.

`com.circleci.org.id`

cb53b18d-7379-42ff-915f-29b6f3b86187

The ID of the CircleCI organization in which this ran.

`com.circleci.pipeline.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID.

`com.circleci.project.id`

96781ce1-9288-4d06-89e6-62fc620117db

The ID of the CircleCI project in which this ran.

`com.circleci.resource.class`

medium

The resource class used.

`com.circleci.resource.cpu`

2

The number of vCPUs allocated.

`com.circleci.resource.executor`

`docker`

The executor type.

`com.circleci.resource.image`

`cimg/base:2024.01`

The Docker image used, if applicable.

`com.circleci.resource.name`

Medium

The human-readable name of the resource class.

`com.circleci.resource.ram`

4096

The amount of RAM allocated in MB.

`com.circleci.resource.usage.cpu.mean`

0.42

Mean CPU usage for the task. The values are in the range `0.0` to `1.0` with the latter meaning 100% usage across all cores. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.cpu.min`

0.01

The lowest CPU usage observed during the task. The values are in the range `0.0` to `1.0` with the latter meaning 100% usage across all cores. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.cpu.max`

0.98

The highest CPU usage observed during the task. The values are in the range `0.0` to `1.0` with the latter meaning 100% usage across all cores. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.cpu.p90`

0.98

The 90th percentile of the CPU usage observed during the task. The values are in the range `0.0` to `1.0` with the latter meaning 100% usage across all cores. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.memory.mean`

1073741824

Mean memory usage in bytes across the task. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.memory.min`

536870912

The lowest memory usage in bytes observed during the task. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.memory.max`

2147483648

The highest memory usage in bytes observed during the task. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.memory.p90`

1932735283

The 90th percentile of the memory usage in bytes during the task. Only present for `build` jobs when usage data is available.

`com.circleci.resource.usage.network.bytes_received`

10485760

Total bytes received over the network during the task. Only present for `build` jobs when usage data is available and the value is greater than zero.

`com.circleci.resource.usage.network.bytes_sent`

5242880

Total bytes sent over the network during the task. Only present for `build` jobs when usage data is available and the value is greater than zero.

`com.circleci.task.index`

0

The zero-based index of this task within its parallel job.

`com.circleci.task.result`

SUCCEEDED

The raw result string from the task runner. Only present when the task has completed.

`com.circleci.task.state`

COMPLETED

The raw state string from the task runner.

`com.circleci.workflow.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`com.circleci.workflow.name`

build-and-test

The name of the workflow that contains this task.

`com.circleci.workflow.status`

success

The status of the workflow in CircleCI.

`error.type`

FAILED

The task result when it represents an error condition. Only present for results that map to a `failure` or `error` result.

`service.name`

CircleCI Pipelines

Always `CircleCI Pipelines`.

`vcs.change.id`

42

The GitHub pull request number. Only present for pipelines triggered by a pull request.

`vcs.change.state`

open

The state of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.change.title`

Fix the thing

The title of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.provider.name`

`github`

This shows the Git repo provider in cases where the pipeline relates to a Git event. Possible values are `bitbucket`, `github`, and `gitlab`.

`vcs.ref.base.name`

main

For PR pipelines, this is the name of the ref the PR is merging into. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.base.revision`

14c29a1b2454ae4dd966f27e3b46aec7680d8c14

The Git SHA for the base ref.

`vcs.ref.head.name`

my-feature-branch

For PR pipelines, this is the name of the ref the PR is merging from. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.head.revision`

2fe3ff8ff80a45f9cbd8bcc14c774a1d3ac588e4

The Git SHA for the head ref.

`vcs.ref.type`

branch

Either `branch` or `tag`, depending on the type of the ref. Only present when the pipeline is building a branch or tag.

`vcs.repository.name`

my-repo

The name of the VCS repository, derived from the last path segment of the repository URL.

`vcs.repository.url.full`

`[https://github.com/my-org/my-repo](https://github.com/my-org/my-repo)`

The URL for the VCS repository.

### Step

A step is one step within a task. Each task may contain multiple steps.

The span name is `Step: {step name}` (for example, `Step: Checkout code`), deviating from the OpenTelemetry semantic conventions that specify `{cicd.pipeline.action.name} {cicd.pipeline.name}`.

In OpenTelemetry semantic conventions, the step maps to a “pipeline task” and the containing workflow maps to the “pipeline run”. As a result, `cicd.pipeline.name` and `cicd.pipeline.run.id` contain the workflow name and ID respectively. The `cicd.pipeline.task.run.id` is the job ID rather than a step-specific identifier.

The span attributes are as follows:

  

Trace Attribute

Example Value

Description

`cicd.pipeline.action.name`

RUN

The value is always `RUN` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.name`

build-and-test

The name of the workflow that contains this step.

`cicd.pipeline.result`

success

The result of the workflow according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, and `cancellation`. The actual workflow status is available in `com.circleci.workflow.status`.

`cicd.pipeline.run.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`cicd.pipeline.run.state`

executing

The value is always `executing` for compatibility with the OpenTelemetry semantic conventions.

`cicd.pipeline.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f

A URL that redirects to the workflow page in the web UI.

`cicd.pipeline.task.name`

Checkout code

The name of the step.

`cicd.pipeline.task.run.id`

cbf6a4ea-a078-4d72-8641-cb5ec149fc35

The CircleCI job ID.

`cicd.pipeline.task.run.result`

success

The result of the step according to OpenTelemetry semantic conventions. Possible values are `success`, `failure`, `cancellation`, `timeout`, and `error`.

`cicd.pipeline.task.run.url.full`

https://app.circleci.com/workflow/ff87d6e9-6f8c-40d8-aa37-4be96218709f/job/cbf6a4ea-a078-4d72-8641-cb5ec149fc35

A URL that redirects to the job page in the web UI.

`cicd.pipeline.task.type`

checkout

The step type, for example `infrastructure`, `checkout`, `run`, etc.

`com.circleci.job.id`

cbf6a4ea-a078-4d72-8641-cb5ec149fc35

The CircleCI job ID.

`com.circleci.job.name`

build

The name of the job that contains this step.

`com.circleci.job.number`

123

The CircleCI job number.

`com.circleci.job.status`

success

The status of the job in CircleCI.

`com.circleci.job.type`

build

The CircleCI job type, for example `build`, `approval`, etc.

`com.circleci.org.id`

cb53b18d-7379-42ff-915f-29b6f3b86187

The ID of the CircleCI organization in which this ran.

`com.circleci.pipeline.id`

f74a9582-9dd4-4b89-8801-4357de39ca5f

The CircleCI pipeline ID.

`com.circleci.project.id`

96781ce1-9288-4d06-89e6-62fc620117db

The ID of the CircleCI project in which this ran.

`com.circleci.resource.class`

medium

The resource class used.

`com.circleci.resource.cpu`

2

The number of vCPUs allocated.

`com.circleci.resource.executor`

`docker`

The executor type.

`com.circleci.resource.image`

cimg/base:2024.01

The Docker image used, if applicable.

`com.circleci.resource.name`

Medium

The human-readable name of the resource class.

`com.circleci.resource.ram`

4096

The amount of RAM allocated in MB.

`com.circleci.step.auto_rerun_delay_seconds`

0

The number of seconds to wait before auto-rerunning this step. Zero if auto-rerun is not configured.

`com.circleci.step.auto_rerun_number`

0

The current auto-rerun attempt number for this step. Zero if auto-rerun is not configured for this step.

`com.circleci.step.background`

false

Whether this step runs in the background. For example, this is true for steps used to spin up secondary service containers.

`com.circleci.step.command`

echo hello

The command run by the step, if applicable.

`com.circleci.step.exit_code`

0

The exit code of the step command.

`com.circleci.step.insignificant`

false

Steps marked as insignificant do not affect the success of the job.

`com.circleci.step.max_auto_reruns`

0

The maximum number of auto-reruns configured for this step. Zero if auto-rerun is not configured.

`com.circleci.step.parallel`

false

Whether this step runs in parallel with other steps in the job.

`com.circleci.task.index`

0

The zero-based index of the task this step belongs to.

`com.circleci.task.result`

SUCCEEDED

The raw result string of the containing task.

`com.circleci.task.state`

COMPLETED

The raw state string of the containing task.

`com.circleci.workflow.id`

ff87d6e9-6f8c-40d8-aa37-4be96218709f

The CircleCI workflow ID.

`com.circleci.workflow.name`

build-and-test

The name of the workflow that contains this step.

`com.circleci.workflow.status`

success

The status of the workflow in CircleCI.

`error.type`

FAILED

The task result when it represents an error condition. Only present for steps that have a result of `failed`, `timedout`, or `infrastructure_fail`.

`service.name`

CircleCI Pipelines

Always `CircleCI Pipelines`.

`vcs.change.id`

42

The GitHub pull request number. Only present for pipelines triggered by a pull request.

`vcs.change.state`

open

The state of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.change.title`

Fix the thing

The title of the GitHub pull request. Only present for pipelines triggered by a pull request.

`vcs.provider.name`

`github`

This shows the Git repo provider in cases where the pipeline relates to a Git event. Possible values are `bitbucket`, `github`, and `gitlab`.

`vcs.ref.base.name`

main

For PR pipelines, this is the name of the ref the PR is merging into. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.base.revision`

14c29a1b2454ae4dd966f27e3b46aec7680d8c14

The Git SHA for the base ref.

`vcs.ref.head.name`

my-feature-branch

For PR pipelines, this is the name of the ref the PR is merging from. For branch pipelines, this is the branch name. For tag pipelines, this is the tag name.

`vcs.ref.head.revision`

2fe3ff8ff80a45f9cbd8bcc14c774a1d3ac588e4

The Git SHA for the head ref.

`vcs.ref.type`

branch

Either `branch` or `tag`, depending on the type of the ref. Only present when the pipeline is building a branch or tag.

`vcs.repository.name`

my-repo

The name of the VCS repository, derived from the last path segment of the repository URL.

`vcs.repository.url.full`

`[https://github.com/my-org/my-repo](https://github.com/my-org/my-repo)`

The URL for the VCS repository.