banshee is under active development: collectors will keep changing, and a version you publish will likely need adjustments. For stable use, wait for version 1.0.0.

Storage

banshee/storage-collection/storage/netapp/https/ontap-9.6/

aggregates

The state and the space of each aggregate of a NetApp ONTAP cluster by its REST API.

  • storage
  • netapp
  • ontap
  • aggregate
  • https
  • api

by banshee1 installation2 versions

v2Latest

Published on October 28, 2026. One naming convention across collections; documentation completed.

Aggregates of a NetApp ONTAP cluster, by its REST API

Returns, for each aggregate 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/aggregates?fields=name,state,space.block_storage.size,space.block_storage.used,space.block_storage.available&max_records=1000, the account in Basic; the collector reads every page that _links.next.href points to.

{"records": [{"name": "aggr1", "state": "online", "space": {"block_storage": {"size": 10995116277760, "used": 4398046511104, "available": 6597069766656}}}]}
  • The state is ONTAP's: online, onlining, offline, offlining, relocating, unmounted, restricted, inconsistent, failed, unknown.
  • The used space is used over size; sizes are in bytes, returned in GiB. An aggregate without space returns its state only.
  • A code 401 or 403 stops the collector misconfigured; any other code but 200 stops it unreachable.

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 under protocol:tls:authorities).
  • An ONTAP account for the http application with the readonly role, in protocol:http:user and protocol:http:password.

Outputs

NameLabelUnitPer instance
stateState—yes, per aggregate
used-percentUsed space%yes, per aggregate
freeFree spaceGiByes, per aggregate
sizeSizeGiByes, per aggregate

Watches

NameTitleKindDefaultsChecked by default
failedAggregate failedstate to avoid, on statecritical on offline, failed, inconsistent, unmounted, restrictedyes
not-onlineAggregate not onlineexpected value, on statewarning when the state is anything but onlineyes
usedUsed spaceabove a threshold, on used-percentwarning above 80 %, critical above 90 %yes
full-soonFull within a weekabove a threshold, on used-percentwarning above 99 %, ahead 7 dyes
missingAggregate missingexpected instances, on stateno aggregate named: it raises nothing until names are set on the probeno

Limits

  • The root aggregates of the nodes (aggr0_…) are listed like the others, and run near full by design: leave them out by the selection of the probe (Aggregates: All except aggr0*).
  • 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/aggregate.go) and Harvest reads it (conf/rest/9.12.0/aggr.yaml); NetApp's documentation site refused to be read, and that each field is served as early as 9.6 is not verified.