Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
Prometheus + OTLP exporter for Dell PowerScale Gen1
Translation pending
Developer toolsGo · MakefileGitHub @fjacquetOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Prometheus/OTLP exporter for Dell PowerScale (OneFS) — broad cluster/node/protocol/quota/capacity metrics
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A Go exporter for Dell PowerScale (OneFS). It authenticates to the OneFS platform
API, collects broad cluster, node, protocol, quota, snapshot and capacity metrics, and
exposes them via both a Prometheus /metrics endpoint and an optional OTLP
metric push — both fed from one shared snapshot. The powerscale_ metric prefix matches
dell/csm-metrics-powerscale for
dashboard compatibility.
/metrics) and an optional OTLP metric push, fed
from one shared snapshot.cluster label./health JSON plus always-200
/livez//readyz probes, and optional OTLP tracing.powerscale_ metric prefix matches Dell's
csm-metrics-powerscale so existing dashboards work.make cli
export PSCALE1_PASSWORD='your-monitor-password'
./bin/pscale_exporter --config config.yaml
# metrics: http://localhost:9444/metrics health: http://localhost:9444/health
Or install with Homebrew: brew install fjacquet/tap/pscale_exporter.
Or with Docker: docker pull ghcr.io/fjacquet/pscale_exporter:latest.
A docker compose stack brings up the exporter alongside Prometheus, an OpenTelemetry
collector, and Grafana for a complete end-to-end test:
PSCALE1_PASSWORD='your-monitor-password' docker compose up -d --build
| Service | URL | Purpose |
|---|---|---|
| Exporter | http://localhost:9444/metrics (/health) | the /metrics pull endpoint |
| Prometheus | http://localhost:9090 | scrapes the exporter; alert rules in deploy/prometheus/pscale.rules.yml |
| Grafana | http://localhost:3000 (admin/admin) | Prometheus datasource auto-provisioned |
| OTLP collector | http://localhost:8889/metrics | receives the OTLP push and re-exposes it |
Point config.yaml at a real cluster and set PSCALE1_PASSWORD for a true end-to-end
run; with the default example cluster the stack still validates wiring (powerscale_up
goes to 0 and the PowerScaleClusterDown alert fires). To exercise the OTLP push path,
set opentelemetry.metrics.enabled: true with endpoint: "otel-collector:4317" in
config.yaml. A pull-based variant (published GHCR image, no local build) is in
docker-compose.ghcr.yml.
Full docs at https://fjacquet.github.io/pscale_exporter/:
make tools # install golangci-lint, cyclonedx-gomod, govulncheck (pinned)
make sure # fmt + vet + test + build + golangci-lint
make ci # the gate CI runs (adds go test -race + govulncheck)
--debug logs every OneFS request (full URL, size, duration), per-cluster parse
summaries (node/quota/sensor counts, which curated stat keys came back missing), and a
payload snippet whenever a response doesn't parse. For a schema surprise we can't
reproduce, ask the operator to run one cycle with response dumping:
pscale_exporter --config config.yaml --debug --once --dump-dir /tmp/pscale-dump
# then ship /tmp/pscale-dump/<cluster>/ back — one verbatim JSON file per endpoint,
# usable directly as test fixtures. Payloads contain no credentials.
To validate a live cluster end to end, --trace logs every OneFS API response body
(method, URL, status; headers — and thus the session cookie — are never logged), and
--once --debug prints every collected sample sorted in exposition style:
pscale_exporter --config config.yaml --once --debug --trace > validate.out
grep -v '^{' validate.out > samples.txt # every sample (diff against docs/metrics.md)
grep 'API trace' validate.out # raw OneFS payloads for anything missing
ISI_PRIV_STATISTICS,
ISI_PRIV_QUOTA, and ISI_PRIV_DEVICES — the latter is required by the
cluster-nodes inventory) is sufficient for collection.sum/avg in
PromQL, never rate()._bytes, _bytes_per_second,
_operations_per_second, _seconds, _percent.powerscale_ prefix matches Dell's csm-metrics-powerscale for dashboard reuse./metrics, /health, /livez and /readyz have no authentication or TLS and bind
0.0.0.0 by default, and the metrics expose cluster, node, quota path and share names.
Run the exporter on a trusted network, set server.host to a specific interface, or put it
behind a reverse proxy. TLS verification of the OneFS API is on by default
(insecureSkipVerify is an opt-in). Use a read-only OneFS account. To report a
vulnerability, see SECURITY.md.
From 1.0, metric names, labels and units, CLI flags, config keys and the default port are stable across 1.x; metrics not yet seen on a live cluster are marked Provisional in the metrics reference. Whether a metric appears depends on your OneFS version. The full policy is ADR-0007. Contributions are welcome: see CONTRIBUTING.md.
Apache License 2.0 — see LICENSE.