Pingsheet is a cloud based latency and packet loss monitoring platform built on top of Google Sheets.
Pingsheet is a cloud based latency and packet loss monitoring platform built on
top of Google Sheets.
A Google Sheet is used to configure a swarm of hosts with targets they should
ping, the hosts run the pings and add the results back into the Google Sheet.
As the data is in Google Sheets it makes it very simple and flexible to create
dashboards using conditional formatting and charts.
Due to limitations on how big a sheet can become this is best suited for short
term data.
wget https://github.com/adamkirchberger/pingsheet/releases/latest/download/pingsheet_Darwin_x86_64.tar.gz && \
tar xvzf pingsheet_Darwin_x86_64.tar.gz pingsheet && \
xattr -dr com.apple.quarantine pingsheet && \
mv pingsheet /usr/local/sbin/
wget https://github.com/adamkirchberger/pingsheet/releases/latest/download/pingsheet_Linux_x86_64.tar.gz && \
tar xvzf pingsheet_Linux_x86_64.tar.gz pingsheet && \
mv pingsheet /usr/local/sbin/
pingsheet --credentials {{path-to-credentials}} --sheet {{sheet-ID}} --hostname {{hostname}} --secret {{secret}}
The tool will check for a config in the Google Sheet and run ping tests to the targets
The tool will automatically create a worksheet to add all the results
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init
This will open a browser make sure to grant access
Create a new project
Enable Google Sheets API
gcloud services enable sheets.googleapis.com
Create new service account
gcloud iam service-accounts create pingsheet --display-name=pingsheet
Created service account [pingsheet].
Find the name of the newly created service account
gcloud iam service-accounts list
NAME EMAIL DISABLED
pingsheet pingsheet@testproj.iam.gserviceaccount.com False
Create JSON key file using email from created service-account
gcloud iam service-accounts keys create credentials.json --iam-account=pingsheet@testproj.iam.gserviceaccount.com
Create a Google Sheet from the template in the repo pingsheet_template.xls
Share the sheet with the email address from the key generated above
eg: pingsheet@testproj.iam.gserviceaccount.com
Ensure that the user has Editor/Write
permissions
You should now have a Google Sheet created from the template and credentials
ready to use with sheet editing permissions.
Add all the hosts where the pingsheet
tool will run and initiate pings.
HOSTNAME
columnSECRET
columnConfigure the INTERVAL
, COUNT
and MAXROWS
INTERVAL
: The amount of seconds between ping tests (All targets are run in parallel)COUNT
: The amount of pings to send to each targetMAXROWS
: The maximum number of results to keepConfigure ping targets for each host
TARGET_1
, TARGET_2
, etc…The tool checks for new targets every 5 minutes. Any targets that have been removed will also be updated and no longer pinged.
The tool does not keep any results locally so any tests performed during this
time will be lost, however when the tool encounters an issue it will keep
retrying every 60 seconds.
This is something that could be implemented in the future.
This project is licensed under the terms of the
MIT license.