Skip to content

telemetry: add ip-route and ip-pim-neighbor to default state-collect kinds#3827

Draft
ben-malbeclabs wants to merge 1 commit into
mainfrom
bc/state-collect-add-ip-route-pim-neighbor
Draft

telemetry: add ip-route and ip-pim-neighbor to default state-collect kinds#3827
ben-malbeclabs wants to merge 1 commit into
mainfrom
bc/state-collect-add-ip-route-pim-neighbor

Conversation

@ben-malbeclabs

Copy link
Copy Markdown
Contributor

Summary

Adds two CLI-based state-collect kinds to the state-ingest server's default defaultStateToCollectShowCommands map:

  • ip-routeshow ip route vrf all. Exposes admin distance, hardwareProgrammed / kernelProgrammed flags, routeAction, routeLeaked, directlyConnected — fields the gNMI AFT path (/network-instances/.../afts/ipv4-unicast/ipv4-entry/*) does not surface. Unblocks the IP RIB ingest pipeline tracked in malbeclabs/infra#1410.
  • ip-pim-neighborshow ip pim neighbor. PIM sparse-mode neighbor adjacencies (state, hello-interval, expires). Unblocks the multicast operator dashboard's PIM neighbor health panel (Part B of malbeclabs/infra#1428).

Why state-collect rather than gNMI

  • ip-route: gNMI AFT omits the operationally first-class fields (admin distance, programmed flags). CLI JSON gives all of them at the cost of one snapshot per cycle. Same trade-off captured in infra#1410.
  • ip-pim-neighbor: OpenConfig PIM coverage in Arista's gNMI server is limited; the existing DZ multicast state-collect path (mroute, MSDP) is the established pattern.

Scope notes

  • Per-command interval + device-pubkey targeting in state-ingest (infra#1409) is a separate change. These two new kinds initially run on the default cycle alongside the others. ip-route and ip-pim-neighbor are both lightweight per-device snapshots.
  • Lake-side ingest (parser + dim + enriched view + dzingest activity) lands separately per the state-collect playbook.

Testing Verification

  • Updated TestTelemetry_StateIngest_Handler_StateToCollect_UsesDefaultShowCommandsAndCustom to assert the 9 expected default kinds (was 7), including the two new ones, and the unchanged bgp-sockets custom.
  • go test ./telemetry/state-ingest/... green.

…kinds

Adds two kinds to the state-ingest server's default state-to-collect map:

  - ip-route: show ip route vrf all
    Exposes admin distance, programmed flags (hardwareProgrammed,
    kernelProgrammed), routeAction, routeLeaked, directlyConnected — fields
    the gNMI AFT path does not surface. Unblocks malbeclabs/infra#1410.

  - ip-pim-neighbor: show ip pim neighbor
    PIM neighbor adjacencies (state, hello-interval, expires, etc.) on
    devices running PIM sparse-mode. Unblocks the per-multicast-group
    dashboard's PIM neighbor health panel (malbeclabs/infra#1428).

Both are CLI-based state-collect rather than gNMI because:
  - ip-route: gNMI AFT omits operationally critical fields (admin distance,
    programmed flags).
  - ip-pim-neighbor: OpenConfig PIM coverage in Arista's gNMI server is
    limited and the existing multicast state-collect path (mroute, MSDP)
    is the established pattern.

Per-command interval + device-pubkey targeting (infra#1409) is a separate
change. These two kinds initially run on the default cycle.
@ben-malbeclabs ben-malbeclabs self-assigned this Jun 3, 2026
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