All Projects → icasdri → Stabping

icasdri / Stabping

Licence: other
Continuously monitor your connection/ISP's latency & speed and view them in interactive charts

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Stabping

Prettyping
`prettyping` is a wrapper around the standard `ping` tool, making the output prettier, more colorful, more compact, and easier to read.
Stars: ✭ 922 (+11425%)
Mutual labels:  graph, ping
Hisocket
It is a lightweight client socket solution, you can used it in C# project or Unity3d
Stars: ✭ 275 (+3337.5%)
Mutual labels:  network, ping
Lagmonitor
Monitor performance of your Minecraft server. Similar to VisualVM and Java Mission Control.
Stars: ✭ 147 (+1737.5%)
Mutual labels:  graph, ping
Pi Temp
Web server using a Raspberry Pi and DHT22 sensor to graph the humidity and temperature in my apartment over time.
Stars: ✭ 114 (+1325%)
Mutual labels:  graph, raspberry-pi
Vue D3 Network
Vue component to graph networks using d3-force
Stars: ✭ 415 (+5087.5%)
Mutual labels:  graph, network
Reddit Detective
Play detective on Reddit: Discover political disinformation campaigns, secret influencers and more
Stars: ✭ 129 (+1512.5%)
Mutual labels:  graph, network
P2p Graph
Real-time P2P network visualization with D3
Stars: ✭ 245 (+2962.5%)
Mutual labels:  graph, network
G6
♾ A Graph Visualization Framework in JavaScript
Stars: ✭ 8,490 (+106025%)
Mutual labels:  graph, network
Gcping
Measure your latency to GCP regions
Stars: ✭ 405 (+4962.5%)
Mutual labels:  network, ping
Nock Nock
🚪 Monitor and validate your websites to maintain maximum uptime.
Stars: ✭ 339 (+4137.5%)
Mutual labels:  network, ping
Workbase
Grakn Workbase (Knowledge IDE)
Stars: ✭ 106 (+1225%)
Mutual labels:  graph, network
Openmptcprouter
OpenMPTCProuter is an open source solution to aggregate multiple internet connections using Multipath TCP (MPTCP) on OpenWrt
Stars: ✭ 652 (+8050%)
Mutual labels:  raspberry-pi, network
Serial Studio
Multi-purpose serial data visualization & processing program
Stars: ✭ 1,168 (+14500%)
Mutual labels:  graph, network
Urbanaccess
A tool for GTFS transit and OSM pedestrian network accessibility analysis
Stars: ✭ 137 (+1612.5%)
Mutual labels:  graph, network
Pyrwr
Python Implementation for Random Walk with Restart (RWR)
Stars: ✭ 48 (+500%)
Mutual labels:  graph, network
Programming Languages Influence
Code to retrieve data for the programming languages influence visualizations from Freebase
Stars: ✭ 171 (+2037.5%)
Mutual labels:  graph, network
Graphrole
Automatic feature extraction and node role assignment for transfer learning on graphs (ReFeX & RolX)
Stars: ✭ 38 (+375%)
Mutual labels:  graph, network
Osmnet
Tools for the extraction of OpenStreetMap street network data
Stars: ✭ 39 (+387.5%)
Mutual labels:  graph, network
Ngraph.graph
Graph data structure in JavaScript
Stars: ✭ 295 (+3587.5%)
Mutual labels:  graph, network
Ttyplot
a realtime plotting utility for terminal/console with data input from stdin
Stars: ✭ 532 (+6550%)
Mutual labels:  graph, ping

Stabping

Travis Build Status AppVeyor Build status

Stabping is a lightweight and simple-to-use network connection monitor. It continuously tests latency (speed and other metrics coming soon) in a user-configurable fashion and allows you to view the data in live interactive charts.

The program itself is designed to be run on an always-on computer so that it can constantly be collecting data. Using a web browser, you can then interact with the progam and the collected data.

Installation

Stabping does not require any installation: it is distributed for mutliple platforms as a self-contained portable executable. To get started, simply download the appropriate pre-built binary for your platform from the Downloads section in Releases. If you would prefer to build Stabping yourself, see Manual Build below.

