Skip to content

Add eBPF observability: GetSockmapStats, ListMeshRedirects, GetRateLimitStats #926

@piwi3910

Description

@piwi3910

Summary

Several NovaNet eBPF observability APIs are not wrapped in the NovaEdge client and not exposed via metrics or admin API:

  1. GetSockmapStats — SOCKMAP redirect/fallback counters (not wrapped in client.go)
  2. ListMeshRedirects — active sk_lookup mesh redirect entries (not wrapped in client.go)
  3. GetRateLimitStats — per-CIDR allowed/denied counters (wrapped but never called)
  4. StreamBackendHealth — passive health data stream (not wrapped in client.go)

What's Needed

  1. Add missing client wrappers for GetSockmapStats, ListMeshRedirects, StreamBackendHealth
  2. Expose SOCKMAP stats as Prometheus metrics (novaedge_sockmap_redirected_total, novaedge_sockmap_fallback_total)
  3. Expose mesh redirect count as gauge (novaedge_mesh_ebpf_redirects_active)
  4. Expose rate limit stats as counters (novaedge_ratelimit_ebpf_allowed_total, novaedge_ratelimit_ebpf_denied_total)
  5. Add novactl mesh status output showing eBPF acceleration state

Acceptance Criteria

  • All NovaNet observability APIs wrapped in client
  • Prometheus metrics for SOCKMAP, mesh redirect, rate limit eBPF stats
  • Periodic polling goroutine to refresh eBPF stats
  • Admin API endpoint for eBPF acceleration status

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions