Pure Storage provides the ability to visualize the IO from the array all the way up to the VM. There are metrics for Latency, Bandwith, IOPs or System CPU and Memory.

All data is collected by the Array-Collector. There are two Array-Collectors available, the On-Array Collector and the Off-Array Collector.
The On-Array Collector is installed by Pure Storage Support directly on the Array.
The Off-Array Collector is a Docker-Container which must be installed on an Ubuntu VM.

In this blog post I want to show how to install the Off-Array Collector, but you will also find the requirements for both On- and Off-Array Collector.

Pure1 VM Analytics Requirements

On-Array Collector:

  • M20 or higher
  • Purity 4.10.x (preferably latest) or Purity 5.1.0+
  • Purity 5.0.x does not support Purity Run

Note: Enabling Purity Run will require non-disruptive controller reboots. Please note that Purity Run can currently run one app.

Off-Array Collector:

  • No Purity requirements to run off-array collector
  • Ubuntu 16.04
  • x86_64 cpu with Minimum 2 cores
  • Minimum 2GB RAM
  • Docker EE 1.11.2 or newer, or CE 17.03 or newer
  • python3, logrotate, and cron installed and running


  • vCenter Server 5.5 or later
    • Read-only user for the collector
    • IP address or FQDN of vCenter


  • Phonehome must be anabled

Installation Off-Array Collector

Simple deploy a VM with Ubuntu 16.04 and install the missing requirements.

apt-get install python3.5 logrotate cron docker.io

After the packages are installed, check version of Python. Version should be min. 3.5.2. Logrotate should run hourly, so move the cron to /etc/cron.hourly

python3 -V
mv /etc/cron.daily/logrotate /etc/cron.hourly

Now login to Pure1Cloud and go to Analytics > VM Topology and click on the gear icon.

Click on Create Collector, type in a name for it and click on Create Collector again.

Now you can copy the Installation script one-liner and insert it to your Off-Array Collector VM.

env COLLECTOR_AUTH_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx bash -c "$(wget -O - https://static.pure1.purestorage.com/vm-analytics-collector/install.sh)"

The Installation script downloads the Docker images and configures the connection between the collector and the Pure1Cloud.

After the Installation is completed connect the Off-Array Collector with your vCenter Server.

sudo purevmanalytics connect --hostname HOSTNAME --username USERNAME

You can follow the collection in the logfile which is located in /var/log/docker/vm_analytics/vm_analytics.log

You may see WARNING messages like No applicable counters found. I thought this was an error, but only the poweredoff VMs had no counters, so it is ok. A warning is a little bit to much for a poweredoff machine, but Pure seems to see it a little bit different :) .
Now it could take several hours to see results in the cloud. In my setup it takes 2 hours. You can see the phonehome status in the API Registration on the gear icon.

After the data is analyzed you will get an complete overview of your virtualized environment from the storage perspective.

There is one messy thing in the view. If you have created a POD to synchronize data between two array, your ESXi could read or write data to both array in the same volume. The view could not get this together. As you can see the Docker-Datastore consumes over 800 MB/s but the POD-Volume only consumes about 450 MB/s which is close to the array load. The second array isn’t “connected” in this view. I think and hope that this will come in an update.