Skip to main content

NetApp Filer (REST)

Description

This connector discovers the enclosure and the disks of NetApp disk arrays (filer) in C-mode as well as various environment sensors (temperatures, fans, power supplies, etc.) as well as aggregates and luns. It relies on the REST API protocol.

hardware netapp storage

Enterprise Connector

This connector requires the Enterprise edition of MetricsHub.

Supersedes

This connector supersedes:

Target

Typical platform: NetApp

Operating system: Storage System

This connector is not available for the local host (it is applicable to remote hosts only).

Prerequisites

Leverages: NetApp ONTAP REST API

Technology and protocols: HTTP

Examples

CLI

metricshub HOSTNAME -t storage -c +NetAppRESTv2 --https --http-port 443 -u USERNAME

metricshub.yaml

resourceGroups:
<RESOURCE_GROUP>:
resources:
<HOSTNAME-ID>:
attributes:
host.name: <HOSTNAME> # Change with actual host name
host.type: storage
connectors: [ +NetAppRESTv2 ] # Optional, to load only this connector
protocols:
http:
https: true
port: 443 # or probably something else
username: <USERNAME> # Change with actual credentials
password: <PASSWORD> # Encrypted using metricshub-encrypt

Connector Activation Criteria

The NetApp Filer (REST) connector will be automatically activated, and its status will be reported as OK if all the below criteria are met:

  • The HTTP Request below to the managed host succeeds:
    • get api/cluster
    • The response body contains: uuid (regex)

Metrics

