power-hmc-exporter Documentation — Agentless Prometheus Exporter for the IBM Power HMC

power-hmc-exporter — Agentless Prometheus Exporter for the IBM Power HMC

power-hmc-exporter is an agentless Prometheus exporter for IBM Power Systems. A single instance runs on one central Linux host and polls the Hardware Management Console (HMC) Performance & Capacity Monitoring (PCM) facility over its REST API, reconstructing your entire PowerVM virtualization layer — shared processor and memory pools, the LPAR ↔ VIOS service relationships, and the SEA / NPIV / VSCSI mappings — as live metrics on a standard /metrics endpoint, with the cross-reference labels already resolved. You install nothing on your partitions.

Requirements

  • Exporter host: Linux x86-64 (RHEL 9.x is the reference platform). The binary is statically linked with no runtime dependencies and runs on glibc and musl distributions alike — verified on Ubuntu, Debian, RHEL/AlmaLinux, Fedora, Arch and Alpine.
  • HMC: REST API enabled, with PCM aggregation turned on for the managed systems of interest. Verified against HMC V10 R3 SP1063.
  • HMC user: a console user (typically hscroot) permitted to read PCM data.
  • Connectivity: TCP 12443 from the exporter host to each HMC.
  • Scrape access: one TCP port (default 9876) reachable from Prometheus.
  • Backend: Prometheus 2.x or 3.x (or any OpenMetrics-compatible store); Grafana 9.x–12.x for the included dashboards.

Installation

power-hmc-exporter ships as a single tarball containing the static binary, an install.sh installer, a hardened systemd unit, an environment-file template, and the three Grafana dashboards. It runs on one central host — there is no agent to deploy on your partitions.

Install

# Extract and run the installer (as root)
tar xzf power-hmc-exporter-v0.9.0-linux-amd64.tar.gz
cd power-hmc-exporter-v0.9.0-linux-amd64/
sudo ./install.sh

# Verify the unit is present
systemctl status power-hmc-exporter

The installer automatically:

  • Creates a dedicated, unprivileged service account
  • Installs the exporter binary and a hardened systemd unit (power-hmc-exporter.service)
  • Installs the environment-file template at /etc/sysconfig/power-hmc-exporter — preserving any existing credentials on upgrade
  • Includes the three Grafana dashboards (grafana/) for import

Uninstall

# Stop and disable the service, then remove the files install.sh created
sudo systemctl disable --now power-hmc-exporter
sudo rm -f /etc/systemd/system/power-hmc-exporter.service
sudo systemctl daemon-reload
# Optionally remove /etc/sysconfig/power-hmc-exporter, the binary, and the service account

Configuration

All configuration is supplied through environment variables in /etc/sysconfig/power-hmc-exporter (read by the systemd unit). At minimum, set the HMC host, user and password.

# /etc/sysconfig/power-hmc-exporter

# --- HMC connection (required) ---
PHMC_HMC_HOST=hmc1.example.com
PHMC_HMC_USER=hscroot
# Prefer a password file over an inline password:
PHMC_HMC_PASSWORD_FILE=/etc/sysconfig/power-hmc-exporter.pw
# PHMC_HMC_PASSWORD=...

# --- HMC options ---
PHMC_HMC_PORT=12443
# Self-signed HMC certificate? skip verification (lab/PoC):
PHMC_INSECURE_SKIP_VERIFY=false

# --- Exporter ---
PHMC_LISTEN_ADDR=:9876
PHMC_POLL_INTERVAL=60s
PHMC_REQUEST_TIMEOUT=30s
PHMC_MAX_CONCURRENCY=6
VariableDescriptionDefault
PHMC_HMC_HOSTHMC hostname or IP (required)
PHMC_HMC_USERHMC user, typically hscroot (required)
PHMC_HMC_PASSWORD / PHMC_HMC_PASSWORD_FILEHMC password, inline or from a file (file form preferred)
PHMC_HMC_PORTHMC REST API port12443
PHMC_INSECURE_SKIP_VERIFYSkip TLS verification for self-signed HMC certificatesfalse
PHMC_LISTEN_ADDRExporter HTTP listen address:9876
PHMC_POLL_INTERVALInterval between HMC poll cycles60s
PHMC_REQUEST_TIMEOUTPer-API-call timeout30s
PHMC_MAX_CONCURRENCYMax concurrent HMC requests per cycle (lower to 1 for sequential polling)6

Running

# Enable and start at boot
sudo systemctl enable --now power-hmc-exporter

# Follow the logs
journalctl -u power-hmc-exporter -f

# Stop / restart / status
sudo systemctl stop power-hmc-exporter
sudo systemctl restart power-hmc-exporter
systemctl status power-hmc-exporter

Metrics & Labels

