Skip to main content

Dell EMC PowerMax Storage (REST)

Description

This connector discovers storage systems and collects performance/capacity metrics for Dell EMC PowerMax platforms.

dell emc hardware storage

Enterprise Connector

This connector requires the Enterprise edition of MetricsHub.

Target

Typical platform: Dell EMC PowerMax

Operating system: Storage System

Prerequisites

Leverages: Dell EMC Unisphere REST API v10.1 or higher

Technology and protocols: HTTP

Examples

CLI

metricshub HOSTNAME -t storage -c +DellEMCPowerMaxREST --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: [ +DellEMCPowerMaxREST ] # 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 Dell EMC PowerMax 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 /univmax/restapi/101/system/symmetrix
    • The response body contains: symmetrixId (regex)

Metrics

TypeCollected MetricsSpecific Attributes
controllerhw.status{hw.type="controller", dell.storage.type="director", state="degraded|failed|ok"}
storage.operation_time{storage.type="controller", storage.io.direction="read"}
storage.operation_time{storage.type="controller", storage.io.direction="write"}
storage.operations{storage.type="controller", storage.io.direction="read"}
storage.operations{storage.type="controller", storage.io.direction="write"}
system.cpu.utilization{storage.type="controller"}
hw.parent.id
hw.parent.type
id
networkhw.network.bandwidth.limit
hw.network.bandwidth.utilization{direction="receive"}
hw.network.bandwidth.utilization{direction="transmit"}
hw.network.io{direction="receive"}
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"}
storage.operations{storage.type="network", storage.io.direction="read"}
storage.operations{storage.type="network", storage.io.direction="write"}
address
hw.parent.id
hw.parent.type
id
name
network_type
role
physical_diskhw.status{hw.type="physical_disk", state="present"}
storage.io{storage.type="physical_disk", storage.io.direction="read"}
storage.io{storage.type="physical_disk", storage.io.direction="write"}
storage.operation_time{storage.type="physical_disk", storage.io.direction="read"}
storage.operation_time{storage.type="physical_disk", storage.io.direction="write"}
storage.operations{storage.type="physical_disk", storage.io.direction="read"}
storage.operations{storage.type="physical_disk", storage.io.direction="write"}
storage.size{storage.type="physical_disk"}
storage.usage{storage.type="physical_disk", storage.provisioning.state="free"}
storage.usage{storage.type="physical_disk", storage.provisioning.state="used"}
hw.parent.id
hw.parent.type
id
manufacturer
model
name
poolstorage.io{storage.type="pool", storage.io.direction="read"}
storage.io{storage.type="pool", storage.io.direction="write"}
storage.limit{storage.type="pool"}
storage.operations{storage.type="pool", storage.io.direction="read"}
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.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
type
usage
systemstorage.io{storage.type="storage_system", storage.io.direction="read"}
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.operation_time{storage.type="storage_system", storage.io.direction="write"}
storage.operations{storage.type="storage_system", storage.io.direction="read"}
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.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
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.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.type
storage.volume.type
usage