Pure Storage FlashArray

Supported OS Linux Windows Mac OS

Integration version1.2.0

Overview

This check monitors the Pure Storage FlashArray through the Datadog Agent and the Pure Storage OpenMetrics 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 OpenMetrics 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 sudo -u dd-agent -- 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. sudo -u dd-agent -- datadog-agent integration install -t datadog-purefa==1.2.0

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/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/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/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/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

  - openmetrics_endpoint: http://<exporter_ip_or_fqdn>:<port>/metrics/directories?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.

Upgrading to new versions of this integration

From PureFA Agent Check 1.0.x to 1.1.x

1.1.x supports both the Pure Storage OpenMetrics exporter and the deprecated Pure Storage Prometheus exporter.

The dashboard for the deprecated Pure Storage Prometheus exporter has been renamed to Pure FlashArray - Overview (Legacy Exporter).

A listing of metrics that are both shared and unique to the different exporters are listed in metrics.py. You may need to update your dashboards and/or your alerts to match the new metric names when migrating from the Pure Storage Prometheus exporter to the Pure Storage OpenMetrics exporter. Please contact Pure Storage with the information in the Support tab if you have any questions.

When migrating from Pure Storage Prometheus exporter to the Pure Storage OpenMetrics exporter, the endpoints no longer have /flasharray in the endpoint URI.

