Native Shell
Native Shell:AI 生成的 UI,在你的應用中原生呈現,涵蓋每個平台。iOS、Android、macOS、Windows 與 Linux 上的應用、GPUI 應用與網頁在執行時載入已簽名、沙箱隔離的 TSX 模組並繪製 th
AI 翻譯
Prometheus/OTLP exporter for Dell PowerScale (OneFS) — broad cluster/node/protocol/quota/capacity metrics
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 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.