Skip to content

PingerPlot 1.1.0

Choose a tag to compare

@jamesccupps jamesccupps released this 04 Jun 17:45
· 45 commits to main since this release

PingerPlot 1.1.0 — the "leave it running" release.

Quality-of-life and operational features for monitoring you actually leave running, plus reliability fixes from a full code audit. Still pure Python standard library — zero third-party dependencies.

New

  • Persists between launches — theme, engine options, alert thresholds, and your target list save to %APPDATA%\PingerPlot and restore on start. View → Resume targets on launch re-arms the last session's monitors.
  • Pause / Resume — right-click a target to halt probing without losing history; resume continues where it left off.
  • Per-target settings — each target keeps its own engine/alert config; right-click → Edit settings… to inspect or change just that one.
  • Copy — right-click a hop to copy its IP or hostname.
  • Webhook alertsEngine → Webhook URL gets a JSON POST (http/https) when the destination alert raises or clears. Fired off-thread, so it never blocks probing.
  • Custom app icon in place of the default Tk feather.

Reliability & hardening

  • Probe log is size-capped with rollover (~25 MB, one backup) — unattended multi-week runs can't fill the disk.
  • Fixed a monitor restart race (a slow worker from a previous run could write stale probes into a freshly restarted one) and made the engine reusable after shutdown.
  • Session load clamps sample history so a crafted/corrupt file can't exhaust memory.
  • python -m pingerplot entry point; CI least-privilege (permissions: contents: read).

Install / run (no Git needed)

  1. Download Source code (zip) below and extract it anywhere.
  2. Double-click PingerPlot.vbs — no console window, no build, no pip install.

Requires Windows 10/11 and Python 3.10+ (Tkinter ships with the python.org installer). Full TCP/UDP traceroute needs an elevated session; ICMP and TCP final-hop work as a normal user.

Full changelog: v1.0.0...v1.1.0