PRTG – Monitoring your PURE storage system

I just created a PRTG sensor for PURE storage devices for a customer and want to share it with all of you (thanks to Daniel J.). The PURE stoage system does a very good job at providing a deep insight into its health state and performance information using its own web console. And using its call-home functions, hardware issues should be resolved in the twinkling of an eye. But: As an administrator of a system like this you should be aware if there was something going on. This is, why doing a basic monitoring using PRTG definetly makes sense.

Using my sensor you get a great overview of the health, capacity and performance state of your PURE storage system.


The (PowerShell) script (found on GitHub) uses the PURE storage PowerShell module from PSGallery, so installing it onto your PRTG probe server is quiet easy. Open an elevated 32-Bit PowerShell console window and type the following command:

Be sure to set your execution policy (in the 32-Bit PowerShell) to unrestricted

or to unblock the script file using

After that, you need the script (which is hosted on GitHub) to the Custom Sensors\EXEXML folder on your PRTG probe installation.

Last but not least you need to retrieve an API token from your PURE storage web console to authenticate the REST requests, the PowerShell script will send to your storage. The token can be found in the user configuration.


In PRTG, add an EXE/Custom Advanced sensor to your PURE storage device in PRTG and select the Get-PurityInfo.ps1 script. You will need to provice two parameters:

  1. StorageAddress
    This is the IP address or hostname of your PURE storage system, which can be fetched from the parent object in your PRTG tree using the variable %host
  2. ApiToken
    The token to access the PURE storage system, mentioned in the prerequisites.

Parameter example:

The sensor will provide the following channels:

  1. Hardware ok count The script retrieves the count of devices that report the status ok.
  2. Hardware not installed count This is the number of devices, reporting not installed.
  3. Hardware NOT ok count Every other hardware state except for OK and NOT INSTALLED will be counted here.
  4. Volumes (Bytes Reports the size in TB assigned to volumes in the PURE storage system.
  5. Total used space (Bytes) is the really occupied storage on the system.
  6. Total sorage capacity (Bytes) represents the total capacity of the system. This value should only change, if there is a hardware extension.
  7. Free space (Bytes) shows the total capacity reduced by the total used storage in TB.
  8. Free space (%) The free space in percent.
  9. IOPS – Writes/sec shows the current write operations per second.
  10. IOPS – Reads/sec shows the current read operations per second.
  11. Write latency (ms) represents the time in milliseconds, the write IO currently takes.
  12. Read latency (ms) represents the time in milliseconds, the read IO currently takes.

This should give you a nice overview of what is going on on your device. Please share your experiences with the scipt.

Find the script on GitHub.

5 Gedanken zu „PRTG – Monitoring your PURE storage system

  1. Ariel Di Girolamo Antworten

    Hi! This looks awesome, but I keep getting the following error:
    XML: The returned XML does not match the expected schema. (code: PE233) — JSON: The returned JSON does not match the expected structure (Invalid JSON.). (code: PE231)

    even after changing the default quotes for the parameters to ‚ or `

    Any idea why?

    • Marc Autor des BeitragsAntworten

      this error normally occurs when the script encounters errors and the return value can’t be interpreted by PRTG. Please activate the option to save the sensor data to disk, locate the output file and use the information provided there to find out, what the problem is. You can send it to me, if you don’t know, how to handle it. From the error message you provided so far, I can only tell that „someting went wrong“ 😉

  2. Samuel W. Antworten

    Hello, thanks for the great work.
    I think there’s one mistake in the script at line 114:
    „limitmaxerror“ = 1;
    the value should be 0, because PRTG sets the sensor to error, once the returned value is BIGGER than the given limitmaxerror.
    besides this, it works like a charm!

    • Marc Autor des BeitragsAntworten

      You are absolutelty right. I’ll set it to 0.5, as 0 doesn’t look well in PRTG (the gauge points to zero but all the scale is red).

      Thanks so much!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.