The goal of pingers is to assist you with troubleshooting internet connection issues and assist in isolating packet loss on your network.
It does this by allowing you to retrieve the top trace route destinations your internet provider uses, and recursively ping each server in sequence while capturing the results and writing them to a log file. Each iteration it queries the destinations again, before shuffling the sequence of destinations to ensure the analysis is unbiased and consistent across each trace route.
# Install through CRAN
install.packages("pingers")
# Or the development version from GitHub
# install.packages("devtools")
::install_github("jessevent/pingers") devtools
The below showcases the main functions of the pingers
package.
These functions will:
# Install pingers from GitHub
# devtools::install_github("jessevent/pinger")
library(pingers)
# Retrieve top n traceroute results in your call stack
<- get_destinations(top_n = 9)
destinations
# Ping the first result of destinations 50 times
<- ping_capture(destinations$ip[1], 50)
ping_results
# File and path of where to save the network log
<- "~/Desktop/netlogs/network_logs.csv"
log_path
# Start recursively capturing network logs until cancelled or interupted.
# capture_logs(destinations = 3, pings = 10, log_path = log, sleep = 20)
Use
Ctrl + C
to stop capturing logs, or the Stop button in RStudio.
The network_log.csv file will contain the following:
timestamp | server | packets_sent | packets_back | packet_loss | packets_lost | ping_min | ping_avg | ping_max | ping_stddev | call_sequence |
---|---|---|---|---|---|---|---|---|---|---|
2018-07-22T15:29:31.34Z | 10.0.0.000 | 10 | 10 | 0 | 0 | 2.093 | 3.534 | 8.826 | 1.965 | 1 |
2018-07-22T15:29:40.48Z | 10.0.0.001 | 10 | 10 | 0 | 0 | 2.697 | 3.948 | 8.649 | 1.667 | 2 |
2018-07-22T15:29:49.50Z | 10.0.0.002 | 10 | 9 | 10 | 11.1 | 3.366 | 5.083 | 8.163 | 1.381 | 3 |
2018-07-22T15:29:58.53Z | 10.0.0.003 | 7 |
This project is licensed under the MIT License - see the LICENSE file for details.