[HN Gopher] Gping - ping, but with a graph
       ___________________________________________________________________
        
       Gping - ping, but with a graph
        
       Author : pabs3
       Score  : 285 points
       Date   : 2023-07-01 10:39 UTC (12 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | 29athrowaway wrote:
       | See also:
       | 
       | - ministat
       | 
       | - gnuplot
       | 
       | - https://www.brendangregg.com/dtkshdemos.html
        
       | nomel wrote:
       | Off topic, but it seems that we've really stagnated, on the
       | terminal front, especially considering how many clients have full
       | GPU acceleration these days.
       | 
       | How has there not been some basic image/data steaming built in,
       | after all of these decades? Why am I writing scripts that parse
       | human text output?
        
         | MereInterest wrote:
         | If you want to have a program that outputs binary data to
         | stdout, then accept binary data on stdin, there's no reason not
         | to. It isn't the standard for historical reasons, and because
         | text is easier to bootstrap from manually-inspected results
         | into a script.
         | 
         | For example, the easiest way I've found to render generated
         | images into a gif or mp4 is to pipe a sequence of ppm-encoded
         | images into ffmpeg.
        
         | aflag wrote:
         | Because you can | grep text output and that's great.
        
       | doersino wrote:
       | Vaguely related (also "ping, but with a graph", but different):
       | https://github.com/denilsonsa/prettyping
        
       | jflitt wrote:
       | Awesome! Thanks for building this and sharing. I did something
       | similar https://github.com/jflittner/ping_visualizer not too long
       | ago, but yours looks way better!
        
       | pqdbr wrote:
       | Really nice that it allows you to pass a list of hosts at the
       | same time, and it will plot them in the same graph:
       | 
       | For instance, `gping mydomain.com google.com` is really nice for
       | a quick sanity check (is it my Wifi or my hosting provider).
        
         | dredmorbius wrote:
         | mtr (Matt's traceroute) is another great utility for this.
         | 
         | It doesn't graph output, but _does_ show connectivity ,
         | latency, packet loss, and variance on a set of hosts between
         | your IP and the destination.
         | 
         | <https://www.bitwizard.nl/mtr/>
         | 
         | (Previously noted in this thread by westurner:
         | <https://news.ycombinator.com/item?id=36549005>)
        
           | elishah wrote:
           | I never want to disparage people's efforts, but it is a
           | recurring theme for people to unknowingly reinvent mtr.
        
             | dredmorbius wrote:
             | Another lens is that reinventing or independently arriving
             | at existing (and well-regarded) ideas, methods, systems,
             | etc., is a validation of your own creative process.
             | 
             | It's _very_ difficult to stay on top of all available
             | tools. I find that so long as it 's something I can do with
             | shell tools, awk, or other scripting environments I'm often
             | better of _inventing_ than _searching_ as when you create
             | your own tools you 're addressing your own specific needs
             | and constraints, whilst when _evaluating_ a third-party
             | tool, you have to undergo much the same process ( "does
             | this do what I want it to do?") often _without_ the ability
             | to readily modify the tool to fit a _specific_ use case.
             | 
             | That's not _always_ true, but it often is.
             | 
             | And of course, creation helps expand your own creative
             | abilities.
             | 
             | If mtr is frequently re-invented, that's a strong
             | validation of the original concept as well.
        
           | ktm5j wrote:
           | It does have some visualization capabilities if you hit 'd'
           | once or twice. I think it looks nice!
        
             | dredmorbius wrote:
             | Thanks.
             | 
             | I know there's a GUI version, though I'm almost always
             | using the CLI/terminal interface myself. So I could be
             | missing some things.
        
               | oxygen_crisis wrote:
               | The charting display mode is a CLI/terminal feature,
               | though, not a GUI one.
        
               | dredmorbius wrote:
               | I may damned well have to read the man page and do some
               | looking at stuff.
               | 
               | Oh, holy hell, this is pretty cool!
               | 
               | Thanks!
               | 
               | (I've ... only been using mtr for ~2 decades.)
        
         | stormed wrote:
         | Wow! That's super handy actually. I'm definitely gonna keep
         | note of doing this in the future for my own projects
        
         | ape4 wrote:
         | Its a "super-power" (as the page says)
        
         | orf wrote:
         | You can also pass commands instead of hosts (for example
         | running "curl google.com").
        
       | DrPhish wrote:
       | I love gping, but wish there was more of an in-depth
       | info/manpage. The one it ships with doesn't explain much (What's
       | t/o, for example? How are things calculated?), and the github
       | page doesn't help much either.
        
         | orf wrote:
         | Yeah, this is definitely something I want to improve on. The
         | project is used a lot more than I originally expected, so
         | documentation is a bit scarce.
         | 
         | t/o is timeouts by the way
        
       | plingbang wrote:
       | The plot looks a bit weird when I ping my server ;)
       | gping ftlping.net
        
       | LinuxBender wrote:
       | I like the graph and being able to use multiple hosts. I could
       | see some benefit to creating bash functions that use gping + cmd
       | + curl since HTTPS will be reachable in more places than ICMP
       | which is often blocked at the last few hops past a datacenter
       | firewall and ICMP numbers can be misleading since most operating
       | systems rate limit it and most routers deprioritize it based on
       | backplane CPU load which has no bearing on the ability to forward
       | packets.
       | 
       | I noticed that if I used "-4" with a host that has both ipv4 and
       | ipv6 addresses it still pings the ipv6 address despite displaying
       | the ipv4 address. Do others here experience that? I'm on version
       | 1.8.0.
        
         | [deleted]
        
       | thumbuddy wrote:
       | Love it
        
         | vanous wrote:
         | TIL it can also measure and graph the execution time for a list
         | of commands rather than pinging hosts:
         | 
         | host can be a command like curl google.com if the --cmd flag is
         | used.
        
       | sacnoradhq wrote:
       | In the olden days before IPv6, geoip of IPv4 used to work and
       | there was traceroute-like utility on Windows that could plot IPs
       | on maps called NeoTrace Pro. IIRC, it also included something of
       | a ping map where it would reping every middlebox. Nowadays, not
       | all middleboxes respond and there is often too much carrier
       | overlaying and SDN flow management for IPs to map to any specific
       | physical location like it were a land phone line when every
       | little company bought a Class C and put their business phone
       | number in the ARIN database.
        
         | mberning wrote:
         | Was it similar to pingplotter?
        
       | westurner wrote:
       | mtr does traceroute, too:
       | https://en.wikipedia.org/wiki/MTR_(software) :
       | 
       | > _The tool is often used for network troubleshooting. By showing
       | a list of routers traversed, and the average round-trip time as
       | well as packet loss to each router, it allows users to identify
       | links between two given routers responsible for certain fractions
       | of the overall latency or packet loss through the network.[4]
       | This can help identify network overuse problems.[5]_
       | 
       | Scapy has a 3d visualization of _one_ traceroute sequence with
       | vpython. In college, I remember modifying it to run multiple
       | traceroutes and then overlaying all of the routes; and wondering
       | whether a given route is even stable through a complete
       | traceroute packet sequence.
       | https://scapy.readthedocs.io/en/latest/usage.html#tcp-tracer...
       | 
       | One way to avoid running tools that need root for crafting
       | packets at layer 2 is to use setcap:                 setcap
       | CAP_NET_RAW /use/bin/python-scapy
       | 
       | Does traceroute inappropriately connect the dots?
        
         | codetrotter wrote:
         | I run mtr using a Prometheus exporter. I think the one I am
         | using is https://github.com/mgumz/mtr-exporter
         | 
         | I have it set up to do trace routes to 1.1.1.1 and to 8.8.8.8,
         | and then I can look at the graphs in Prometheus
         | 
         | I was inspired to set this up on my computer after the house
         | where the computer is at was having very unstable internet for
         | several days.
         | 
         | I made a video about the graphs here
         | https://video.nstr.no/w/hjTH3Vggn2fvpTrQitMmVP
        
         | throwaway290 wrote:
         | My mind is blown by those 3D graphs. I almost want to make them
         | dynamically drawn in a futuristic style and use that as
         | screensaver...
        
           | westurner wrote:
           | Like a WebGL VPN company logo screensaver composed of all
           | those routes we shouldn't trust?
           | 
           | graph-drawing gh topic lists a number of JS libraries:
           | https://github.com/topics/graph-drawing
           | 
           | Is there a good way to make a JS screensaver that doesn't
           | leak memory yet? Maybe WebGL could get that done
        
         | jimmySixDOF wrote:
         | Yah, MTR could do it 30 years ago so not sure whats being added
         | here. Need to play with that 3D export thanks for sharing!
        
       | [deleted]
        
       | guptarohit wrote:
       | Today i was working to add multiline plot support to cli of
       | asciigraph, using that it's possible to do something very
       | similar.
       | 
       | Post showing multiline plot of ping to multiple hosts:
       | https://mastodon.social/@guptarohit/110638311512899264
        
       | mattsimpson wrote:
       | This immediately made it into my toolbox. Very handy; thanks for
       | the work and the post.
        
       | betaby wrote:
       | Related and very important
       | https://www.cloudflare.com/learning/network-layer/what-is-mt...
       | 
       | Make sure you understand what MTR actually shows and why.
        
       | badrabbit wrote:
       | Smokeping does this, but with webui, if it is still around that
       | is.
        
       | petercooper wrote:
       | I found this useful when trying to diagnose what I thought was a
       | flaky wifi network. Visually seeing both dimensions when
       | something is only subtly broken makes life a lot easier.
        
       | dale_glass wrote:
       | Feature request: sound.
       | 
       | On the rare occasion I need feedback while messing around with
       | cabling. I did write an improvised tool for the purpose, but it's
       | kind of crappy in that it's just around ping.
       | 
       | Behold the power of 'pingu': https://pastebin.com/qTfdZ7C8
        
         | orf wrote:
         | Could you add a GitHub issue with this suggestion? I like it
         | and I can definitely see if I can add it!
        
         | oxygen_crisis wrote:
         | The standard ping utility already has audible ping with "-a",
         | it emits a terminal bell sound for every reply.
        
       | simonmales wrote:
       | Brilliant, I'm often on shitty WiFi and have a terminal opening
       | pinging somewhere. This is what I have been locking for to
       | troubleshoot.
        
       | DavideNL wrote:
       | Previous related discussion:
       | https://news.ycombinator.com/item?id=26904588
        
       | __failbit wrote:
       | Really cool! I love the terminal based graphics
        
       | metadaemon wrote:
       | Going makes me think of Google, graping would have been a fun
       | name.
        
         | loloquwowndueo wrote:
         | If you squint hard enough "graping" also looks like it's a
         | google thing. But hey - Google does not own the letter G ;)
        
       ___________________________________________________________________
       (page generated 2023-07-01 23:00 UTC)