Crossfiltering Webpass Ping Logs

Measurements by Date
Packet Loss (%)
Avg. RTT to (ms)
Day of Week
Hour of Day
- of - logs selected.

If you make a selection in one of the charts, it should update the others. You can make selections in multiple charts at once. For example, you can find a few periods with 10% or more packet loss, isolate a [particular lossy period on June 16th](javascript:filter([[new Date(2013,05,16), new Date(2013,05,17)], [10, 101], null, null, null])) or notice that high ping latencies to Google occur more frequently on Saturdays.

My apartment gets its Internet access through WebPass. WebPass uses point-to-point microwave radios to connect its residential network together rather than running cables. My experience with WebPass so far has been overwhelmingly positive; it's really fast and their customer service is top-notch.

However, after seeing a couple of bursts of packet loss earlier this year, I was interested in doing a little bit of basic measurement to see if bursty loss occurred regularly and if it was correlated with anything in particular. I've also been looking for an excuse to play around with D3 and Crossfilter, and this sort of analysis is a perfect fit.

The measurements I performed are hardly scientific; I hooked a Rasberry Pi to my router and had it ping for 30 seconds every 15 minutes. Once I had enough data, I passed the results through a Python script (source code available on GitHub) to produce a CSV. I started with Crossfilter's example code, hacked it up a little, and produced what you (should) see below.

The ping logs themselves are available for download if you're interested in playing around with them yourself. There's a lot of additional logs there from smaller testing periods as well; I'm focusing on the four months of data here because it was collected without any gaps in time.