Skip to content

feat[bc]: replace blob_core_fully_downloaded with length/contiguous_length pair and drop blind-peer metrics#1702

Merged
yuranich merged 1 commit into
tetherto:feature-qvac-lib-registry-server-metrics-monitoringfrom
yuranich:feature-registry-blob-core-length-metric
Apr 22, 2026
Merged

feat[bc]: replace blob_core_fully_downloaded with length/contiguous_length pair and drop blind-peer metrics#1702
yuranich merged 1 commit into
tetherto:feature-qvac-lib-registry-server-metrics-monitoringfrom
yuranich:feature-registry-blob-core-length-metric

Conversation

@yuranich

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

qvac_registry_blob_core_fully_downloaded is a misnomer: the node exporting it is the writer of its own blob core, not a downloader, so a 1/0 "fully downloaded" boolean conveys less operational detail than the raw replication numbers the view core already exports. The blind-peer metrics (qvac_registry_blind_peers_connected, qvac_registry_blind_peer_connected) are also dropped: we don't consume them anywhere and they clutter the scrape output.

How does it solve it?

  • Removes qvac_registry_blob_core_fully_downloaded and replaces it with qvac_registry_blob_core_length + qvac_registry_blob_core_contiguous_length, mirroring the existing view-core pattern. The gap (length - contiguous_length) now exposes the absolute on-disk magnitude instead of collapsing to a boolean.
  • Removes the two blind-peer gauges from lib/metrics.js, their DEPLOYMENT_GUIDE.md rows, the "Blind Peers" stat panel from the Grafana dashboard, and the associated integration test.
  • Updates the Grafana "Blobs Synced" stat panel to "Blob Core Contiguous" using min(qvac_registry_blob_core_contiguous_length == bool qvac_registry_blob_core_length) and min(qvac_registry_blob_core_length) > bool 0, preserving the 1/0 color mapping without depending on a dedicated boolean metric. Adjacent panel gridPos shifted left by 4 to close the gap left by the removed "Blind Peers" panel.
  • Adds integration assertions for the two new metric names.

Breaking changes

Yes. The following metric series are removed from /metrics:

  • qvac_registry_blob_core_fully_downloaded
  • qvac_registry_blind_peers_connected
  • qvac_registry_blind_peer_connected

Dashboards and alerts that referenced these must migrate to the length/contiguous-length pair or drop the blind-peer panels. No migration path is provided; the feature branch has not been deployed yet.

…ength pair and drop blind-peer metrics

