Ping Service

We've used Pingdom to alert outages and track uptime until they abandoned their free tier. Let's have a server-side plugin do this for us. See Service Blocks

Service Blocks

We've developed the scheduling for Datalog. Maybe we just add a PING keyword to that plugin.

Or we can make a plugin that uses the same or similar scheduling and then let the existing Datalog query it.

See ICMP Options we've discarded.

ICMP Options

Cases

Alert if server is down or unavailable. Must see through port forwarding to home network.

Alert if service is down or unavailable. Must see through routing or other application logic.

Diagnosis based on time of failure and nature of intermittent failure.

Assess relative performance between servers, network path and over time.

Correlate and localize network anomalies.

Report uptime percentages over months and years.

Code

I've added a ping-like sample endpoint to the Datalog plugin which returns curl error code and elapsed time ready to be logged. github

github

I've modified the plotly.js code I used to monitor at temp to now look at ping time. asia bay

asia

bay

A pair of iframes offers side-by-side viewing. html

html

I've written html/javascript to report an Uptime Table using the parallel data fetch already proven.

Uptime Table

Use

We see occasional spikes of slowness that don't correlate between probing servers leading us to suspect timebase instability which we've studied before.

We could certainly get more stable numbers if we didn't make a call to make a probe but probed directly from the sampling logic in Datalog. We could also wrap this logic with real time clock checks that could detect when the hosting computer was slow on its own.