---
title: Portworx
description: Collect runtime metrics from a Portworx Instance.
breadcrumbs: Docs > Integrations > Portworx
---

# Portworx
Supported OS Integration version1.1.1
## Overview{% #overview %}

Get metrics from Portworx service in real time to:

- Monitor health and performance of your Portworx Cluster
- Track disk usage, latency and throughput for Portworx volumes

## Setup{% #setup %}

The Portworx 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 Portworx 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-portworx==<INTEGRATION_VERSION>
   ```

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

### Configuration{% #configuration %}

1. Edit the `portworx.d/conf.yaml` file in the `conf.d/` folder at the root of your [Agent's configuration directory](https://docs.datadoghq.com/agent/guide/agent-configuration-files/#agent-configuration-directory) to start collecting your Portworx metrics. See the [sample portworx.d/conf.yaml](https://github.com/DataDog/integrations-extras/blob/master/portworx/datadog_checks/portworx/data/conf.yaml.example) for all available configuration options.

   ```yaml
   init_config:
   
   instances:
    # url of the metrics endpoint of prometheus
    - prometheus_endpoint: http://localhost:9001/metrics
   ```

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

### Validation{% #validation %}

[Run the Agent's `info` subcommand](https://docs.datadoghq.com/agent/faq/agent-status-and-information/), you should see something like the following:

## Compatibility{% #compatibility %}

The Portworx check is compatible with Portworx 1.4.0 and possible earlier versions.

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

### Metrics{% #metrics %}

|  |
|  |
| **portworx.alerts.pool\_expand\_failed**(gauge)               | Triggered when a pool expand operation fails                                                                  |
| **portworx.alerts.pool\_expand\_successful**(gauge)           | Triggered when a pool expand operation succeeds                                                               |
| **portworx.cluster.cpu\_percent**(gauge)                      | Node CPU Percentage*Shown as percent*                                                                         |
| **portworx.cluster.disk\_available\_bytes**(gauge)            | Node Available disk space*Shown as byte*                                                                      |
| **portworx.cluster.disk\_total\_bytes**(gauge)                | Node total bytes*Shown as byte*                                                                               |
| **portworx.cluster.disk\_utilized\_bytes**(gauge)             | Node Utilized bytes*Shown as byte*                                                                            |
| **portworx.cluster.memory\_utilized\_percent**(gauge)         | Node Memory Utilization Percentage*Shown as percent*                                                          |
| **portworx.cluster.pendingio**(gauge)                         | Node Pendiong IO's                                                                                            |
| **portworx.cluster.status.cluster\_quorum**(gauge)            | Indicates if the cluster is in quorum                                                                         |
| **portworx.cluster.status.cluster\_size**(gauge)              | Node count for your portworx cluster                                                                          |
| **portworx.cluster.status.nodes\_offline**(gauge)             | Number of offline nodes in the cluster (includes storage and storageless)                                     |
| **portworx.cluster.status.nodes\_online**(gauge)              | Number of online nodes in the cluster (includes storage and storageless)                                      |
| **portworx.cluster.status.nodes\_storage\_down**(gauge)       | Number of nodes where the storage is full or down                                                             |
| **portworx.cluster.status.storage\_nodes\_offline**(gauge)    | Number of storage nodes that are offline                                                                      |
| **portworx.cluster.status.storage\_nodes\_online**(gauge)     | Number of storage nodes that are online                                                                       |
| **portworx.cluster.status\_cluster.quorum**(gauge)            | Cluster Quorum                                                                                                |
| **portworx.cluster.status\_cluster.size**(gauge)              | Cluster Size                                                                                                  |
| **portworx.cluster.status\_nodes\_offline**(gauge)            | Cluster Number of Offline nodes                                                                               |
| **portworx.cluster.status\_nodes\_online**(gauge)             | Cluster Number of Online nodes                                                                                |
| **portworx.cluster.status\_nodes\_storage\_down**(gauge)      | Cluster Number of nodes with storage down                                                                     |
| **portworx.cluster.status\_storage\_nodes\_offline**(gauge)   | Cluster Number of nodes with storage offline                                                                  |
| **portworx.cluster.status\_storage\_nodes\_online**(gauge)    | Cluster Number of nodes with storage online                                                                   |
| **portworx.disk\_stats.interval\_seconds**(gauge)             | Disk stats for interval seconds*Shown as second*                                                              |
| **portworx.disk\_stats.io\_seconds**(gauge)                   | Disk stats for io's per seconds*Shown as second*                                                              |
| **portworx.disk\_stats.num\_reads**(gauge)                    | Total number of read operations completed successfully for this disk                                          |
| **portworx.disk\_stats.num\_writes**(gauge)                   | Total number of write operations completed successfully for this disk                                         |
| **portworx.disk\_stats.progress\_io**(gauge)                  | Disk stats for io's in progress*Shown as second*                                                              |
| **portworx.disk\_stats.read\_bytes**(gauge)                   | Disk stats for number of read bytes*Shown as byte*                                                            |
| **portworx.disk\_stats.read\_latency\_seconds**(gauge)        | Disk stats for read latency in seconds*Shown as second*                                                       |
| **portworx.disk\_stats.read\_seconds**(gauge)                 | Disk stats for of reads per seconds*Shown as second*                                                          |
| **portworx.disk\_stats.reads**(gauge)                         | Disk stats for number of reads                                                                                |
| **portworx.disk\_stats.used\_bytes**(gauge)                   | Disk stats for used bytes*Shown as byte*                                                                      |
| **portworx.disk\_stats.write\_bytes**(gauge)                  | Disk stats for of written bytes*Shown as byte*                                                                |
| **portworx.disk\_stats.write\_latency\_seconds**(gauge)       | Disk stats for write latency in seconds*Shown as second*                                                      |
| **portworx.disk\_stats.write\_seconds**(gauge)                | Disk stats for writes per seconds*Shown as second*                                                            |
| **portworx.disk\_stats.writes**(gauge)                        | Disk stats for number of writes                                                                               |
| **portworx.fs.capacity\_bytes**(gauge)                        | Filesystem stats for total bytes*Shown as byte*                                                               |
| **portworx.fs.usage\_bytes**(gauge)                           | Filesystem stats for used bytes*Shown as byte*                                                                |
| **portworx.network\_io.bytessent**(gauge)                     | Network stats for bytes sent*Shown as byte*                                                                   |
| **portworx.network\_io.received\_bytes**(gauge)               | Network stats for bytes received*Shown as byte*                                                               |
| **portworx.node\_status.licence\_expiry**(gauge)              | Number of days until License (or License lease) expires (<0 means Expired)                                    |
| **portworx.node\_status.status**(gauge)                       | Status of this node                                                                                           |
| **portworx.pool\_stats.pool\_flushed\_bytes**(gauge)          | Pool stats for flushed bytes*Shown as byte*                                                                   |
| **portworx.pool\_stats.pool\_flushms**(gauge)                 | Pool stats for flush latency*Shown as millisecond*                                                            |
| **portworx.pool\_stats.pool\_num\_flushes**(gauge)            | Pool stats for number of flushes                                                                              |
| **portworx.pool\_stats.pool\_write\_latency\_seconds**(gauge) | Pool stats for write latency*Shown as second*                                                                 |
| **portworx.pool\_stats.pool\_writethroughput**(gauge)         | Pool stats for write throughput*Shown as byte*                                                                |
| **portworx.pool\_stats.pool\_written\_bytes**(gauge)          | Pool stats for written bytes*Shown as byte*                                                                   |
| **portworx.pool\_stats.status**(gauge)                        | Status of this pool (0=Offline, 1=Online, 2=Full, 3=NotFound, 4=Maintenance)                                  |
| **portworx.pool\_stats.write\_latency\_seconds.main**(gauge)  | Average time spent per write operation for this pool*Shown as second*                                         |
| **portworx.pool\_stats.write\_throughput.main**(gauge)        | Average number of bytes written per second for this pool                                                      |
| **portworx.proc\_stats.cpu\_percenttime**(gauge)              | Proc stats for CPU percent time                                                                               |
| **portworx.proc\_stats.res**(gauge)                           | Proc stats for resident memory size                                                                           |
| **portworx.proc\_stats.virt**(gauge)                          | Proc stats for virtual memory size                                                                            |
| **portworx.volume.attached\_state**(gauge)                    | Attached state for this volume (valid only if volume is attached)                                             |
| **portworx.volume.capacity\_bytes**(gauge)                    | Volume stats for capacity bytes*Shown as byte*                                                                |
| **portworx.volume.currhalevel**(gauge)                        | Volume stats for the current HA level                                                                         |
| **portworx.volume.depth\_io**(gauge)                          | Volume stats for io depth                                                                                     |
| **portworx.volume.dev\_depth\_io**(gauge)                     | Volume Device stats for io depth                                                                              |
| **portworx.volume.dev\_read\_latency\_seconds**(gauge)        | Volume Device stats for read latency*Shown as second*                                                         |
| **portworx.volume.dev\_readthroughput**(gauge)                | Volume Device stats for read throughput*Shown as byte*                                                        |
| **portworx.volume.dev\_write\_latency\_seconds**(gauge)       | Volume Device stats for write latency*Shown as second*                                                        |
| **portworx.volume.dev\_writethroughput**(gauge)               | Volume Device stats for write throughput*Shown as byte*                                                       |
| **portworx.volume.discard\_ops**(gauge)                       | Number of discard operations for this volume                                                                  |
| **portworx.volume.discarded\_bytes**(gauge)                   | Number of discarded bytes for this volume*Shown as byte*                                                      |
| **portworx.volume.halevel**(gauge)                            | Volume stats for HA Level                                                                                     |
| **portworx.volume.iopriority**(gauge)                         | Volume stats for IO Priority                                                                                  |
| **portworx.volume.iops**(gauge)                               | Volume stats for IOPS                                                                                         |
| **portworx.volume.num\_long\_flushes**(gauge)                 | Volume stats for number of flushes                                                                            |
| **portworx.volume.num\_long\_reads**(gauge)                   | Volume stats for number of long reads                                                                         |
| **portworx.volume.num\_long\_writes**(gauge)                  | Volume stats for number of long writes                                                                        |
| **portworx.volume.read\_bytes**(gauge)                        | Number of successfully read bytes during this interval for this volume*Shown as byte*                         |
| **portworx.volume.read\_iops**(gauge)                         | Average number of completed read operations per second for this volume                                        |
| **portworx.volume.read\_latency\_seconds**(gauge)             | Average time spent per successfully completed read operation in seconds for this volume*Shown as second*      |
| **portworx.volume.readthroughput**(gauge)                     | Volume stats for read throughput*Shown as byte*                                                               |
| **portworx.volume.replication\_status**(gauge)                | Replication status for this volume (0:up, 1:not in quorum, 2:resync state, 3:degraded, 4:detached, 5:restore) |
| **portworx.volume.state**(gauge)                              | State for this volume                                                                                         |
| **portworx.volume.usage\_bytes**(gauge)                       | Volume stats for used bytes*Shown as byte*                                                                    |
| **portworx.volume.vol\_read\_latency\_seconds**(gauge)        | Volume stats for read latency*Shown as second*                                                                |
| **portworx.volume.vol\_write\_latency\_seconds**(gauge)       | Volume stats for write latency*Shown as second*                                                               |
| **portworx.volume.write\_iops**(gauge)                        | Average number of completed write operations per second for this volume                                       |
| **portworx.volume.write\_latency\_seconds**(gauge)            | Average time spent per successfully completed write operation in seconds for this volume*Shown as second*     |
| **portworx.volume.writethroughput**(gauge)                    | Volume stats for write throughput*Shown as byte*                                                              |
| **portworx.volume.written\_bytes**(gauge)                     | Volume stats for written bytes*Shown as byte*                                                                 |

### Events{% #events %}

The Portworx check does not include any events.

## Troubleshooting{% #troubleshooting %}

### Agent cannot connect{% #agent-cannot-connect %}

```text
    portworx
    -------
      - instance #0 [ERROR]: "('Connection aborted.', error(111, 'Connection refused'))"
      - Collected 0 metrics, 0 events & 0 service check
```

Check that the `url` in `portworx.yaml` is correct.

## Further Reading{% #further-reading %}

- [Portworx + Datadog: Monitor your complete container infrastructure](https://www.datadoghq.com/blog/portworx-integration/)
