---
title: Presto
description: Collects performance and usage stats on PrestoSQL cluster, and much more.
breadcrumbs: Docs > Integrations > Presto
---

# Presto
Supported OS Integration version3.4.0
## Overview{% #overview %}

This check collects [Presto](https://docs.datadoghq.com/integrations/presto/) metrics, for example:

- Overall activity metrics: completed/failed queries, data input/output size, execution time.
- Performance metrics: cluster memory, input CPU, execution CPU time.

**Minimum Agent version:** 6.11.0

## Setup{% #setup %}

Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery Integration Templates](https://docs.datadoghq.com/agent/kubernetes/integrations/) for guidance on applying these instructions.

### Installation{% #installation %}

The Presto check is included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package. No additional installation is needed on your server. Install the Agent on each Coordinator and Worker node from which you wish to collect usage and performance metrics.

### Configuration{% #configuration %}

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

This check has a limit of 350 metrics per instance. The number of returned metrics is indicated in [the status page](https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information). You can specify the metrics you are interested in by editing the configuration below. To learn how to customize the metrics to collect, see the [JMX Checks documentation](https://docs.datadoghq.com/integrations/java/) for more detailed instructions. If you need to monitor more metrics, contact [Datadog support](https://docs.datadoghq.com/help/).

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

#### Metric collection{% #metric-collection %}

Use the default configuration of your `presto.d/conf.yaml` file to activate the collection of your Presto metrics. See the sample [presto.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/presto/datadog_checks/presto/data/conf.yaml.example) for all available configuration options.

#### Log collection{% #log-collection %}

*Available for Agent versions >6.0*

1. Collecting logs is disabled by default in the Datadog Agent. Enable it in your `datadog.yaml` file:

   ```yaml
   logs_enabled: true
   ```

1. Add this configuration block to your `presto.d/conf.yaml` file to start collecting your Presto logs:

   ```yaml
   logs:
     - type: file
       path: /var/log/presto/*.log
       source: presto
       service: "<SERVICE_NAME>"
   ```

Change the `path` and `service` parameter values and configure them for your environment. See the sample [presto.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/presto/datadog_checks/presto/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 `presto` under the Checks section.

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

### Metrics{% #metrics %}

|  |
|  |
| **presto.execution.abandoned\_queries.one\_minute.count**(gauge)                | Abandoned queries - one minute count.*Shown as query*                                              |
| **presto.execution.abandoned\_queries.one\_minute.rate**(gauge)                 | Abandoned queries - one minute rate.*Shown as query*                                               |
| **presto.execution.abandoned\_queries.total\_count**(gauge)                     | Abandoned queries - total count.*Shown as query*                                                   |
| **presto.execution.canceled\_queries.one\_minute.count**(gauge)                 | Canceled queries - one minute count.*Shown as query*                                               |
| **presto.execution.canceled\_queries.one\_minute.rate**(gauge)                  | Canceled queries - one minute queries per second.*Shown as query*                                  |
| **presto.execution.canceled\_queries.total\_count**(gauge)                      | Canceled queries - total count.*Shown as query*                                                    |
| **presto.execution.completed\_queries.one\_minute.count**(gauge)                | Completed queries - one minute count.*Shown as query*                                              |
| **presto.execution.completed\_queries.one\_minute.rate**(gauge)                 | Completed queries - one minute queries per second.*Shown as query*                                 |
| **presto.execution.completed\_queries.total\_count**(gauge)                     | Completed queries - total count.*Shown as query*                                                   |
| **presto.execution.consumed\_cpu\_time\_secs.one\_minute.count**(gauge)         | CPU (processing) time consumed - one minute count (seconds).*Shown as second*                      |
| **presto.execution.consumed\_cpu\_time\_secs.one\_minute.rate**(gauge)          | CPU (processing) time consumed - one minute rate.*Shown as second*                                 |
| **presto.execution.consumed\_cpu\_time\_secs.total\_count**(gauge)              | CPU (processing) time consumed - total count (seconds).*Shown as second*                           |
| **presto.execution.cpu\_input\_byte\_rate.all\_time.avg**(gauge)                | Distribution of query input data rates (cpu) - all time average bytes per second.*Shown as byte*   |
| **presto.execution.cpu\_input\_byte\_rate.all\_time.p75**(gauge)                | Distribution of query input data rates (cpu) - all time bytes per second - p75.*Shown as byte*     |
| **presto.execution.cpu\_input\_byte\_rate.all\_time.p95**(gauge)                | Distribution of query input data rates (cpu) - all time bytes per second - p95.*Shown as byte*     |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.avg**(gauge)              | Distribution of query input data rates (cpu) - one minute average bytes per second.*Shown as byte* |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.count**(gauge)            | Distribution of query input data rates (cpu) - one minute count.*Shown as byte*                    |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.max**(gauge)              | Distribution of query input data rates (cpu) - one minute max bytes per second.*Shown as byte*     |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.min**(gauge)              | Distribution of query input data rates (cpu) - one minute min bytes per second.*Shown as byte*     |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.p75**(gauge)              | Distribution of query input data rates (cpu) - one minute bytes per second - p75.*Shown as byte*   |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.p95**(gauge)              | Distribution of query input data rates (cpu) - one minute bytes per second - p95.*Shown as byte*   |
| **presto.execution.cpu\_input\_byte\_rate.one\_minute.total**(gauge)            | Distribution of query input data rates (cpu) - one minute total bytes per second.*Shown as byte*   |
| **presto.execution.execution\_time.all\_time.avg**(gauge)                       | Query execution time (millisecond) - all time average.*Shown as millisecond*                       |
| **presto.execution.execution\_time.all\_time.count**(gauge)                     | Query execution time (millisecond) - all time count.*Shown as millisecond*                         |
| **presto.execution.execution\_time.all\_time.max**(gauge)                       | Query execution time (millisecond) - all time max.*Shown as millisecond*                           |
| **presto.execution.execution\_time.all\_time.min**(gauge)                       | Query execution time (millisecond) - all time min.*Shown as millisecond*                           |
| **presto.execution.execution\_time.all\_time.p75**(gauge)                       | Query execution time (millisecond) - all time - p75.*Shown as millisecond*                         |
| **presto.execution.execution\_time.all\_time.p95**(gauge)                       | Query execution time (millisecond) - all time - p95.*Shown as millisecond*                         |
| **presto.execution.execution\_time.one\_minute.avg**(gauge)                     | Query execution time (millisecond) - one minute average.*Shown as millisecond*                     |
| **presto.execution.execution\_time.one\_minute.max**(gauge)                     | Query execution time (millisecond) - one minute max.*Shown as millisecond*                         |
| **presto.execution.execution\_time.one\_minute.min**(gauge)                     | Query execution time (millisecond) - one minute min.*Shown as millisecond*                         |
| **presto.execution.execution\_time.one\_minute.p75**(gauge)                     | Query execution time (millisecond) - one minute p75.*Shown as millisecond*                         |
| **presto.execution.execution\_time.one\_minute.p95**(gauge)                     | Query execution time (millisecond) - one minute p95.*Shown as millisecond*                         |
| **presto.execution.executor.active\_count**(gauge)                              |
| **presto.execution.executor.blocked\_splits**(gauge)                            | Blocked splits count.*Shown as split*                                                              |
| **presto.execution.executor.completed\_task\_count**(gauge)                     | *Shown as task*                                                                                    |
| **presto.execution.executor.core\_pool\_size**(gauge)                           |
| **presto.execution.executor.pool\_size**(gauge)                                 |
| **presto.execution.executor.processor\_executor.queued\_task\_count**(gauge)    | Queued task count.*Shown as task*                                                                  |
| **presto.execution.executor.queued\_task\_count**(gauge)                        |
| **presto.execution.executor.running\_splits**(gauge)                            | Running splits count.*Shown as split*                                                              |
| **presto.execution.executor.task\_count**(gauge)                                | *Shown as task*                                                                                    |
| **presto.execution.executor.total\_splits**(gauge)                              | Total splits count.*Shown as split*                                                                |
| **presto.execution.executor.waiting\_splits**(gauge)                            | Waiting splits count.*Shown as split*                                                              |
| **presto.execution.external\_failures.one\_minute.count**(gauge)                | Failed queries (external) - one minute count.*Shown as query*                                      |
| **presto.execution.external\_failures.one\_minute.rate**(gauge)                 | Failed queries (external) - one minute failures per second.*Shown as query*                        |
| **presto.execution.external\_failures.total\_count**(gauge)                     | Failed queries (external) - total count.*Shown as query*                                           |
| **presto.execution.failed\_queries.one\_minute.count**(gauge)                   | Failed queries - one minute count.*Shown as query*                                                 |
| **presto.execution.failed\_queries.one\_minute.rate**(gauge)                    | Failed queries - one minute queries per second.*Shown as query*                                    |
| **presto.execution.failed\_queries.total\_count**(gauge)                        | Failed queries - total count.*Shown as query*                                                      |
| **presto.execution.input\_data\_size.one\_minute.count**(gauge)                 | Input data (bytes) - one minute count.*Shown as byte*                                              |
| **presto.execution.input\_data\_size.one\_minute.rate**(gauge)                  | Input data (bytes) - one minute bytes per second.*Shown as byte*                                   |
| **presto.execution.input\_data\_size.total\_count**(gauge)                      | Input data (bytes) - total count.*Shown as byte*                                                   |
| **presto.execution.input\_positions.one\_minute.count**(gauge)                  | Input positions (rows) - one minute count.*Shown as row*                                           |
| **presto.execution.input\_positions.one\_minute.rate**(gauge)                   | Input positions (rows) - one minute rows per second.*Shown as row*                                 |
| **presto.execution.input\_positions.total\_count**(gauge)                       | Input positions (rows) - total count.*Shown as row*                                                |
| **presto.execution.insufficient\_resources\_failures.one\_minute.count**(gauge) | Insufficient resources failures one minute count.                                                  |
| **presto.execution.insufficient\_resources\_failures.one\_minute.rate**(gauge)  | Insufficient resources failures one minute failures per second.                                    |
| **presto.execution.insufficient\_resources\_failures.total\_count**(gauge)      | Insufficient resources failures total count.                                                       |
| **presto.execution.internal\_failures.one\_minute.count**(gauge)                | Failed queries (internal) - one minute count.*Shown as query*                                      |
| **presto.execution.internal\_failures.one\_minute.rate**(gauge)                 | Failed queries (internal) - one minute queries per second.*Shown as query*                         |
| **presto.execution.internal\_failures.total\_count**(gauge)                     | Failed queries (internal) - total count.*Shown as query*                                           |
| **presto.execution.management\_executor.active\_count**(gauge)                  |
| **presto.execution.management\_executor.completed\_task\_count**(gauge)         | *Shown as task*                                                                                    |
| **presto.execution.management\_executor.queued\_task\_count**(gauge)            | *Shown as task*                                                                                    |
| **presto.execution.output\_data\_size.one\_minute.count**(gauge)                | Output data (bytes) - one minute count.*Shown as byte*                                             |
| **presto.execution.output\_data\_size.one\_minute.rate**(gauge)                 | Output data (bytes) - one minute bytes per second.*Shown as byte*                                  |
| **presto.execution.output\_data\_size.total\_count**(gauge)                     | Output data (bytes) - total count.*Shown as byte*                                                  |
| **presto.execution.output\_positions.one\_minute.count**(gauge)                 | Output positions (rows) - one minute count.*Shown as row*                                          |
| **presto.execution.output\_positions.one\_minute.rate**(gauge)                  | Output positions (rows) - one minute rows per second.*Shown as row*                                |
| **presto.execution.output\_positions.total\_count**(gauge)                      | Output positions (rows) - total count.*Shown as row*                                               |
| **presto.execution.running\_queries**(gauge)                                    | Active queries.*Shown as query*                                                                    |
| **presto.execution.started\_queries.one\_minute.count**(gauge)                  | Queries started - one minute count.*Shown as query*                                                |
| **presto.execution.started\_queries.one\_minute.rate**(gauge)                   | Queries started - one minute queries per second.*Shown as query*                                   |
| **presto.execution.started\_queries.total\_count**(gauge)                       | Queries started - total count.*Shown as query*                                                     |
| **presto.execution.task\_notification\_executor.active\_count**(gauge)          |
| **presto.execution.task\_notification\_executor.completed\_task\_count**(gauge) | *Shown as task*                                                                                    |
| **presto.execution.task\_notification\_executor.pool\_size**(gauge)             |
| **presto.execution.task\_notification\_executor.queued\_task\_count**(gauge)    | *Shown as task*                                                                                    |
| **presto.execution.user\_error\_failures.one\_minute.count**(gauge)             | Failed queries (user error) - one minute count.*Shown as query*                                    |
| **presto.execution.user\_error\_failures.one\_minute.rate**(gauge)              | Failed queries (user error) - one minute queries per second.*Shown as query*                       |
| **presto.execution.user\_error\_failures.total\_count**(gauge)                  | Failed queries (user error) - total count.*Shown as query*                                         |
| **presto.execution.wall\_input\_bytes\_rate.one\_minute.avg**(gauge)            | Input data rate (bytes) - one minute average.*Shown as byte*                                       |
| **presto.execution.wall\_input\_bytes\_rate.one\_minute.max**(gauge)            | Input data rate (bytes) - one minute max.*Shown as byte*                                           |
| **presto.execution.wall\_input\_bytes\_rate.one\_minute.min**(gauge)            | Input data rate (bytes) - one minute min.*Shown as byte*                                           |
| **presto.execution.wall\_input\_bytes\_rate.one\_minute.p75**(gauge)            | Input data rate (bytes) - one minute p75.*Shown as byte*                                           |
| **presto.execution.wall\_input\_bytes\_rate.one\_minute.p95**(gauge)            | Input data rate (bytes) - one minute p95.*Shown as byte*                                           |
| **presto.failure\_detector.active\_count**(gauge)                               | Active node count.*Shown as node*                                                                  |
| **presto.memory.assigned\_queries**(gauge)                                      | Memory (assigned queries).*Shown as byte*                                                          |
| **presto.memory.blocked\_nodes**(gauge)                                         | Memory (blocked nodes).*Shown as byte*                                                             |
| **presto.memory.cluster\_memory\_bytes**(gauge)                                 | Cluster memory (bytes).*Shown as byte*                                                             |
| **presto.memory.free\_bytes**(gauge)                                            | Memory (free bytes).*Shown as byte*                                                                |
| **presto.memory.free\_distributed\_bytes**(gauge)                               | Memory (free distributed bytes).*Shown as byte*                                                    |
| **presto.memory.max\_bytes**(gauge)                                             | Memory (max bytes).*Shown as byte*                                                                 |
| **presto.memory.nodes**(gauge)                                                  | Memory (nodes).*Shown as byte*                                                                     |
| **presto.memory.reserved\_bytes**(gauge)                                        | Memory (reserved bytes).*Shown as byte*                                                            |
| **presto.memory.reserved\_distributed\_bytes**(gauge)                           | Memory (reserved distributed bytes).*Shown as byte*                                                |
| **presto.memory.reserved\_revocable\_bytes**(gauge)                             | Memory (reserved revocable bytes).*Shown as byte*                                                  |
| **presto.memory.reserved\_revocable\_distributed\_bytes**(gauge)                | Memory (reserved revocable distributed bytes).*Shown as byte*                                      |
| **presto.memory.total\_distributed\_bytes**(gauge)                              | Memory (total distributed bytes).*Shown as byte*                                                   |

### Events{% #events %}

Presto does not include any events.

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

**presto.can\_connect**

Returns `CRITICAL` if the Agent is unable to connect to and collect metrics from the monitored Presto instance, `WARNING` if no metrics are collected, and `OK` otherwise.

*Statuses: ok, critical, warning*

## Troubleshooting{% #troubleshooting %}

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