Supported platforms

Platform Platform Code
Linux (Raspberry Pi) arm-unknown-linux-gnueabihf
Linux (64-bit) x86_64-unknown-linux-gnu
MacOS (64-bit) x86_64-apple-darwin
Windows (64-bit) x86_64-pc-windows-gnu

After downloading the appropriate zip file from the Downloads section in Releases, extract it to find the following files:

  • stabping (or stabping.exe if you're on Windows)
    • This is the actual executable binary
  • stabping_config.json
    • This is a sample configuration file with default values

Usage

Getting Started

To run Stabping, simply put the configuration file in one of the following places

  • the current working directory (only relevant when you're running from Terminal or Command Prompt)
  • the directory where stabping (or stabping.exe if you're on Windows) is located
  • your user directory (i.e. "home" directory, e.g. ~/ or C:\Users\yourname)
  • a global configuration directory (e.g. /etc)

and then run stabping or stabping.exe!

Once Stabping is running, you can go to http://address:web_port in a web browser to interact with it, where address is the IP address or DNS name of the computer you're running stabping or stabping.exe on (if you ran it on your local computer, this would be localhost), and web_port is the web-listening port specified in stabping_config.json (by default 5001).

tl;dr extract the zip, run stabping or stabping.exe, and go to http://localhost:5001 in a web browser (assuming you're running on your local computer with the default configuration).

Using the Web Interface

The web interface displays a live interactive graph for each network metric (currently only TCP Ping, aka. TCP connection latency). By default, this graph displays the past hour's worth of data, but this can be adjusted to any time interval using the Base Time Interval drop down. The graph will live-update with new data as they are being colleted. (if you just installed Stabping, give it a few minutes to collect some data -- you can watch as the live data rolls in!)

The graph is interactive!

  • Hover over it to inspect the values of individual data points.
  • Click and drag left-to-right to zoom into a smaller time window.
  • Click and drag up-and-down to zoom into a smaller value range.
  • Double anywhere blank to unzoom back out to Base Time Interval worth of data.

The graph will automatically adjust the vertical axes to best accomodate the vertical range of data (when zooming and when live data arrives). To prevent this and pin/lock the vertical value range to what is currently visible, check the Pin/Lock value range checkbox (and make sure you then unzoom the graph). Uncheck this box to return to automatic adjustment.

The graph can also dynamically calculate and display a moving/rolling average to reduce the "spikyness" of the data and more easily see general trends. Simply adjust Roll avg over __ point(s) to the number of points you want to roll over.

You can configure how (e.g. which servers to ping) and how often Stabping collects data for a specific metric by clicking on the corresponding gear icon. This will display a configuration interface in which you can make changes. Once you're satisfied, click Save -- Stabping will adjust its data collection processes accordingly and the graph will update as needed.

Manual Build

Stabping is written in Rust and requires a working (preferably recent) Rust toolchain to build. Specifically, Stabping uses cargo, Rust's package manager to build. Additionally, the build process pulls several dependencies from npm for the web client, and therefore also requires a working (preferably recent) Node toolchain.

After ensuring that rustc, cargo, and npm (or npm.cmd on Windows) are available in your PATH, and after cloning this repo, run any of the following.

To build a "debug" version

cargo build

To build a "release" version

cargo build --release

To build (a "debug" version) and run it directly

cargo run

License and Acknowledgements

Stabping builds on top of the work of a number of amazing open-source libraries, frameworks, and assets.

On the server (always running program) side:

  • Iron: a web framework
  • WS-RS: a lightweight event-driven WebSockets library
  • memmap: a cross-platform API for memory-mapped I/O
  • rustc-serialize: a compiler-assisted serialization library
  • chrono: a date/time library

On the client (web interface) side:

  • Dygraphs: a powerful JavaScript time-series charting library
  • Preact: a fast reactive components and virtual DOM based JavaScript framework
  • Fira Fonts: a new and modern typeface

Stabping as a whole is Copyright 2016 icasdri and licensed under the GNU GPLv3+, see COPYING for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].