-
Notifications
You must be signed in to change notification settings - Fork 1
Releases: Strykar/GPON
v1.0.0 -- first stable release
First stable release of the gpon_exporter (rewritten from hsgq_prometheus_collector) and Grafana dashboard for the HSGQ / ODI (Realtek RTL960x) GPON SFP.
Breaking changes
If you ran the pre-v1.0.0 collector, the renames below will break any external alerting rules, recording rules, or dashboard forks. The shipped dashboard.json is migrated; only your own copies need attention.
| Old | New |
|---|---|
gpon_collector_* self-metrics |
gpon_exporter_* |
gpon_bias_current_mA |
gpon_bias_current_amperes (value scaled, not just renamed) |
Cumulative counters (gpon_ds_*, gpon_us_*, gpon_activation_*, gpon_rogue_sd_*) |
Same names with _total suffix; type changed from Gauge to Counter. Use rate(metric_total[15m]). |
--hostname H --port N --user U --password P (positional, repeatable) |
--device user:password@host[:port] (URL-form, repeatable) |
GPON_PASSWORD env var |
ONU_SSH_PASSWORD |
Default bind address 0.0.0.0 |
127.0.0.1 (use --bind-address 0.0.0.0 to opt back in) |
Highlights
- Real Prometheus Counters for cumulative device counters via the
_AbsoluteCounteradapter, with explicit reset handling and silent first-contact baseline (no fake rate spike on restart). - URL-style
--device user:password@host[:port], repeatable for multi-ONU. Password can come fromONU_SSH_PASSWORDenv var instead of the command line. - Loopback bind by default (
127.0.0.1);--bind-address 0.0.0.0to expose to the network. - SSH host-key persistence at
~/.config/gpon-exporter/known_hosts. Logs a warning on first contact and on key change. - Per-host retry once after 5s on transient SSH failure inside the fetch interval.
- Dashboard rewritten: ONU status row at the top, attenuation reference collapsed, gauges (Laser Tx/Rx, voltage, RAM, CPU, SoC temp), threshold-banded timeseries for optical metrics, rate panels for diag counters, sentence-case titles, full alarm names, default time range
now-15m. - Documentation: README with How-to-use quickstart and per-panel/per-query rationale; QUIRKS and COVERAGE moved into
docs/; new CODE_OF_CONDUCT.md and CONTRIBUTING.md. - Tests (37) covering parsers, fetch pipeline, device-string parsing, and the
--enable-omci=offbranch. - Container hardening: HEALTHCHECK, mem_limit, host-side
127.0.0.1:8114mapping by default.
Verified firmware
V1.0-220923(M110 SFU) -- end-to-end verified.- 240408 SFU and 2023年10月21日 / V1.1.3-2025年06月20日 HGU builds: untested but expected to work given the diag CLI compatibility.
Firmware tarballs and the spec/manual PDFs are attached to this release.
Note on git history (added 2026年05月10日)
Repository history was rewritten with git filter-repo to drop the
firmware/*.tar blobs (~14 MB) from every commit. Tarballs now live
exclusively as release assets on this page, where they were already
mirrored. Effects:
- Fresh clones are ~10 MB lighter (
.git27 MB → 17 MB). - The auto-generated source tarball for tag
v1.0.0(the green
"Source code (tar.gz)" link) no longer contains afirmware/directory. - If you have an existing clone or fork, your local history's commit
hashes diverge from upstream. Easiest path:git fetch origin && git reset --hard origin/main, then re-clone if you have local work to
preserve. - Existing pull requests against the old history will need rebasing.
The functional code, dashboard, and docs in this release are unchanged
from the original v1.0.0 commit set — only the firmware blobs were
excised. To download a firmware tarball, use the asset links above.