Show HN: Sping – An HTTP/TCP latency tool that's easy on the eye

129 zorlack 14 8/24/2025, 11:42:01 PM dseltzer.gitlab.io ↗
I've frequently found myself using [nvitop](https://github.com/XuehaiPan/nvitop) to diagnose GPU/CPU contention issues.

The two best things about it are:

- It's easy to install if I can access pip in the container

- It makes a compelling screenshot (which helps me communicate with coworkers.)

With those two lessons in mind: Here is Sping!

Purpose: Help observe and diagnose latency issues at layer 4+ (TCP/HTTP/HTTPS)

Two good things about it:

- It's easy to install if you have pip. (Available at [service-ping-sping](https://pypi.org/project/service-ping-sping/) on PyPi)

- It makes a compelling screenshot.

Not sure if this is the kind of thing that anyone else would be interested in. But I've enjoyed making it and intend to keep using it.

Comments (14)

gnyman · 3h ago
Looks nice.

I would add a link to the gitlab to the page also, clicking the LICENCE brings me to the source code but other than that there did not seem to be a link .

Out of curiosity, did you use LLM's to code this? My gut feeling tells me at minimum the readme was written by one, or maybe it's normal to use emojis everywhere :-) Also I am not meaning to judge it as good or bad, I'm just curious.

I think one thing that LLM's and coding agents enables, is creating these customised solution which solve a specific problem, in a specific way. Some might consider it wasteful. I bet many thinks your effort would have been better spent contributing to one of the existing ones instead of doing yet another tool, but I find fascinating that we can finally tell our computers what we need and the will do it.

If you hand-wrote everything, then apologies for the unrelated rant :-)

guessmyname · 2h ago
> It's easy to install if you have pip. (Available at service-ping-sping on PyPi)

Consider rewriting the program in Go, then you’ll have a statically linked binary that’s much easier to install (less dependencies) and will be much faster too.

Cthulhu_ · 2h ago
If that is the objective, there's a few options available; a more pragmatic one is to use a tool that bundles a Python runtime and the application into a single executable, there's a few options there. Rewriting in a different language should always be a last resort given the time investment required.
guessmyname · 1h ago
> Rewriting in a different language should always be a last resort given the time investment required.

Makes no sense. This is a relatively small program that can easily be rewritten by a large large model like ChatGPT, Claude, Gemini, etc. in a day session.

kunley · 1h ago
> Rewriting in a different language should always be a last resort given the time investment required.

..or, a refreshing and exciting experience.

withinboredom · 1h ago
FYI: the final summary gets hidden if the graph writes a frame after the summary is output.
indigodaddy · 5h ago
My favorite ping tool is fping, mainly because I can do bash expansion with it eg `fping mail{1..10}` .. very useful and saves me from doing a "for i" one-liner.

This idea is also very useful for host/dig DNS queries which I would also often previously do a one-liner for, but recently had a gpt script me a tool for it:

https://gist.github.com/jgbrwn/7dd4b262c544f750cb0291161b2ec...

johnQdeveloper · 9h ago
Just fyi, looks like the shortened command defaults has a bug based on the docs @ https://pypi.org/project/service-ping-sping/

(i.e. # HTTP monitoring with interactive UI sping google.com )

  sping johnqdeveloper.com     
  Usage: sping [OPTIONS] URL
  Try 'sping --help' for help.
  ╭─ Error ──────────────────────────────────────────────────────────────────────╮
  │ Invalid value for '--palette': <ColorPalette.SUNSET:   'sunset'> is not one of │
  │ 'sunset', 'ocean', 'forest', 'volcano', 'galaxy', 'arctic', 'neon',          │
  │ 'monochrome'.                                                                  │
  ╰──────────────────────────────────────────────────────────────────────────────╯
zorlack · 9h ago
Thank you for reporting this!

Would you mind telling me what environment you found this behavior in, and how you installed the app?

I've been testing in ubuntu containers doing:

    pip3 install service-ping-sping --break-system-packages
Thank you so much!!

*EDIT:*

I think this is to do with me not being specific about what version of typer I depend upon... working on it now!

This is now fixed in 0.2.11. Thanks @johnQdeveloper

lll-o-lll · 6h ago
I absolutely love this! What a great tool.
truekonrads · 10h ago
Very nice! We all really need a tool that IT can use to diagnose problems along the path. Like more user friendly nping —tr
pbhjpbhj · 2h ago
Like mtrace/mtr?
roamerz · 5h ago
Thank you looks super helpful!
imweijh · 5h ago
thanks~