All series are prefixed power_hmc_ and exposed on the /metrics endpoint. The exporter resolves the PowerVM topology from the HMC PCM data and stamps the cross-references directly onto each series as labels — so you filter and group by VIOS, SEA, VLAN or physical FC port with no id→name joins and no lsmap / lshwres archaeology.

# Per-LPAR network — serving VIOS, SEA and VLAN already on the series:
power_hmc_lpar_network_received_bytes{system="sys01", lpar="lpar07", vlan_id="191", sea="ent10", vios="vios02"} 4.81e+08

# Per-LPAR virtual Fibre Channel (NPIV) — VIOS and physical FC port resolved:
power_hmc_lpar_vfc_read_bytes{lpar="lpar07", fc="fcs1", vios="vios02"} 1.66e+09

# Data freshness, per managed system (see Troubleshooting):
power_hmc_system_pcm_sample_age_seconds{system="sys01"} 392
Metric groupWhat it covers
Managed system & poolsShared processor pool utilization, memory pool allocation vs total, per-system processor/memory
LPAR processor & memoryEntitled vs consumed, capped/uncapped borrowing, virtual-processor ceilings — for every LPAR and VIOS
LPAR network (via SEA)Per-LPAR throughput labelled with the serving VIOS, SEA and VLAN (self-corrects on SEA failover)
LPAR storage (NPIV / VSCSI)Virtual-FC traffic mapped to the physical FC port and bridging VIOS; VSCSI I/O tied to the serving vhost
VIOSVIOS CPU/memory and SEA throughput by VLAN and per-LPAR
Exporter / poll healthpower_hmc_system_pcm_sample_age_seconds, HMC reachability, poll duration

Prometheus Configuration

scrape_configs:
  - job_name: 'power-hmc'
    static_configs:
      - targets:
        - 'hmc-exporter-host:9876'
    scrape_interval: 60s

To monitor several consoles, run one exporter instance per HMC and scrape them all into the same Prometheus; the dashboards then aggregate across managed systems with a Managed System selector.

Grafana Dashboards

Three ready-to-import dashboards ship in the package (grafana/). Import the JSON via Dashboards → Import and pick your Prometheus datasource:

  • Overview — estate-wide: HMC up, managed systems, poll duration, PCM sample age, top LPARs by CPU and NPIV.
  • Per-System — one managed system: shared CPU/memory pools, Top-N LPARs, VIOS, SEA throughput by VLAN, NPIV per FC port.
  • Per-LPAR — one partition: its processor/memory, and the upstream VIOS bandwidth it depends on (noisy-neighbour diagnostics).

Endpoints

EndpointDescription
/metricsPrometheus metrics (OpenMetrics), on PHMC_LISTEN_ADDR (default :9876)

Troubleshooting

Cannot connect to the HMC

  • Confirm TCP 12443 is open from the exporter host to the HMC and that the REST API is enabled.
  • Verify PHMC_HMC_USER / password are correct and the user can read PCM data.
  • For a self-signed HMC certificate, set PHMC_INSECURE_SKIP_VERIFY=true (lab/PoC only; prefer trusting the CA in production).
  • Watch journalctl -u power-hmc-exporter -f for authentication or TLS errors.

Metrics look stale / “No data”

The HMC PCM facility has an intrinsic processing latency of roughly 6–7 minutes on V10 — this is the console, not the exporter. Confirm PCM aggregation is enabled on the HMC for the managed systems of interest, then alert on staleness using power_hmc_system_pcm_sample_age_seconds (a 15-minute threshold is a good starting point).

Fibre Channel error panels show “No data”

HMC PCM does not expose FC port error counters, so those panels read aix_fcstat_* from a companion AIX_exporter scraped into the same Prometheus, joined on the AIX partition name. Where no AIX_exporter runs, the panels simply show No data and the rest of the dashboard keeps working.

Verify the endpoint

# From the exporter host
curl -s http://localhost:9876/metrics | grep '^power_hmc_'

Compatibility

Verified against HMC V10 R3 SP1063 (it calls the V10 nested ManagedSystem / LogicalPartition PCM endpoints), monitoring managed systems, VIOS and LPARs running AIX, IBM i and Linux on Power. The exporter host runs any modern Linux x86-64 distribution (RHEL 9.x is the reference); the binary is statically linked with no runtime dependencies. Compatible with Prometheus 2.x/3.x and Grafana 9.x–12.x. power-hmc-exporter pairs naturally with AIX_exporter and the Loki Agent for complete, top-to-bottom IBM Power observability.

Download Checksum (v0.9.0)

Verify your download integrity with SHA-256:

sha256: ee3fdec2bd30ebf113d832b669e33c51f1200cdc0db7a9bbd96221d2045237da  power-hmc-exporter-v0.9.0-linux-amd64.tar.gz

On Linux, verify with: sha256sum power-hmc-exporter-v0.9.0-linux-amd64.tar.gz

Questions? Contact support