---
title: Puma
description: A fast, concurrent web server for Ruby and Rack
breadcrumbs: Docs > Integrations > Puma
---

# Puma
Supported OS Integration version2.0.0
## Overview{% #overview %}

This check monitors [Puma](https://puma.io/) through the Datadog Agent with the Puma metrics endpoint provided by the [control and status](https://github.com/puma/puma#controlstatus-server) server.

## Setup{% #setup %}

The Puma check is not included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package, so you need to install it.

### Installation{% #installation %}

For Agent v7.21+ / v6.21+, follow the instructions below to install the Puma check on your host. See [Use Community Integrations](https://docs.datadoghq.com/agent/guide/use-community-integrations/) to install with the Docker Agent or earlier versions of the Agent.

1. Run the following command to install the Agent integration:

   ```shell
   datadog-agent integration install -t datadog-puma==<INTEGRATION_VERSION>
   ```

1. Configure your integration similar to core [integrations](https://docs.datadoghq.com/getting_started/integrations/).

### Configuration{% #configuration %}

1. Edit the `puma.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your Puma performance data. See the [sample puma.d/conf.yaml](https://github.com/DataDog/integrations-extras/blob/master/puma/datadog_checks/puma/data/conf.yaml.example) for all available configuration options.

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent).

### Validation{% #validation %}

Run the [Agent's status subcommand](https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information) and look for `puma` under the Checks section.

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

### Metrics{% #metrics %}

|  |
|  |
| **puma.backlog**(gauge)         | Pending request backlog*Shown as unit*                                                                                              |
| **puma.booted\_workers**(gauge) | Number of booted puma workers*Shown as unit*                                                                                        |
| **puma.busy\_threads**(gauge)   | Number of threads that are running, including requests waiting on a thread, but excluding requests waiting for work.*Shown as unit* |
| **puma.max\_threads**(gauge)    | Maximum threads*Shown as unit*                                                                                                      |
| **puma.pool\_capacity**(gauge)  | Pool capacity*Shown as unit*                                                                                                        |
| **puma.requests\_count**(gauge) | Request count*Shown as unit*                                                                                                        |
| **puma.running**(gauge)         | Running threads*Shown as unit*                                                                                                      |
| **puma.workers**(gauge)         | Total number of puma workers*Shown as unit*                                                                                         |

### Events{% #events %}

Puma does not include any events.

### Service Checks{% #service-checks %}

**puma.connection**

Returns `CRITICAL` if the Agent is unable to connect to the monitored Puma instance. Returns `OK` otherwise.

*Statuses: ok, critical*

## Troubleshooting{% #troubleshooting %}

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