---
title: Concourse-CI
description: Collect metrics emitted from Concourse CI.
breadcrumbs: Docs > Integrations > Concourse-CI
---

# Concourse-CI
Supported OS 
## Overview{% #overview %}

Configure the Datadog Metric Emitter in Concourse CI to:

- Visualize the duration of pipelines, number of containers and mounted volumes of workers.
- Identify slow requests to build routes.

## Setup{% #setup %}

### Installation{% #installation %}

Concourse CI comes bundled with a Datadog metrics emitter. A prerequisite to configuring [ATC](https://concourse-ci.org/concepts.html) to emit metrics on start is to have a [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) installed.

### Configuration{% #configuration %}

Configure ATC to use the Datadog emitter by setting the following options. It is important to use a prefix of `concourse.ci` to avoid emitting [custom metrics](https://docs.datadoghq.com/developers/metrics/custom_metrics/).

### Metric emitter options{% #metric-emitter-options %}

See [Configuring Metrics](https://concourse-ci.org/metrics.html#configuring-metrics) in the Concourse CI documentation for more information.

```text
Metric Emitter (Datadog):
    --datadog-agent-host=       Datadog agent host to expose dogstatsd metrics [$CONCOURSE_DATADOG_AGENT_HOST]
    --datadog-agent-port=       Datadog agent port to expose dogstatsd metrics [$CONCOURSE_DATADOG_AGENT_PORT]
    --datadog-prefix=           Prefix for all metrics to easily find them in Datadog [$CONCOURSE_DATADOG_PREFIX]
```

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **concourse.ci.build\_finished**(gauge)                                    | The duration of the build*Shown as millisecond*                                                                                                                                                     |
| **concourse.ci.build\_started**(gauge)                                     | The build ID of the build*Shown as build*                                                                                                                                                           |
| **concourse.ci.containers\_created**(gauge)                                | The number of containers created*Shown as container*                                                                                                                                                |
| **concourse.ci.containers\_deleted**(gauge)                                | The number of containers deleted*Shown as container*                                                                                                                                                |
| **concourse.ci.created\_containers\_to\_be\_garbage\_collected**(gauge)    | The number of containers to be garbage collected*Shown as container*                                                                                                                                |
| **concourse.ci.created\_volumes\_to\_be\_garbage\_collected**(gauge)       | The number of volumes to be garbage collected*Shown as volume*                                                                                                                                      |
| **concourse.ci.creating\_containers\_to\_be\_garbage\_collected**(gauge)   | The number of containers being created to be garbage collected*Shown as container*                                                                                                                  |
| **concourse.ci.database\_connections**(gauge)                              | The number of database connections*Shown as connection*                                                                                                                                             |
| **concourse.ci.database\_queries**(gauge)                                  | The number of database queries*Shown as query*                                                                                                                                                      |
| **concourse.ci.destroying\_containers\_to\_be\_garbage\_collected**(gauge) | The number of containers being destroyed to be garbage collected*Shown as container*                                                                                                                |
| **concourse.ci.destroying\_volumes\_to\_be\_garbage\_collected**(gauge)    | The number of volumes being destroyed to be garbage collected*Shown as volume*                                                                                                                      |
| **concourse.ci.failed\_containers**(gauge)                                 | The number of failed containers*Shown as container*                                                                                                                                                 |
| **concourse.ci.failed\_containers\_to\_be\_garbage\_collected**(gauge)     | The number of failed containers to be garbage collected*Shown as container*                                                                                                                         |
| **concourse.ci.failed\_volumes**(gauge)                                    | The number of failed volumes*Shown as volume*                                                                                                                                                       |
| **concourse.ci.failed\_volumes\_to\_be\_garbage\_collected**(gauge)        | The number of failed volumes to be garbage collected*Shown as volume*                                                                                                                               |
| **concourse.ci.frees**(gauge)                                              | The number of heap objects freed*Shown as heap*                                                                                                                                                     |
| **concourse.ci.gc\_pause\_total\_duration**(gauge)                         | The total pause duration in garbage collection*Shown as nanosecond*                                                                                                                                 |
| **concourse.ci.goroutines**(gauge)                                         | The number of goroutines that exist*Shown as operation*                                                                                                                                             |
| **concourse.ci.http\_response\_time**(gauge)                               | The duration for each request to an ATC*Shown as millisecond*                                                                                                                                       |
| **concourse.ci.mallocs**(gauge)                                            | The number of heap objects allocated*Shown as heap*                                                                                                                                                 |
| **concourse.ci.orphaned\_volumes\_to\_be\_garbage\_collected**(gauge)      | The number of orphaned volumes to be garbage collected*Shown as volume*                                                                                                                             |
| **concourse.ci.scheduling\_full\_duration\_ms**(gauge)                     | The time taken to schedule an entire pipeline including the time taken to load the version information from the database and calculate the latest valid versions for each job*Shown as millisecond* |
| **concourse.ci.scheduling\_job\_duration\_ms**(gauge)                      | The time taken to calculate the set of valid input versions when scheduling a job*Shown as millisecond*                                                                                             |
| **concourse.ci.scheduling\_loading\_versions\_duration\_ms**(gauge)        | The time taken to load the version information from the database*Shown as millisecond*                                                                                                              |
| **concourse.ci.volumes\_created**(gauge)                                   | The number of volumes created*Shown as volume*                                                                                                                                                      |
| **concourse.ci.volumes\_deleted**(gauge)                                   | The number of volumes deleted*Shown as volume*                                                                                                                                                      |
| **concourse.ci.worker\_containers**(gauge)                                 | The number of containers that are currently running on workers*Shown as container*                                                                                                                  |
| **concourse.ci.worker\_volumes**(gauge)                                    | The number of volumes that are currently present on workers*Shown as volume*                                                                                                                        |

### Events{% #events %}

This integration does not support events.

### Service{% #service %}

This integration does not collect service checks.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
