Summary
Several NovaNet eBPF observability APIs are not wrapped in the NovaEdge client and not exposed via metrics or admin API:
GetSockmapStats — SOCKMAP redirect/fallback counters (not wrapped in client.go)
ListMeshRedirects — active sk_lookup mesh redirect entries (not wrapped in client.go)
GetRateLimitStats — per-CIDR allowed/denied counters (wrapped but never called)
StreamBackendHealth — passive health data stream (not wrapped in client.go)
What's Needed
- Add missing client wrappers for
GetSockmapStats, ListMeshRedirects, StreamBackendHealth
- Expose SOCKMAP stats as Prometheus metrics (
novaedge_sockmap_redirected_total, novaedge_sockmap_fallback_total)
- Expose mesh redirect count as gauge (
novaedge_mesh_ebpf_redirects_active)
- Expose rate limit stats as counters (
novaedge_ratelimit_ebpf_allowed_total, novaedge_ratelimit_ebpf_denied_total)
- Add
novactl mesh status output showing eBPF acceleration state
Acceptance Criteria
Summary
Several NovaNet eBPF observability APIs are not wrapped in the NovaEdge client and not exposed via metrics or admin API:
GetSockmapStats— SOCKMAP redirect/fallback counters (not wrapped in client.go)ListMeshRedirects— active sk_lookup mesh redirect entries (not wrapped in client.go)GetRateLimitStats— per-CIDR allowed/denied counters (wrapped but never called)StreamBackendHealth— passive health data stream (not wrapped in client.go)What's Needed
GetSockmapStats,ListMeshRedirects,StreamBackendHealthnovaedge_sockmap_redirected_total,novaedge_sockmap_fallback_total)novaedge_mesh_ebpf_redirects_active)novaedge_ratelimit_ebpf_allowed_total,novaedge_ratelimit_ebpf_denied_total)novactl mesh statusoutput showing eBPF acceleration stateAcceptance Criteria