Connectors directory[1]   Full listing of connectors[2]

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.

This connector supersedes:

enterprise[4] hardware[5] netapp[6] storage[7]

Target

Typical platform: NetApp[8]

Operating system: Storage System

Prerequisites

Leverages: NetApp ONTAP REST API

Technology and protocols: HTTP/REST

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

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

Type Collected Metrics Specific Attributes
battery
  • hw.status{hw.type="battery", state="degraded|failed|ok"}
  • hw.status{hw.type="battery", state="present"}
  • hw.parent.id
  • hw.parent.type
  • id
  • name
enclosure
  • hw.status{hw.type="enclosure", state="present"}
  • family
  • id
  • model
  • name
  • serial_number
  • type
  • vendor
fan
  • hw.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
filer
  • storage.io{storage.type="filer", storage.netapp.type="svm", direction="read"}
  • storage.io{storage.type="filer", storage.netapp.type="svm", direction="write"}
  • storage.operations{storage.type="filer", storage.netapp.type="svm", direction="read"}
  • storage.operations{storage.type="filer", storage.netapp.type="svm", direction="write"}
  • 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_volume
  • storage.io{storage.type="filesystem", netapp.storage.type="volume", direction="read"}
  • storage.io{storage.type="filesystem", netapp.storage.type="volume", direction="write"}
  • storage.limit{storage.type="filesystem", netapp.storage.type="volume"}
  • storage.operation_time{storage.type="filesystem", netapp.storage.type="volume", direction="read"}
  • storage.operation_time{storage.type="filesystem", netapp.storage.type="volume", direction="write"}
  • storage.operations{storage.type="filesystem", netapp.storage.type="volume", direction="read"}
  • storage.operations{storage.type="filesystem", netapp.storage.type="volume", 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
network
  • hw.network.bandwidth.limit
  • hw.network.up
  • hw.status{hw.type="network", state="degraded|failed|ok"}
  • hw.status{hw.type="network", state="present"}
  • storage.io{storage.type="network", direction="read"}
  • storage.io{storage.type="network", direction="write"}
  • storage.operation_time{storage.type="network", direction="read"}
  • storage.operation_time{storage.type="network", direction="write"}
  • address
  • hw.parent.id
  • hw.parent.type
  • id
  • name
  • network_type
  • role
node
  • hw.status{hw.type="controller", netapp.storage.type="node", state="degraded|failed|ok"}
  • 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_disk
  • hw.status{hw.type="physical_disk", state="degraded|failed|ok"}
  • hw.status{hw.type="physical_disk", state="present"}
  • speed
  • 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
  • storage.role
  • type
  • vendor
pool
  • storage.io{storage.type="pool", netapp.storage.type="aggregate", direction="read"}
  • storage.io{storage.type="pool", netapp.storage.type="aggregate", direction="write"}
  • storage.limit{storage.type="pool", netapp.storage.type="aggregate"}
  • storage.operations{storage.type="pool", netapp.storage.type="aggregate", direction="read"}
  • storage.operations{storage.type="pool", netapp.storage.type="aggregate", direction="write"}
  • 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_supply
  • hw.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_system
  • storage.io{storage.type="storage_system", netapp.storage.type="cluster", direction="read"}
  • storage.io{storage.type="storage_system", netapp.storage.type="cluster", direction="write"}
  • storage.limit{storage.type="storage_system", netapp.storage.type="cluster"}
  • storage.operation_time{storage.type="storage_system", netapp.storage.type="cluster", direction="read"}
  • storage.operation_time{storage.type="storage_system", netapp.storage.type="cluster", direction="write"}
  • storage.operations{storage.type="storage_system", netapp.storage.type="cluster", direction="read"}
  • storage.operations{storage.type="storage_system", netapp.storage.type="cluster", 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="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
temperature
  • hw.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
voltage
  • hw.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
volume
  • storage.io{storage.type="volume", netapp.storage.type="lun", direction="read"}
  • storage.io{storage.type="volume", netapp.storage.type="lun", direction="write"}
  • storage.limit{storage.type="volume", netapp.storage.type="lun"}
  • storage.operation_time{storage.type="volume", netapp.storage.type="lun", direction="read"}
  • storage.operation_time{storage.type="volume", netapp.storage.type="lun", direction="write"}
  • storage.operations{storage.type="volume", netapp.storage.type="lun", direction="read"}
  • storage.operations{storage.type="volume", netapp.storage.type="lun", 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="used"}
  • id
  • name
  • netapp.storage.type
  • storage.consumer.state
  • storage.parent.id
  • storage.parent.type
  • type
  • usage
No results.