Dell EMC PowerMax Storage (REST)
Description
This connector discovers storage systems and collects performance/capacity metrics for Dell EMC PowerMax platforms.
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)
- get
Metrics
| Type | Collected Metrics | Specific Attributes |
|---|---|---|
| controller | hw.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.idhw.parent.typeid |
| network | hw.network.bandwidth.limithw.network.bandwidth.utilization{direction="receive"}hw.network.bandwidth.utilization{direction="transmit"}hw.network.io{direction="receive"}hw.network.io{direction="transmit"}hw.network.uphw.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"} | addresshw.parent.idhw.parent.typeidnamenetwork_typerole |
| physical_disk | hw.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.idhw.parent.typeidmanufacturermodelname |
| pool | storage.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"} | idnamestorage.parent.idstorage.parent.typetypeusage |
| system | storage.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"} | familyidmodelnameserial_numbervendor |
| volume | storage.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"} | idnamestorage.consumer.naa_idstorage.consumer.namestorage.consumer.statestorage.parent.idstorage.parent.typestorage.volume.typeusage |