TypeCollected MetricsSpecific Attributes
batteryhw.status{hw.type="battery", state="degraded|failed|ok"}
hw.status{hw.type="battery", state="present"}
hw.parent.id
hw.parent.type
id
name
enclosurehw.status{hw.type="enclosure", state="degraded|failed|ok"}
hw.status{hw.type="enclosure", state="present"}
family
id
model
name
serial_number
type
vendor
fanhw.fan.speed
hw.status{hw.type="fan", state="degraded|failed|ok"}
hw.status{hw.type="fan", state="present"}
hw.parent.id
hw.parent.type
id
location
name
filerstorage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="cifs"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="fcp"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="iscsi"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v3"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v4"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v41"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="cifs"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="fcp"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="iscsi"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v3"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v4"}
storage.io{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v41"}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="cifs"}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="fcp"}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="iscsi}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="nfs_v3"}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="nfs_v4"}
storage.latency{storage.type="filer", netapp.storage.type="svm", storage.protocol="nfs_v41"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="cifs"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="fcp"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="iscsi"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v3"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v4"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="read", storage.protocol="nfs_v41"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="cifs"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="fcp"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="iscsi"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v3"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v4"}
storage.operations{storage.type="filer", netapp.storage.type="svm", storage.io.direction="write", storage.protocol="nfs_v41"}
storage.status{storage.type="filer", netapp.storage.type="svm", state="degraded|failed|ok"}
id
name
netapp.storage.type
storage.parent.id
storage.parent.type
netapp_volumestorage.io{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="read"}
storage.io{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="write"}
storage.latency{storage.type="filesystem", netapp.storage.type="volume"}
storage.limit{storage.type="filesystem", netapp.storage.type="volume"}
storage.operation_time{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="read"}
storage.operation_time{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="write"}
storage.operations{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="read"}
storage.operations{storage.type="filesystem", netapp.storage.type="volume", storage.io.direction="write"}
storage.status{storage.type="filesystem", netapp.storage.type="volume", state="degraded|failed|ok"}
storage.usage{storage.type="filesystem", netapp.storage.type="volume", storage.provisioning.state="used"}
id
name
netapp.storage.type
storage.parent.id
storage.parent.type
type
networkhw.network.bandwidth.limit
hw.network.io{direction="received"}
hw.network.io{direction="transmit"}
hw.network.up
hw.status{hw.type="network", state="degraded|failed|ok"}
hw.status{hw.type="network", state="present"}
storage.operation_time{storage.type="network", storage.io.direction="read"}
storage.operation_time{storage.type="network", storage.io.direction="write"}
address
hw.parent.id
hw.parent.type
id
name
network_type
role
nodehw.status{hw.type="controller", netapp.storage.type="node", state="degraded|failed|ok"}
hw.status{state="present", hw.type="controller", netapp.storage.type="node"}
system.cpu.utilization{storage.type="controller", netapp.storage.type="node"}
system.memory.limit{storage.type="controller", netapp.storage.type="node"}
hw.parent.id
hw.parent.type
id
name
netapp.storage.type
serial_number
physical_diskhw.status{hw.type="physical_disk", state="degraded|failed|ok"}
hw.status{hw.type="physical_disk", state="present"}
hw.status{hw.type="physical_disk", state="spare"}
storage.io{storage.type="physical_disk"}
storage.operation_time{storage.type="physical_disk"}
storage.operations{storage.type="physical_disk"}
storage.size{storage.type="physical_disk"}
firmware_version
hw.parent.id
hw.parent.type
id
model
name
serial_number
speed
storage.role
type
vendor
poolstorage.io{storage.type="pool", netapp.storage.type="aggregate", storage.io.direction="read"}
storage.io{storage.type="pool", netapp.storage.type="aggregate", storage.io.direction="write"}
storage.limit{storage.type="pool", netapp.storage.type="aggregate"}
storage.operations{storage.type="pool", netapp.storage.type="aggregate", storage.io.direction="read"}
storage.operations{storage.type="pool", netapp.storage.type="aggregate", storage.io.direction="write"}
storage.provisioning{storage.type="pool", netapp.storage.type="aggregate", storage.provisioning.state="configured"}
storage.provisioning{storage.type="pool", netapp.storage.type="aggregate", storage.provisioning.state="subscribed"}
storage.status{storage.type="pool", netapp.storage.type="aggregate", state="degraded|failed|ok"}
storage.usage{storage.type="pool", netapp.storage.type="aggregate", storage.provisioning.state="free"}
storage.usage{storage.type="pool", netapp.storage.type="aggregate", storage.provisioning.state="used"}
disk_type
id
name
netapp.storage.type
raid_level
storage.parent.id
storage.parent.type
type
power_supplyhw.status{hw.type="power_supply", state="degraded|failed|ok"}
hw.status{hw.type="power_supply", state="present"}
hw.parent.id
hw.parent.type
id
name
serial_number
storage_systemstorage.io{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="read"}
storage.io{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="write"}
storage.limit{storage.type="storage_system", netapp.storage.type="cluster"}
storage.operation_time{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="read"}
storage.operation_time{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="write"}
storage.operations{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="read"}
storage.operations{storage.type="storage_system", netapp.storage.type="cluster", storage.io.direction="write"}
storage.provisioning{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="committed"}
storage.provisioning{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="configured"}
storage.provisioning{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="subscribed"}
storage.size{storage.type="storage_system", netapp.storage.type="cluster"}
storage.usage{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="free"}
storage.usage{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="free_for_pools"}
storage.usage{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="free_in_pools"}
storage.usage{storage.type="storage_system", netapp.storage.type="cluster", storage.provisioning.state="used"}
family
id
model
name
netapp.storage.type
serial_number
type
vendor
temperaturehw.status{hw.type="temperature", state="degraded|failed|ok"}
hw.status{hw.type="temperature", state="present"}
hw.temperature
hw.temperature.limit{limit_type="high.critical"}
hw.temperature.limit{limit_type="high.degraded"}
hw.parent.id
hw.parent.type
id
location
name
voltagehw.status{hw.type="voltage", state="degraded|failed|ok"}
hw.status{hw.type="voltage", state="present"}
hw.voltage
hw.parent.id
hw.parent.type
id
location
name
volumestorage.io{storage.type="volume", netapp.storage.type="lun", storage.io.direction="read"}
storage.io{storage.type="volume", netapp.storage.type="lun", storage.io.direction="write"}
storage.limit{storage.type="volume", netapp.storage.type="lun"}
storage.operation_time{storage.type="volume", netapp.storage.type="lun", storage.io.direction="read"}
storage.operation_time{storage.type="volume", netapp.storage.type="lun", storage.io.direction="write"}
storage.operations{storage.type="volume", netapp.storage.type="lun", storage.io.direction="read"}
storage.operations{storage.type="volume", netapp.storage.type="lun", storage.io.direction="write"}
storage.status{storage.type="volume", netapp.storage.type="lun", state="degraded|failed|ok"}
storage.usage{storage.type="volume", netapp.storage.type="lun", storage.provisioning.state="free"}
storage.usage{storage.type="volume", netapp.storage.type="lun", storage.provisioning.state="used"}
id
name
netapp.storage.type
storage.consumer.state
storage.parent.id
storage.parent.type
storage.volume.type
usage