Commit Graph

6 Commits

Author SHA1 Message Date
olieske 20740b3704 feat: TCP connect fallback for ping, flag high latency vs. ping
- If a peer filters ICMP, measure the TCP connect time to its peer port
  instead; such values are marked with a trailing "t"
- Show ⚡ between Latency and Ping when stellar-core's latency exceeds
  the ping/TCP RTT by more than LATENCY_PING_RATIO (3), hinting at a
  VPN exit / relay in front of the actual node
- Legend below the peer table, only for markers actually shown

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 08:40:31 +00:00
olieske 602592e304 feat: add ICMP ping column to peer table
- ping_batch() pings each peer's public IP in parallel from the host
  (system ping, 1 packet, 1 s timeout, private IPs skipped)
- New "Ping" column next to stellar-core's "Latency" in the -p/-g table;
  "—" when the peer filters ICMP
- Low ping with high latency hints at a VPN exit / relay in front of
  the actual node

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 08:21:36 +00:00
olieske 6bca2c62e6 fix: query Horizon inside the container and flag lost core connection
- Fetch Horizon via curl inside the container (127.0.0.1:8000) instead of
  the host port 31401; the host->bridge forwarding hung until the 5 s
  timeout and made each cycle take ~6 s instead of ~1 s
- Report an error when Horizon's core_latest_ledger is 0 (no connection
  to stellar-core) instead of a false "Synced" with a negative lag
- Compute the ingest lag against stellar-core's own ledger
- "History Oldest" now shows history_elder_ledger; the latest ledger is
  listed separately as "History Latest"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 08:05:10 +00:00
olieske 4e27efc3b9 feat: config file for refresh interval, cycle timing warning, persistent cbreak
- Optional JSON config ($PI_STAT_CONFIG, ~/.config/pi-stat/config.json,
  <script dir>/pi-stat.json) with refresh_interval; -i SEC overrides it
- Refresh deadline anchored to cycle start; warn when a cycle takes
  >= 80% of the refresh interval or exceeds it
- Switch the tty to cbreak once per session so keypresses made during a
  long cycle are not dropped
- Ship pi-stat.json with the repo

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 08:05:04 +00:00
olieske bb441f16e8 docs: rename pi-stat.py to pi-stat in CLAUDE.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:09:55 +00:00
olieske db61213f39 initial commit 2026-06-24 12:00:01 +00:00