telemetry/gnmi-writer: collect ISIS global state and overload bit#3714
Merged
Conversation
844710a to
4aa91ee
Compare
0ed9bff to
5f83869
Compare
vihu
reviewed
May 18, 2026
80f4077 to
836f6a2
Compare
vihu
approved these changes
May 18, 2026
…extractors Build oc.Device fixtures in-test (vs. authoring prototext) and assert: - isis_global_state pulls instance, NET (joined), and level capability per network instance - isis_global_state skips entries with a nil Global.State - isis_overload_bit reports OverloadBit=false when SetBit is nil or false, true when set - isis_overload_bit skips entries with a nil OverloadBit.State - TableName() returns isis_global_state / isis_overload_bit
Group isis_global_state_latest and isis_overload_bit_latest by (device_pubkey, network_instance) so a row remains visible after the device stops reporting that instance in a later scrape, instead of disappearing the moment the device's max timestamp moves past it. Add a SQL-only test that inserts two scrapes — the second omits one network_instance — and asserts both rows still appear in the views.
… isis_overload_bit Captures the Arista json_ietf_val format observed in production, including the arista-isis-augments vendor field mixed in with openconfig leaves. Covers unmarshal → extractor pipeline as a regression for the case where the global/state and overload-bit paths were silently empty in clickhouse.
499b751 to
27723d6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of Changes
isis_global_stateextractor and ClickHouse migration capturing per-network-instance ISIS instance name, NET, and level capability from gNMI.isis_overload_bitextractor and ClickHouse migration capturing the ISIS LSP overload bit per network instance.DefaultExtractorsand define*_latestviews (latest row per device) on each new table, matching the existing pattern for other gNMI-sourced tables.Brings ISIS data collected by gnmi-writer closer to parity with the ISIS telemetry already shipped to S3, so we can eventually migrate ISIS consumers off the S3 pipeline onto this one.
Diff Breakdown
Pure addition: one extractor file with the new gNMI-walking logic, plus record structs and SQL migrations declaring the storage shape.
Key files (click to expand)
telemetry/gnmi-writer/internal/gnmi/extractors.go— addsextractIsisGlobalStateandextractIsisOverloadBitand registers them inDefaultExtractors.telemetry/gnmi-writer/internal/gnmi/records.go— addsIsisGlobalStateRecordandIsisOverloadBitRecordwith their ClickHouseTableName()mappings.telemetry/migrations/20250410000000_isis_global_state.sql— newisis_global_statetable (30-day TTL, MergeTree) plusisis_global_state_latestview.telemetry/migrations/20250410000001_isis_overload_bit.sql— newisis_overload_bittable (30-day TTL, MergeTree) plusisis_overload_bit_latestview.Testing Verification