Made-with: Cursor
@yuranich yuranich requested review from a team as code owners April 22, 2026 10:51
@yuranich yuranich merged commit 1de851b into tetherto:feature-qvac-lib-registry-server-metrics-monitoring Apr 22, 2026
6 checks passed
yuranich added a commit that referenced this pull request Apr 24, 2026
…stry server (#1724)

* QVAC-17131 feat: add Prometheus metrics monitoring to registry server (#1600)

* feat: add Prometheus metrics monitoring to registry server

* fix: restrict registry ping RPC to role and timestamp to avoid exposing operational data

* fix: make metrics bind host configurable and move off port 9090

* feat: replace per-model size gauge with view-derived total blob bytes (#1689)

* feat[bc]: rename gauges, add seeder metrics, and eagerly open blob core on indexers (#1692)

* feat[bc]: rename gauge metrics off _total suffix and pre-initialise rpc counters

* feat: add core seeder metrics and eagerly open blob core on indexers

* style: drop eslint-disable directives via helper function for gauge registration

* refactor[bc]: drop core_name label from blob core metrics and use median for view-derived stat panels

* style: drop noisy comment above registerGauge helper

* feat[bc]: replace blob_core_fully_downloaded with length/contiguous_length pair and drop blind-peer metrics (#1702)

* feat: expand Grafana dashboard with blob-core replication, seeders, and Holepunch P2P panels (#1716)

* feat: expand Grafana dashboard with blob-core replication, seeders, and Holepunch P2P panels

* fix: use vm_name label in QVAC and Holepunch panel legends instead of raw instance IP:port

* fix: apply $vm template filter to QVAC and Holepunch selectors for consistent per-node filtering


* chore[docs]: tighten registry Grafana dashboard panels based on staging review (#1718)

* chore[docs]: tighten registry Grafana dashboard panels based on staging review

* chore[docs]: drop redundant Blob Core Contiguous stat, cluster blob panels near the top

* chore[docs]: promote View Core Replication and Blob Core Bytes to the top of the metrics section (#1719)

* chore[docs]: promote View Core Replication and Blob Core Bytes to the top of the metrics section

* chore[docs]: split View Core Replication into length, contiguous, and gap panels

* chore: remove dead blind-peer helpers and fix stale metrics docs

- Drop unreferenced getConnectedBlindPeerKeys / getConfiguredBlindPeerKeys /
  isBlindPeerConnected chain and the _peerConnectionCounts map that only
  existed to back isBlindPeerConnected. Left over from the dropped
  blob_core_blind_peers gauge (1de851b).
- Fix DEPLOYMENT_GUIDE.md: default metrics port is 9210, not 9090; drop
  the hypermetrics reference since it is not a dependency (abandoned,
  incompatible with Hypercore v11) and per-core visibility is provided
  by the registry_blob_core_* / registry_view_core_* gauges.
Proletter pushed a commit that referenced this pull request May 24, 2026
…stry server (#1724)

* QVAC-17131 feat: add Prometheus metrics monitoring to registry server (#1600)

* feat: add Prometheus metrics monitoring to registry server

* fix: restrict registry ping RPC to role and timestamp to avoid exposing operational data

* fix: make metrics bind host configurable and move off port 9090

* feat: replace per-model size gauge with view-derived total blob bytes (#1689)

* feat[bc]: rename gauges, add seeder metrics, and eagerly open blob core on indexers (#1692)

* feat[bc]: rename gauge metrics off _total suffix and pre-initialise rpc counters

* feat: add core seeder metrics and eagerly open blob core on indexers

* style: drop eslint-disable directives via helper function for gauge registration

* refactor[bc]: drop core_name label from blob core metrics and use median for view-derived stat panels

* style: drop noisy comment above registerGauge helper

* feat[bc]: replace blob_core_fully_downloaded with length/contiguous_length pair and drop blind-peer metrics (#1702)

* feat: expand Grafana dashboard with blob-core replication, seeders, and Holepunch P2P panels (#1716)

* feat: expand Grafana dashboard with blob-core replication, seeders, and Holepunch P2P panels

* fix: use vm_name label in QVAC and Holepunch panel legends instead of raw instance IP:port

* fix: apply $vm template filter to QVAC and Holepunch selectors for consistent per-node filtering


* chore[docs]: tighten registry Grafana dashboard panels based on staging review (#1718)

* chore[docs]: tighten registry Grafana dashboard panels based on staging review

* chore[docs]: drop redundant Blob Core Contiguous stat, cluster blob panels near the top

* chore[docs]: promote View Core Replication and Blob Core Bytes to the top of the metrics section (#1719)

* chore[docs]: promote View Core Replication and Blob Core Bytes to the top of the metrics section

* chore[docs]: split View Core Replication into length, contiguous, and gap panels

* chore: remove dead blind-peer helpers and fix stale metrics docs

- Drop unreferenced getConnectedBlindPeerKeys / getConfiguredBlindPeerKeys /
  isBlindPeerConnected chain and the _peerConnectionCounts map that only
  existed to back isBlindPeerConnected. Left over from the dropped
  blob_core_blind_peers gauge (1de851b).
- Fix DEPLOYMENT_GUIDE.md: default metrics port is 9210, not 9090; drop
  the hypermetrics reference since it is not a dependency (abandoned,
  incompatible with Hypercore v11) and per-core visibility is provided
  by the registry_blob_core_* / registry_view_core_* gauges.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant