Skip to content

fix(demo): add the telco demo pack - #389

Merged
catinspace-au merged 3 commits into
mainfrom
feat/demo-pack-telco
Nov 13, 2026
Merged

catinspace-au merged 3 commits into
mainfrom
feat/demo-pack-telco

Conversation

@catinspace-au

Copy link
Copy Markdown
Contributor

The telco pack answers the NOC questions on /solutions/telco/: what changed, which peer flapped, which cell's KPIs fell.

  • bgp-updates polls RIPEstat every 60 seconds for four prefixes of Akamai, Cloudflare, Amazon and Google. Its description names the prefixes. RIPEstat publishes hours late, so each poll reads the minute that ended 12 hours ago.
  • ran-kpis and core-probes replay a day of seeded, generated events as JSON, routed on _dfe_demo_source. The last hour holds an RSRP drop, a backhaul collapse, a silent cell and an S6a failure burst.
  • Five dashboards: BGP peers, AS paths, cells, core probes and an RFO timeline. Three searches and a withdrawal hunt.

A source matched on a field other than data_stream.dataset with no transform is a JSON source. demo-beats replays it with the pack's events/generate.py. A pack of JSON and fetcher sources needs no intake.

Results on desktop-derek with a rendered dfe-demo-telco.yaml: startup took about 2 minutes. Row counts: bgp-updates 12,903, ran-kpis 5,818, core-probes 6,331. Hunt detections: 1,599. Screenshots cover all five dashboards. The stack is down.

The hunt follows the cyber pack's hunts/ and rules/ layout, which #384 installs. After #384 merges, rebase conflicts in Makefile and demo_seed.py need both sides kept.

The pack answers the NOC questions on /solutions/telco/: what changed, which peer flapped, which cell's KPIs fell.

- bgp-updates polls RIPEstat every 60 seconds for four prefixes of large networks (Akamai, Cloudflare, Amazon, Google). RIPEstat publishes about 12 hours behind. Each poll reads the minute that ended 12 hours ago. The BGP tiles shift each update forward 12 hours.
- ran-kpis and core-probes replay a generated day of cell PM counters and NGAP, GTPv2-C and Diameter probe records through the receiver as JSON. Routing uses _dfe_demo_source. The day's last hour holds four faults: an RSRP drop, a backhaul collapse, a silent cell and an S6a failure burst. events/generate.py uses a seed to generate the day and replays it.
- Five dashboards (peers, AS paths, cells, probes, an RFO timeline built from the counters) and three searches.
- A hunt matches every BGP withdrawal. The peers dashboard lists peers with over 20 withdrawals a minute.

A source matched on a field other than data_stream.dataset, with no transform, is a JSON source. The pack replays JSON sources through demo-beats with its own generate.py. A pack of JSON and fetcher sources needs no intake.
The cell charts use five minutes per bucket. Missing cell data shows as a gap rather than a 0 dBm spike.

The peers and probes tables span the full width, so peer addresses and causes are readable. The RFO timeline shows minutes ago. The BGP tables show the RIS clock in UTC.
`up --wait` failed on the telco file because demo-console exited 0 before the wait began. Nothing depended on it. demo-beats now waits on demo-console completing, so the wait counts the exit as done.

The BGP peers table puts the RIS collector in its own column, so the peer address shows in full at 1440x900.
@catinspace-au
catinspace-au merged commit 7a45cd3 into main Nov 13, 2026
15 checks passed
@catinspace-au
catinspace-au deleted the feat/demo-pack-telco branch November 13, 2026 23:21
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