Skip to main content

INFINIDAT InfiniBox Storage (REST)

Description

HTTP REST connector for INFINIDAT InfiniBox systems, pools, volumes, filesystems, S3 buckets, enclosures, controllers, disks, and ports. Configure InfiniBox API credentials and set host.name to the InfiniBox API host.

hardware infinidat storage

Enterprise Connector

This connector requires the Enterprise edition of MetricsHub.

Target

Typical platform: INFINIDAT InfiniBox

Operating system: Storage System

Prerequisites

Leverages: InfiniBox REST API

Technology and protocols: HTTP

Examples

CLI

metricshub HOSTNAME -t storage -c +InfiniboxREST --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: [ +InfiniboxREST ] # 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 INFINIDAT InfiniBox Storage (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/rest/systems
    • Request Header: Authorization: Basic %{BASIC_AUTH_BASE64} Accept: application/json
    • The response body contains: &quot;type&quot;\s*:\s*&quot;InfiniBox&quot; (regex)
  • The HTTP Request below to the managed host succeeds:
    • get /api/rest/systems
    • Request Header: Authorization: Basic %{BASIC_AUTH_BASE64} Accept: application/json
    • The entire response (header + body) contains: 200 (regex)

Metrics

TypeCollected MetricsSpecific Attributes
controllerhw.status{hw.type="controller", state="degraded|failed|ok"}hw.parent.id
hw.parent.type
id
manufacturer
model
name
enclosurehw.status{hw.type="enclosure", state="degraded|failed|ok"}
hw.status{hw.type="enclosure", state="present"}
hw.parent.id
hw.parent.type
id
manufacturer
model
name
eth_porthw.network.bandwidth.limit
hw.network.error_ratio{storage.protocol="eth"}
hw.network.up
hw.status{hw.type="network", state="degraded|failed|ok"}
storage.io{storage.type="network", storage.protocol="eth"}
storage.operation_time{storage.type="network", storage.protocol="eth"}
storage.operations{storage.type="network", storage.protocol="eth"}
hw.parent.id
hw.parent.type
id
logical_address
logical_address_type
name
network.protocol
physical_address
physical_address_type
role
fc_porthw.network.bandwidth.limit
hw.network.error_ratio{storage.protocol="fc"}
hw.network.up
hw.status{hw.type="network", state="degraded|failed|ok"}
storage.io{storage.type="network", storage.protocol="fc"}
storage.operation_time{storage.type="network", storage.protocol="fc"}
storage.operations{storage.type="network", storage.protocol="fc"}
hw.parent.id
hw.parent.type
id
logical_address
logical_address_type
name
network.protocol
physical_address
physical_address_type
role
filesystemstorage.io{storage.type="file_system", storage.io.direction="read"}
storage.io{storage.type="file_system", storage.io.direction="write"}
storage.operation_time{storage.type="file_system", storage.io.direction="read"}
storage.operation_time{storage.type="file_system", storage.io.direction="write"}
storage.operations{storage.type="file_system", storage.io.direction="read"}
storage.operations{storage.type="file_system", storage.io.direction="write"}
storage.provisioning{storage.type="file_system", storage.provisioning.state="configured"}
storage.size{storage.type="file_system"}
storage.usage{storage.type="file_system", storage.provisioning.state="free"}
storage.usage{storage.type="file_system", storage.provisioning.state="used"}
id
name
storage.mode
storage.parent.id
storage.parent.name
storage.parent.type
physical_diskhw.physical_disk.size
hw.status{hw.type="physical_disk", state="degraded|failed|ok"}
hw.status{hw.type="physical_disk", state="present"}
hw.parent.id
hw.parent.type
id
manufacturer
model
name
serial_number
poolstorage.io{storage.type="pool", storage.io.direction="read", storage.protocol="nas"}
storage.io{storage.type="pool", storage.io.direction="read", storage.protocol="san"}
storage.io{storage.type="pool", storage.io.direction="read"}
storage.io{storage.type="pool", storage.io.direction="write", storage.protocol="nas"}
storage.io{storage.type="pool", storage.io.direction="write", storage.protocol="san"}
storage.io{storage.type="pool", storage.io.direction="write"}
storage.limit{storage.type="pool"}
storage.operation_time{storage.type="pool", storage.io.direction="read", storage.protocol="nas"}
storage.operation_time{storage.type="pool", storage.io.direction="read", storage.protocol="san"}
storage.operation_time{storage.type="pool", storage.io.direction="read"}
storage.operation_time{storage.type="pool", storage.io.direction="write", storage.protocol="nas"}
storage.operation_time{storage.type="pool", storage.io.direction="write", storage.protocol="san"}
storage.operation_time{storage.type="pool", storage.io.direction="write"}
storage.operations{storage.type="pool", storage.io.direction="read", storage.protocol="nas"}
storage.operations{storage.type="pool", storage.io.direction="read", storage.protocol="san"}
storage.operations{storage.type="pool", storage.io.direction="read"}
storage.operations{storage.type="pool", storage.io.direction="write", storage.protocol="nas"}
storage.operations{storage.type="pool", storage.io.direction="write", storage.protocol="san"}
storage.operations{storage.type="pool", storage.io.direction="write"}
storage.provisioning{storage.type="pool", storage.provisioning.state="configured"}
storage.provisioning{storage.type="pool", storage.provisioning.state="subscribed"}
storage.size{storage.type="pool"}
storage.status{storage.type="pool", state="degraded|failed|ok"}
storage.usage{storage.type="pool", storage.provisioning.state="free"}
storage.usage{storage.type="pool", storage.provisioning.state="used"}
id
name
storage.parent.id
storage.parent.type
storage.pool.type
s3_bucketstorage.data_reduction_ratio{storage.type="s3_bucket"}
storage.limit{storage.type="s3_bucket"}
storage.objects{storage.type="s3_bucket"}
storage.usage{storage.type="s3_bucket", storage.provisioning.state="used"}
id
name
storage.consumer.id
storage.consumer.name
storage.parent.id
storage.parent.type
systemstorage.io{storage.type="storage_system", storage.io.direction="read", storage.protocol="nas"}
storage.io{storage.type="storage_system", storage.io.direction="read", storage.protocol="s3"}
storage.io{storage.type="storage_system", storage.io.direction="read", storage.protocol="san"}
storage.io{storage.type="storage_system", storage.io.direction="read"}
storage.io{storage.type="storage_system", storage.io.direction="write", storage.protocol="nas"}
storage.io{storage.type="storage_system", storage.io.direction="write", storage.protocol="s3"}
storage.io{storage.type="storage_system", storage.io.direction="write", storage.protocol="san"}
storage.io{storage.type="storage_system", storage.io.direction="write"}
storage.limit{storage.type="storage_system"}
storage.operation_time{storage.type="storage_system", storage.io.direction="read", storage.protocol="nas"}
storage.operation_time{storage.type="storage_system", storage.io.direction="read", storage.protocol="s3"}
storage.operation_time{storage.type="storage_system", storage.io.direction="read", storage.protocol="san"}
storage.operation_time{storage.type="storage_system", storage.io.direction="read"}
storage.operation_time{storage.type="storage_system", storage.io.direction="write", storage.protocol="nas"}
storage.operation_time{storage.type="storage_system", storage.io.direction="write", storage.protocol="s3"}
storage.operation_time{storage.type="storage_system", storage.io.direction="write", storage.protocol="san"}
storage.operation_time{storage.type="storage_system", storage.io.direction="write"}
storage.operations{storage.type="storage_system", storage.io.direction="read", storage.protocol="nas"}
storage.operations{storage.type="storage_system", storage.io.direction="read", storage.protocol="s3"}
storage.operations{storage.type="storage_system", storage.io.direction="read", storage.protocol="san"}
storage.operations{storage.type="storage_system", storage.io.direction="read"}
storage.operations{storage.type="storage_system", storage.io.direction="write", storage.protocol="nas"}
storage.operations{storage.type="storage_system", storage.io.direction="write", storage.protocol="s3"}
storage.operations{storage.type="storage_system", storage.io.direction="write", storage.protocol="san"}
storage.operations{storage.type="storage_system", storage.io.direction="write"}
storage.provisioning{storage.type="storage_system", storage.provisioning.state="configured"}
storage.provisioning{storage.type="storage_system", storage.provisioning.state="subscribed"}
storage.size{storage.type="storage_system"}
storage.status{storage.type="storage_system", state="degraded|failed|ok"}
storage.usage{storage.type="storage_system", storage.provisioning.state="free"}
storage.usage{storage.type="storage_system", storage.provisioning.state="used"}
family
id
model
name
serial_number
vendor
version
volumestorage.io{storage.type="volume", storage.io.direction="read"}
storage.io{storage.type="volume", storage.io.direction="write"}
storage.limit{storage.type="volume"}
storage.operation_time{storage.type="volume", storage.io.direction="read"}
storage.operation_time{storage.type="volume", storage.io.direction="write"}
storage.operations{storage.type="volume", storage.io.direction="read"}
storage.operations{storage.type="volume", storage.io.direction="write"}
storage.provisioning{storage.type="volume", storage.provisioning.state="configured"}
storage.provisioning{storage.type="volume", storage.provisioning.state="subscribed"}
storage.size{storage.type="volume"}
storage.status{storage.type="volume", state="degraded|failed|ok"}
storage.usage{storage.type="volume", storage.provisioning.state="free"}
storage.usage{storage.type="volume", storage.provisioning.state="used"}
id
name
storage.consumer.naa_id
storage.consumer.name
storage.consumer.state
storage.parent.id
storage.parent.name
storage.parent.type
storage.volume.type