Skip to content

net-node: collect lightweight summaries without BPF traversal - #759

Closed
Patrick W. Healy (phealy) wants to merge 2 commits into
phealy/lightweight-status-route-summaryfrom
phealy/lightweight-status-node-summary
Closed

Patrick W. Healy (phealy) wants to merge 2 commits into
phealy/lightweight-status-route-summaryfrom
phealy/lightweight-status-node-summary

Conversation

@phealy

@phealy Patrick W. Healy (phealy) commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Scope

Stacked on #758. Adds direct overview collection, shared peer-health semantics, protobuf conversion, and local /status/summary. Preserves bootstrap/CNI guard errors and recovery, observed peer/route counts and mismatch semantics. Summary collection skips BPF traversal and does not construct a full outbound diagnostic snapshot. Full local diagnostics and publishing defaults remain unchanged.

514 changed LOC, including collection/parity/endpoint coverage and allocation benchmarks.

Validation

Node and shared-status package race tests, scoped lint including actionlint, and diff checks passed after stacking. Controlled 2,000-peer benchmark during implementation measured summary collection at about 9.34 MB/176k allocations versus full collection at 27.75 MB/734k allocations. This measures collection only, not whole-process RSS or live eBPF functionality.

Lightweight status draft stack

Base: #745. Each layer targets the preceding branch and remains draft.

#746 -> #747 -> #748 -> #750 -> #751 -> #752 -> #753 -> #754 -> #755 -> #756 -> #757 -> #758 -> #759 -> #760 -> #761 -> #762 -> #763 -> #764 -> #765 -> #766 -> #767 -> #768 -> #769 -> #770 -> #771 -> #772 -> #773 -> #774 -> #775 -> #776 -> #777 -> #778 -> #779 -> #780 -> #781 -> #782 -> #783 -> #784 -> #785 -> #786 -> #787 -> #788 -> #789 -> #790 -> #791 -> #792 -> #793 -> #794 -> #795 -> #796 -> #797 -> #798 -> #799

Collect shared metadata, bootstrap errors, aggregate health and exact peer/route summary facts without BPF traversal or outbound detail arrays. Add /status/summary using the existing local status policy and an additive protobuf converter. Leave all publishers and full endpoints unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
Use PeerHealthyForOverview during streamed summary collection and shared legacy projection/mismatch helpers in parity tests. Do not collect full snapshots in the production summary path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d2243398-6c36-4c3d-969e-7ed7bfb5b459
This was referenced Sep 16, 2026
This was referenced Sep 16, 2026
@phealy

Copy link
Copy Markdown
Contributor Author

This PR was mistaken churn from splitting the lightweight-status work into unnecessarily small PRs. That was my mistake, not a requirement from the user.

Its changes are preserved in #757 within the user-approved, consolidated 12-PR draft stack. Closing this superseded PR; the implementation is not being discarded, and nothing has been merged into main.

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