PingerPlot

See where on the path a connection goes wrong.

Like mtr or WinMTR, it finds every router between you and a target, then keeps probing all of them. Loss, latency, jitter and a voice-quality score build up per hop, so a problem shows up at the hop where it starts and every hop after it. It alerts you when the destination degrades, and runs quietly in the notification area.

Free and open source (MIT). Windows 10 and 11 (64-bit); Linux with pipx. All releases

PingerPlot in the dark theme: four targets, the selected one alerting with a red banner, a hop table where trouble starts at hop 4, and the destination's latency graph
Demo mode: simulated paths with documentation addresses.

A traceroute that keeps watching

Every hop, all the time

Each round is a full traceroute, so every hop gets current, average, best and worst latency, jitter and loss over minutes or days, not one snapshot.

The path over time

The Timeline draws every hop on one time axis. A latency step shows up as the row where the bars get tall, and stays tall for every hop after it.

Alerts that mean something

Sustained loss, latency or a poor MOS at the destination, over a window you choose, never a router in the middle that just deprioritises ICMP. A banner, a notification, a sound, and a webhook to Slack, Teams, ntfy or Home Assistant.

Route changes, live

A hop whose router changes, or a path that grows or shrinks, is caught within a round and written to the Events list.

ICMP, TCP and UDP

ICMP needs no administrator rights. TCP to a port answers "is this service up, and how fast?". DSCP marking measures the path as voice or video traffic would see it, and a fixed source address picks the interface.

MOS for calls

The ITU-T E-model's 1 to 5 voice-quality score for the destination: one number for whether the path is good enough for a call, and an alert when it isn't.

A record you can compare

Every probe to a size-capped CSV per target, sessions you can save and reopen, and a per-hop comparison with an earlier run that calls a changed router "rerouted" rather than inventing a difference.

In the background, or headless

Closing the window keeps monitoring from the notification area; Start with Windows puts it there when you sign in. A headless runner does the same for a server or Task Scheduler, with one-shot reports for tickets.

Signed updates, nothing else sent

It checks GitHub once a day and installs a new version with one click, only if the download carries the release signature built into the app. Probes go only to your targets; the map's lookups only when you open it.

A closer look

The Timeline view: six hops stacked on one time axis, loss and latency rising from hop 4 onwards
Timeline: the whole path on one time axis. The trouble starts at hop 4.
The Hops view in the light theme
The Hops view in the light theme. Rows turn amber or red on loss or latency.
The Events view: a route change, alerts raised and cleared, with times
Events: route changes and alerts as they happen.
The Map view, zoomed to the path: Portland, Boston, Chicago and Denver joined by the route
Map: the path's public hops, zoomed to fit, when you open it.
The Settings page: probing, alert thresholds and the app's options
Settings: defaults for new targets, and the app's own options.

All pictures are from the app's demo mode: simulated paths with documentation addresses.

Install

Installer (recommended)

Download PingerPlot-Setup.exe and run it. It installs for your Windows user only, with no admin prompt, adds a Start menu shortcut, and uninstalls from Settings → Apps.

The app isn't code-signed, so Windows may show Windows protected your PC the first time: click More info, then Run anyway.

Portable

Download the zip, unzip it somewhere of your own (a USB stick works), and run PingerPlot.exe. It keeps its settings in its own folder and updates itself in place.

Avoid C:\Program Files, which updates can't write to.

Then

Type a host name or address, your gateway or a server you care about, and press Add. Click a hop to graph it. Full TCP or UDP traceroute needs Run as administrator; ICMP never does.

Linux? One pipx command, with a menu entry and notifications: see Linux in the README. macOS runs from source.

Feedback

Found a bug or have an idea? Open an issue on GitHub; in the app, ⋯ → Report a problem… fills in the version. Reports from real Linux and macOS machines are especially welcome.