Skip to main content

serviceping

Build Status Coverage Current Version Supported Python Versions License

A utility with a "ping" like interface to ping tcp port services.

Table of Contents

Background

This utility was written to simplify troubleshooting network issues related to talking to network services

Install

To install serviceping, first make sure you are running Python 3.6+, then simply:

pip install serviceping

Usage

usage: serviceping [-h] [-c COUNT] [-i INTERVAL] [-d] destination [destination ...]
positional arguments:
  destination Destination host or URL

optional arguments:
  -h, --help   show this help message and exit
  -c COUNT     Number of pings to send
  -i INTERVAL  Ping interval
  -d           Show timings for the entire connection

Examples

The serviceping tool uses a syntax that mirrors that of the ping commmand.

Ping port 80 (http) on www.yahoo.com

By pinging www.yahoo.com via http (port 80), we can clearly see the multiple hosts responding and the latency of each request.

$ serviceping www.yahoo.com
SERVICEPING www.yahoo.com:80 (98.139.180.149:80).
from www.yahoo.com:80 (98.139.183.24:80): time=2.46 ms
from www.yahoo.com:80 (98.139.180.149:80): time=2.43 ms
--- www.yahoo.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1704.0ms
rtt min/avg/max/dev = 2.43/2.44/2.46/4.00 ms
$

Ping port 4443 (https) on www.yahoo.com

Serviceping can also connect to other ports such as the ssl port (443).

$ serviceping www.yahoo.com:443
SERVICEPING www.yahoo.com:443 (98.139.183.24:443).
from www.yahoo.com:443 (98.139.180.149:443): time=2.89 ms
from www.yahoo.com:443 (98.139.180.149:443): time=2.81 ms
--- www.yahoo.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1744.0ms
rtt min/avg/max/dev = 2.81/2.85/2.89/6.08 ms
$

Pinging a URL instead of the port

The serviceping command can also specify send ping requests to a url. If a URL is specified, it will perform an http get request and show the response, which is useful when hosts are doing unexpected things in a dns rotation or behind a reverse proxy or vip.

In this example we specify a url of http://cnn.com/

$ serviceping http://cnn.com/
SERVICEPING cnn.com:80 (157.166.255.18:80).
1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=87.14 ms
1448 bytes from cnn.com:80 (157.166.226.25:80):response=200 time=64.82 ms
1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=62.98 ms
1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=78.30 ms
--- cnn.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 4372.0ms
rtt min/avg/max/dev = 62.98/73.31/87.14/56.00 ms
$

The output shows that two hosts are responding to this request, and that they are returning different amounts of data in their responses.

Pinging a URL with timings

The detailed timing flag adds timings for each step of each request, which is useful for determining the causes of latency issues or errors.

Here we are doing the previous example with detailed timings.

$ serviceping -d http://cnn.com/
SERVICEPING cnn.com:80 (157.166.255.19:80).
1386 bytes from cnn.com:80 (157.166.255.19:80):response=200 dns=0.21ms connect=68.36ms request=130.02ms all=198.73ms
1386 bytes from cnn.com:80 (157.166.226.25:80):response=200 dns=0.30ms connect=66.72ms request=101.07ms all=168.20ms
1500 bytes from cnn.com:80 (157.166.255.18:80):response=200 dns=0.30ms connect=123.94ms request=203.08ms all=327.43ms
1386 bytes from cnn.com:80 (157.166.226.26:80):response=200 dns=0.28ms connect=68.32ms request=87.94ms all=156.69ms
--- cnn.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 5009.0ms
rtt min/avg/max/dev = 156.69/212.76/327.43/138.24 ms
$

Clearly, the host with address 157.166.226.25 is taking significantly longer to establish the tcp connection and handle the http request.

License

This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.

Metadata

Release files for serviceping 19.5.121862

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for serviceping 19.5.121862
File Size Uploaded Provenance
serviceping-19.5.121862.tar.gz 9.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for serviceping 19.5.121862
File Interpreter ABI Platform
serviceping-19.5.121862-py3-none-any.whl Python 3 none any Details

Total release size: 19.6 kB

Release files / serviceping-19.5.121862.tar.gz

Download URL serviceping-19.5.121862.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
48a806dbe65aa2bf502931ff4cfb99ae01a974ecf622024d66ad9d968a28fa27
BLAKE2b-256 checksum
How to use checksums
fd64711a4e6100ea4d5712860edab0fc1a2a8aab1ac67f7071268ed62568abe3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

Release files / serviceping-19.5.121862-py3-none-any.whl

Download URL serviceping-19.5.121862-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f8f5886002f27739db6d3d26c41dfc6db80b1cb28247c629ce8e487da31c935
BLAKE2b-256 checksum
How to use checksums
49a6e940ac9489260266c98b74a4c0a8e3bda06aa32f245c063a026b018ddfc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

Security for serviceping 19.5.121862

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

19.5.121862 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page