banshee/storage-collection/storage/netapp/https/ontap-9.6/
volumes
The state and the space of each volume of a NetApp ONTAP cluster by its REST API.
by banshee1 installation2 versions
v2Latest
Published on October 28, 2026. One naming convention across collections; documentation completed.
Volumes of a NetApp ONTAP cluster, by its REST API
Returns, for each volume of a NetApp ONTAP cluster, its state, its used space, its free space and its size, read from the REST API with an account. Five watches are offered, each one set on the probe.
Versions
Written for the ONTAP REST API, which ONTAP serves from 9.6; ONTAP 9.5 and earlier have only ZAPI. Hence the folder ontap-9.6.
How it works
One GET https://<host:address>/api/storage/volumes?fields=name,svm.name,state,space.size,space.used,space.available&max_records=1000, the account in Basic; the collector reads every page that _links.next.href points to.
{"records": [{"name": "vol_data", "svm": {"name": "svm1"}, "state": "online", "space": {"size": 1099511627776, "used": 549755813888, "available": 549755813888}}]} - A volume is named after its SVM:
svm1/vol_data. - The state is ONTAP's:
online,offline,restricted,error,mixed(a FlexGroup whose constituents differ). - The used space is
usedoverusedplusavailable, asdfshows it: the snapshot reserve is left out. Sizes are in bytes, returned in GiB. A volume without space returns its state only. - A cluster with no volume returns no value, and raises nothing.
- A code 401 or 403 stops the collector
misconfigured; any other code but 200 stops itunreachable.
The password comes from protocol:http:password, a secret variable: it only goes in the Basic header. The answer is not secret.
Prerequisites
- The cluster's management address as the host's address, reachable from the poller in HTTPS (443), its certificate trusted by the TLS profile of the probe (a pinned fingerprint in
protocol:http:fingerprint, or the certificate underprotocol:tls:authorities). - An ONTAP account for the
httpapplication with thereadonlyrole, inprotocol:http:userandprotocol:http:password.
Outputs
| Name | Label | Unit | Per instance |
|---|---|---|---|
state | State | — | yes, per volume |
used-percent | Used space | % | yes, per volume |
free | Free space | GiB | yes, per volume |
size | Size | GiB | yes, per volume |
Watches
| Name | Title | Kind | Defaults | Checked by default |
|---|---|---|---|---|
failed | Volume offline or in error | state to avoid, on state | critical on offline, error, restricted | yes |
not-online | Volume not online | expected value, on state | warning when the state is anything but online | yes |
used | Used space | above a threshold, on used-percent | warning above 80 %, critical above 90 % | yes |
full-soon | Full within a week | above a threshold, on used-percent | warning above 99 %, ahead 7 d | yes |
missing | Volume missing | expected instances, on state | no volume named: it raises nothing until names are set on the probe | no |
Limits
- Every volume is listed, the root volumes of the SVMs and of the nodes included: narrow the selection of the probe to the volumes that count.
- A volume restricted on purpose (a SnapMirror destination being initialised) raises
failed: leave it out of the selection. - The address is written into the URL as is: an IPv6 address must be given as a name.
- Not checked against an ONTAP: the fields and states are those of the current ONTAP REST schema, as NetApp's own models write it (Trident,
models/volume.go); NetApp's documentation site refused to be read, and that each field is served as early as 9.6 is not verified.