In future versions of the PureFA Agent Check, the metric names from the Pure Storage Prometheus exporter will be removed.

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.open
(gauge)
FlashArray open alert events.
purefa.alerts.total
(gauge)
(Legacy) Number of alert events.
purefa.array.performance_average_bytes
(gauge)
FlashArray array average operations size in bytes.
Shown as byte
purefa.array.performance_avg_block_bytes
(gauge)
(Legacy) FlashArray avg block size.
Shown as byte
purefa.array.performance_bandwidth_bytes
(gauge)
FlashArray array throughput in bytes per second.
Shown as byte
purefa.array.performance_iops
(gauge)
(Legacy) FlashArray IOPS.
Shown as operation
purefa.array.performance_latency_usec
(gauge)
FlashArray array latency in microseconds.
Shown as microsecond
purefa.array.performance_qdepth
(gauge)
(Legacy) FlashArray queue depth.
purefa.array.performance_queue_depth_ops
(gauge)
FlashArray array queue depth size.
Shown as operation
purefa.array.performance_throughput_iops
(gauge)
FlashArray array throughput in iops.
Shown as operation
purefa.array.space_bytes
(gauge)
FlashArray array space in bytes.
Shown as byte
purefa.array.space_capacity_bytes
(gauge)
(Legacy) FlashArray overall space capacity.
Shown as byte
purefa.array.space_data_reduction_ratio
(gauge)
FlashArray array space data reduction.
purefa.array.space_datareduction_ratio
(gauge)
(Legacy) FlashArray overall data reduction.
purefa.array.space_provisioned_bytes
(gauge)
(Legacy) FlashArray overall provisioned space.
Shown as byte
purefa.array.space_used_bytes
(gauge)
(Legacy) FlashArray overall used space.
Shown as byte
purefa.array.space_utilization
(gauge)
FlashArray array space utilization in percent.
Shown as percent
purefa.directory.performance_average_bytes
(gauge)
FlashArray directory average operations size in bytes.
Shown as byte
purefa.directory.performance_bandwidth_bytes
(gauge)
FlashArray directory throughput in bytes per second.
Shown as byte
purefa.directory.performance_latency_usec
(gauge)
FlashArray directory latency in microseconds.
Shown as microsecond
purefa.directory.performance_throughput_iops
(gauge)
FlashArray directory throughput in iops.
Shown as operation
purefa.directory.space_bytes
(gauge)
FlashArray directory space in bytes.
Shown as byte
purefa.directory.space_data_reduction_ratio
(gauge)
FlashArray directory space data reduction.
purefa.drive.capacity_bytes
(gauge)
FlashArray drive capacity in bytes.
Shown as byte
purefa.hardware.chassis_health
(gauge)
(Legacy) FlashArray hardware chassis health status.
purefa.hardware.component_health
(gauge)
(Legacy) FlashArray hardware component health status.
purefa.hardware.controller_health
(gauge)
(Legacy) FlashArray hardware controller health status.
purefa.hardware.power_volts
(gauge)
(Legacy) FlashArray hardware power supply voltage.
Shown as volt
purefa.hardware.temperature_celsius
(gauge)
(Legacy) FlashArray hardware temperature sensors.
Shown as degree celsius
purefa.host.connections_info
(gauge)
FlashArray host volumes connections.
purefa.host.connectivity_info
(gauge)
FlashArray host connectivity info.
purefa.host.performance_average_bytes
(gauge)
FlashArray host average operations size in bytes.
Shown as byte
purefa.host.performance_bandwidth_bytes
(gauge)
FlashArray host bandwidth in bytes per second.
Shown as byte
purefa.host.performance_iops
(gauge)
(Legacy) FlashArray host IOPS.
Shown as operation
purefa.host.performance_latency_usec
(gauge)
FlashArray host latency in microseconds.
Shown as microsecond
purefa.host.performance_throughput_iops
(gauge)
FlashArray host throughput in iops.
Shown as operation
purefa.host.space_bytes
(gauge)
FlashArray host space in bytes.
Shown as byte
purefa.host.space_data_reduction_ratio
(gauge)
FlashArray host space data reduction.
purefa.host.space_datareduction_ratio
(gauge)
(Legacy) FlashArray host volumes data reduction ratio.
purefa.host.space_size_bytes
(gauge)
FlashArray host volumes size.
Shown as byte
purefa.hw.component_status
(gauge)
FlashArray hardware component status.
purefa.hw.component_temperature_celsius
(gauge)
FlashArray hardware component temperature in C.
Shown as degree celsius
purefa.hw.component_voltage_volt
(gauge)
FlashArray hardware component voltage.
Shown as volt
purefa.info
(gauge)
FlashArray system information.
purefa.network.interface_performance_bandwidth_bytes
(gauge)
FlashArray network interface bandwidth in bytes per second
Shown as byte
purefa.network.interface_performance_errors
(gauge)
FlashArray network interface errors in errors per second
Shown as error
purefa.network.interface_performance_throughput_pkts
(gauge)
FlashArray network interface throughput in packets per second.
Shown as packet
purefa.pod.mediator_status
(gauge)
(Legacy) FlashArray pod mediatorstatus.
purefa.pod.performance_average_bytes
(gauge)
FlashArray pod average operations size.
Shown as byte
purefa.pod.performance_bandwidth_bytes
(gauge)
FlashArray pod throughput in bytes per second.
Shown as byte
purefa.pod.performance_iops
(gauge)
(Legacy) FlashArray pod IOPS.
Shown as operation
purefa.pod.performance_latency_usec
(gauge)
FlashArray pod latency in microseconds.
Shown as microsecond
purefa.pod.performance_replication_bandwidth_bytes
(gauge)
FlashArray pod replication bandwidth.
Shown as byte
purefa.pod.performance_throughput_iops
(gauge)
FlashArray pod throughput in iops.
Shown as operation
purefa.pod.replica_links_lag_average_sec
(gauge)
FlashArray pod links average lag in seconds.
Shown as second
purefa.pod.replica_links_lag_max_sec
(gauge)
FlashArray pod links max lag in seconds.
Shown as second
purefa.pod.replica_links_performance_bandwidth_bytes
(gauge)
FlashArray pod links bandwidth.
Shown as byte
purefa.pod.space_bytes
(gauge)
FlashArray pod space in bytes.
Shown as byte
purefa.pod.space_data_reduction_ratio
(gauge)
FlashArray pod space data reduction.
purefa.pod.space_datareduction_ratio
(gauge)
(Legacy) FlashArray pod data reduction ratio.
purefa.pod.space_size_bytes
(gauge)
(Legacy) FlashArray pod size.
Shown as byte
purefa.pod.status
(gauge)
(Legacy) FlashArray pod status.
purefa.volume.performance_average_bytes
(gauge)
FlashArray volume average operations size in bytes.
Shown as byte
purefa.volume.performance_bandwidth_bytes
(gauge)
FlashArray volume throughput in bytes per second.
Shown as byte
purefa.volume.performance_iops
(gauge)
(Legacy) FlashArray volume IOPS.
Shown as operation
purefa.volume.performance_latency_usec
(gauge)
FlashArray volume latency in microseconds.
Shown as microsecond
purefa.volume.performance_throughput_bytes
(gauge)
(Legacy) FlashArray volume throughput.
Shown as byte
purefa.volume.performance_throughput_iops
(gauge)
FlashArray volume throughput in iops.
Shown as operation
purefa.volume.space_bytes
(gauge)
FlashArray volume space in bytes.
Shown as byte
purefa.volume.space_data_reduction_ratio
(gauge)
FlashArray volume space data reduction.
purefa.volume.space_datareduction_ratio
(gauge)
(Legacy) FlashArray volumes data reduction ratio.
purefa.volume.space_size_bytes
(gauge)
(Legacy) 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:

PREVIEWING: mervebolat/span-id-preprocessing