Pure Storage FlashArray

Supported OS Linux Mac OS Windows

Integrationv1.0.1

Overview

This check monitors the Pure Storage FlashArray through the Datadog Agent and the Pure Storage Prometheus exporter.

The integration can provide performance data at the array, host, volume and pod level, as well as high-level capacity and configuration information.

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

This integration requires the following:

  • Agent v7.26.x+ to utilize OpenMetricsBaseCheckV2
  • Python 3
  • The Pure Storage Prometheus exporter is installed and running in a containerized environment. Refer to the GitHub repo for installation instructions.

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 for guidance on applying these instructions.

Installation

  1. Download and launch the Datadog Agent.
  2. Manually install the Pure FlashArray integration. See Use Community Integrations for more details based on your environment.

Host

To configure this check for an Agent running on a host, run datadog-agent integration install -t datadog-purefa==<INTEGRATION_VERSION>.

Note: <INTEGRATION_VERSION> can be found within the CHANGELOG.md for Datadog Integration Extras.

  • e.g. datadog-agent integration install -t datadog-purefa==1.0.1

Configuration

  1. Create a local user on your FlashArray with the Read-Only role and generate an API token for this user. Generate an API Key
  2. Add the following configuration block to the purefa.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory to start collecting your PureFA performance data. See the sample purefa.d/conf.yaml for all available configuration options.

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

init_config:
   timeout: 60

instances:

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/flasharray/array?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fa_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/flasharray/volumes?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fa_array_name:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 120

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/flasharray/hosts?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fa_array_name:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 120

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/flasharray/pods?endpoint=<array_ip_or_fqdn>
    tags:
       - env:<env>
       - fa_array_name:<full_fqdn>
       - host:<full_fqdn>
    headers:
       Authorization: Bearer <api_token>
    min_collection_interval: 120
  1. Restart the Agent.

Validation

Run the Agent’s status subcommand and look for purefa under the Checks section.

Troubleshooting

Arrays are not showing in dashboard

The dashboards included in this integration use the tags env, and fa_array_name. Make sure that these are set per instance. host must also be set for the /array and /pods endpoints in purefa.d/conf.yaml.

- tags:
   - env:<env>
   - fa_array_name:<full_fqdn>
   - host:<full_fqdn>

Increasing collection interval

The Pure Storage FlashArray check sets min_collection_interval to 120 by default, and the minimum recommended value is 20. You may increase/decrease min_collection_interval in the purefa.d/conf.yaml file if necessary:

min_collection_interval: 120

Data Collected

Metrics

purefa.alerts.total
(gauge)
Number of alert events
purefa.array.performance_avg_block_bytes
(gauge)
FlashArray avg block size
Shown as byte
purefa.array.performance_bandwidth_bytes
(gauge)
FlashArray bandwidth
Shown as byte
purefa.array.performance_iops
(gauge)
FlashArray IOPS
Shown as operation
purefa.array.performance_latency_usec
(gauge)
FlashArray latency
Shown as microsecond
purefa.array.performance_qdepth
(gauge)
FlashArray queue depth
purefa.array.space_capacity_bytes
(gauge)
FlashArray overall space capacity
Shown as byte
purefa.array.space_datareduction_ratio
(gauge)
FlashArray overall data reduction
purefa.array.space_provisioned_bytes
(gauge)
FlashArray overall provisioned space
Shown as byte
purefa.array.space_used_bytes
(gauge)
FlashArray overall used space
Shown as byte
purefa.hardware.chassis_health
(gauge)
FlashArray hardware chassis health status
purefa.hardware.component_health
(gauge)
FlashArray hardware component health status
purefa.hardware.controller_health
(gauge)
FlashArray hardware controller health status
purefa.hardware.power_volts
(gauge)
FlashArray hardware power supply voltage
Shown as volt
purefa.hardware.temperature_celsius
(gauge)
FlashArray hardware temperature sensors
Shown as degree celsius
purefa.host.performance_bandwidth_bytes
(gauge)
FlashArray host bandwidth
Shown as byte
purefa.host.performance_iops
(gauge)
FlashArray host IOPS
Shown as operation
purefa.host.performance_latency_usec
(gauge)
FlashArray host IO latency
Shown as microsecond
purefa.host.space_bytes
(gauge)
FlashArray host volumes allocated space
Shown as byte
purefa.host.space_datareduction_ratio
(gauge)
FlashArray host volumes data reduction ratio
purefa.host.space_size_bytes
(gauge)
FlashArray host volumes size
Shown as byte
purefa.info
(gauge)
FlashArray host volumes connections
purefa.pod.mediator_status
(gauge)
FlashArray pod mediatorstatus
purefa.pod.performance_bandwidth_bytes
(gauge)
FlashArray pod bandwidth
Shown as byte
purefa.pod.performance_iops
(gauge)
FlashArray pod IOPS
Shown as operation
purefa.pod.performance_latency_usec
(gauge)
FlashArray pod IO latency
Shown as microsecond
purefa.pod.space_bytes
(gauge)
FlashArray pod size
Shown as byte
purefa.pod.space_datareduction_ratio
(gauge)
FlashArray pod data reduction ratio
purefa.pod.space_size_bytes
(gauge)
FlashArray pod size
Shown as byte
purefa.pod.status
(gauge)
FlashArray pod status
purefa.volume.performance_iops
(gauge)
FlashArray volume IOPS
Shown as operation
purefa.volume.performance_latency_usec
(gauge)
FlashArray volume IO latency
Shown as microsecond
purefa.volume.performance_throughput_bytes
(gauge)
FlashArray volume throughput
Shown as byte
purefa.volume.space_bytes
(gauge)
FlashArray allocated space
Shown as byte
purefa.volume.space_datareduction_ratio
(gauge)
FlashArray volumes data reduction ratio
purefa.volume.space_size_bytes
(gauge)
FlashArray volumes size
Shown as byte

Events

The PureFA integration does not include any events.

Service Checks

See service_checks.json for a list of service checks provided by this integration.

Support

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