---
title: Pure Storage FlashBlade
description: Monitor the performance and utilization of Pure Storage FlashBlade
breadcrumbs: Docs > Integrations > Pure Storage FlashBlade
---

# Pure Storage FlashBlade
Supported OS Integration version2.0.2   Pure Storage FlashBlade Dashboard - Overview (Top)Pure Storage FlashBlade Dashboard - Overview (Middle)Pure Storage FlashBlade Dashboard - Overview (Bottom)
## Overview{% #overview %}

This check monitors the [Pure Storage FlashBlade](https://www.purestorage.com/products.html) through the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) and the [Pure Storage FlashBlade OpenMetrics exporter](https://github.com/PureStorage-OpenConnect/pure-fb-openmetrics-exporter).

The integration can provide performance data at the array, client, share, and bucket level, as well as high-level capacity and configuration information.

You can monitor multiple FlashBlades and aggregate these into a single dashboard, or group them together by customer-defined environment.

**This integration requires the following**:

- FlashBlade Purity 4.1.x+
- Datadog Agent v7.26.x+ to use OpenMetricsBaseCheckV2
- Python 3
- The Pure Storage FlashBlade OpenMetrics exporter v1.0.11+ is installed and running in a containerized environment. Refer to the [Pure Storage GitHub repo](https://github.com/PureStorage-OpenConnect/pure-fb-openmetrics-exporter) for installation instructions.

## 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 %}

1. [Download and launch the Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest).
1. Manually install the Pure FlashBlade integration. See [Use Community Integrations](https://docs.datadoghq.com/agent/guide/community-integrations-installation-with-docker-agent) for more details based on your environment.

#### Host{% #host %}

To configure this check for an Agent running on a host, run `datadog-agent integration install -t datadog-purefb==2.0.0`.

### Configuration{% #configuration %}

1. Create a user on your FlashBlade with the Read-Only role and generate an API token for this user.

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

**Note**: The `/array` endpoint is required as an absolute minimum when creating your configuration file.

```yaml
init_config:
   timeout: 120

instances:

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/array?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fb_array_name:<full_fqdn>
       - host:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 120

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/clients?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fb_array_name:<full_fqdn>
       - host:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 600

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/usage?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fb_array_name:<full_fqdn>
       - host:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 600
```
[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 `purefb` under the Checks section.

### Troubleshooting{% #troubleshooting %}

#### Arrays are not showing in dashboard{% #arrays-are-not-showing-in-dashboard %}

The dashboards included in this integration use the tags `env`, `host`, and `fb_array_name`. Make sure that these are set per instance.

```yaml
 tags:
    - env:<env>
    - fb_array_name:<full_fqdn>
    - host:<full_fqdn>
```

#### Increasing collection interval{% #increasing-collection-interval %}

For the `/array` endpoint, the Pure Storage FlashBlade check sets `min_collection_interval` to `120` by default, and the minimum recommended value is `15`. You may increase or decrease `min_collection_interval` in the `purefb.d/conf.yaml` file if necessary:

```yaml
min_collection_interval: 120
```

For the `/clients`, and `/usage` endpoints, the Pure Storage FlashBlade check sets `min_collection_interval` to `600` by default , and the minimum recommended value is `120`. You may increase or decrease `min_collection_interval` in the `purefb.d/conf.yaml` file if necessary:

```yaml
min_collection_interval: 600
```

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

### Metrics{% #metrics %}

|  |
|  |
| **purefb.alerts.open**(gauge)                                         | Open alert events                                                          |
| **purefb.array.http\_specific\_performance\_latency\_usec**(gauge)    | FlashBlade array HTTP specific latency*Shown as microsecond*               |
| **purefb.array.http\_specific\_performance\_throughput\_iops**(gauge) | FlashBlade array HTTP specific throughput*Shown as operation*              |
| **purefb.array.nfs\_specific\_performance\_latency\_usec**(gauge)     | FlashBlade array NFS latency*Shown as microsecond*                         |
| **purefb.array.nfs\_specific\_performance\_throughput\_iops**(gauge)  | FlashBlade array NFS throughput*Shown as operation*                        |
| **purefb.array.performance\_average\_bytes**(gauge)                   | FlashBlade array average operations size*Shown as byte*                    |
| **purefb.array.performance\_bandwidth\_bytes**(gauge)                 | FlashBlade array bandwidth*Shown as byte*                                  |
| **purefb.array.performance\_latency\_usec**(gauge)                    | FlashBlade array latency*Shown as microsecond*                             |
| **purefb.array.performance\_replication**(gauge)                      | FlashBlade array replication throughput in bytes per second*Shown as byte* |
| **purefb.array.performance\_throughput\_iops**(gauge)                 | FlashBlade array throughput*Shown as operation*                            |
| **purefb.array.s3\_specific\_performance\_latency\_usec**(gauge)      | FlashBlade array S3 specific latency*Shown as microsecond*                 |
| **purefb.array.s3\_specific\_performance\_throughput\_iops**(gauge)   | FlashBlade array S3 specific throughput*Shown as operation*                |
| **purefb.array.space\_bytes**(gauge)                                  | FlashBlade space in bytes*Shown as byte*                                   |
| **purefb.array.space\_data\_reduction\_ratio**(gauge)                 | FlashBlade space data reduction                                            |
| **purefb.array.space\_parity**(gauge)                                 | FlashBlade space parity                                                    |
| **purefb.array.space\_utilization**(gauge)                            | FlashBlade array space utilization in percent*Shown as percent*            |
| **purefb.buckets.object\_count**(gauge)                               | FlashBlade buckets object count                                            |
| **purefb.buckets.performance\_average\_bytes**(gauge)                 | FlashBlade buckets average operations size*Shown as byte*                  |
| **purefb.buckets.performance\_bandwidth\_bytes**(gauge)               | FlashBlade buckets bandwidth*Shown as byte*                                |
| **purefb.buckets.performance\_latency\_usec**(gauge)                  | FlashBlade buckets latency*Shown as microsecond*                           |
| **purefb.buckets.performance\_throughput\_iops**(gauge)               | FlashBlade buckets throughput*Shown as operation*                          |
| **purefb.buckets.quota\_space\_bytes**(gauge)                         | FlashBlade buckets quota space in bytes*Shown as byte*                     |
| **purefb.buckets.s3\_specific\_performance\_latency\_usec**(gauge)    | FlashBlade buckets S3 specific latency*Shown as microsecond*               |
| **purefb.buckets.s3\_specific\_performance\_throughput\_iops**(gauge) | FlashBlade buckets S3 specific throughput*Shown as operation*              |
| **purefb.buckets.space\_bytes**(gauge)                                | FlashBlade buckets space in bytes*Shown as byte*                           |
| **purefb.buckets.space\_data\_reduction\_ratio**(gauge)               | FlashBlade buckets space data reduction                                    |
| **purefb.clients.performance\_average\_bytes**(gauge)                 | FlashBlade array clients average operations size*Shown as byte*            |
| **purefb.clients.performance\_bandwidth\_bytes**(gauge)               | FlashBlade array clients bandwidth*Shown as byte*                          |
| **purefb.clients.performance\_latency\_usec**(gauge)                  | FlashBlade array clients latency*Shown as microsecond*                     |
| **purefb.clients.performance\_throughput\_iops**(gauge)               | FlashBlade array clients throughput*Shown as operation*                    |
| **purefb.file.system\_usage\_groups\_bytes**(gauge)                   | FlashBlade file system groups usage*Shown as byte*                         |
| **purefb.file.system\_usage\_users\_bytes**(gauge)                    | FlashBlade file system users usage*Shown as byte*                          |
| **purefb.file.systems\_performance\_average\_bytes**(gauge)           | FlashBlade filesystems average operations size*Shown as byte*              |
| **purefb.file.systems\_performance\_bandwidth\_bytes**(gauge)         | FlashBlade filesystems bandwidth*Shown as byte*                            |
| **purefb.file.systems\_performance\_latency\_usec**(gauge)            | FlashBlade filesystems latency*Shown as microsecond*                       |
| **purefb.file.systems\_performance\_throughput\_iops**(gauge)         | FlashBlade filesystems throughput*Shown as operation*                      |
| **purefb.file.systems\_space\_bytes**(gauge)                          | FlashBlade file systems space in bytes*Shown as byte*                      |
| **purefb.file.systems\_space\_data\_reduction\_ratio**(gauge)         | FlashBlade file systems space data reduction                               |
| **purefb.hardware.connectors\_performance\_bandwidth\_bytes**(gauge)  | FlashBlade hardware connectors performance bandwidth*Shown as byte*        |
| **purefb.hardware.connectors\_performance\_errors**(gauge)            | FlashBlade hardware connectors performance errors per sec                  |
| **purefb.hardware.connectors\_performance\_throughput\_pkts**(gauge)  | FlashBlade hardware connectors performance throughputh                     |
| **purefb.hardware.health**(gauge)                                     | FlashBlade hardware component health status                                |
| **purefb.info**(gauge)                                                | FlashBlade system information                                              |
| **purefb.nfs.export\_rule**(gauge)                                    | FlashBlade NFS export rules                                                |

### Events{% #events %}

The PureFB integration does not include any events.

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

**purefb.openmetrics.health**

Returns `CRITICAL` if the Agent is unable to connect to the FlashBlade OpenMetrics endpoint, otherwise returns `OK`.

*Statuses: ok, critical*

## Support{% #support %}

For support or feature requests, contact Pure Storage through the following methods:

- Email: [pure-observability@purestorage.com](mailto:pure-observability@purestorage.com)
- Slack: [Pure Storage Code// Observability Channel](https://code-purestorage.slack.com/messages/C0357KLR1EU).
