You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -39,13 +39,17 @@ threshold_latency = "100" # 100ms latency threshold as max
39
39
threshold_jitter= "30" # 30ms jitter threshold as max
40
40
threshold_dns_latency= "100" # 100ms dns latency threshold as max
41
41
42
+
# Speetest configuration (be very careful when running on a metered connection!)
43
+
# - This configuration is for setting up a "speed test" or rather a test of your internet bandwidth.
44
+
# - In order to test your upload and download bandwidth we use speedtest.net as source. So your client will connect there and upload and download some data.
45
+
# - That also means that a random server is selected for the test (usually the nearest one)
46
+
# - Setting the SPEEDTEST_INTERVAL too agressively will cause speedtest.net to block your requests, recommend 15 minutes (900 seconds) and above
47
+
SPEEDTEST_ENABLED="True" # set this to "True" to enable speed test function
48
+
SPEEDTEST_INTERVAL="937" # interval on which the speedtest will run, in seconds - note using a prime number helps reduce the number of collisions between netprobe and speed tests
Copy file name to clipboardExpand all lines: README.md
+75-12Lines changed: 75 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# Netprobe Lite
1
+
# Netprobe
2
2
3
-
Simple and effective tool for measuring ISP performance at home. The tool measures several performance metrics including packet loss, latency, jitter, and DNS performance. It also aggregates these metrics into a common score, which you can use to monitor overall health of your internet connection.
3
+
Simple and effective tool for measuring ISP performance at home. The tool measures several performance metrics including packet loss, latency, jitter, and DNS performance. It also has an optional speed test to measure bandwidth. Netprobe aggregates these metrics into a common score, which you can use to monitor overall health of your internet connection.
4
4
5
5
## Support the Project
6
6
@@ -17,14 +17,16 @@ https://youtu.be/Wn31husi6tc
17
17
18
18
## Requirements and Setup
19
19
20
-
To run Netprobe Lite, you'll need a PC running Docker connected directly to your ISP router. Specifically:
20
+
To run Netprobe, you'll need a PC running Docker connected directly to your ISP router. Specifically:
21
21
22
-
1. Netprobe Lite requires the latest version of Docker. For instructions on installing Docker, see YouTube, it's super easy.
22
+
1. Netprobe requires the latest version of Docker. For instructions on installing Docker, see YouTube, it's super easy.
23
23
24
-
2. Netprobe Lite should be installed on a machine (the 'probe') which has a wired Ethernet connection to your primary ISP router. This ensures the tests are accurately measuring your ISP performance and excluding and interference from your home network. An old PC with Linux installed is a great option for this.
24
+
2. Netprobe should be installed on a machine (the 'probe') which has a wired Ethernet connection to your primary ISP router. This ensures the tests are accurately measuring your ISP performance and excluding and interference from your home network. An old PC with Linux installed is a great option for this.
25
25
26
26
## Installation
27
27
28
+
### First-time Install
29
+
28
30
1. Clone the repo locally to the probe machine:
29
31
30
32
```
@@ -43,12 +45,46 @@ docker compose up
43
45
docker compose down
44
46
```
45
47
48
+
### Upgrading Between Versions
49
+
50
+
When upgrading between versions, it is best to delete the deployment altogether and restart with the new code. The process is described below.
51
+
52
+
1. Stop Netprobe in Docker and use the -v flag to delete all volumes (warning this deletes old data):
53
+
54
+
```
55
+
docker compose down -v
56
+
```
57
+
58
+
2. Clone the latest code (or download manually from Github and replace the current files):
1. Navigate to: http://x.x.x.x:3001/d/app/netprobe where x.x.x.x = IP of the probe machine running Docker.
49
73
50
74
2. Default user / pass is 'admin/admin'. Login to Grafana and set a custom password.
51
75
76
+
## How to customize
77
+
78
+
### Enable Speedtest
79
+
80
+
By default the speed test feature is disabled as many users pay for bandwidth usage (e.g. cellular connections). To enable it, edit the .env file to set the option to 'True':
81
+
82
+
```
83
+
SPEEDTEST_ENABLED="True"
84
+
```
85
+
86
+
Note: speedtest.net has a limit on how frequently you can connection and run the test. If you set the test to run too frequently, you will receive errors. Recommend leaving the 'SPEEEDTEST_INTERVAL' unchanged.
87
+
52
88
### Change Netprobe port
53
89
54
90
To change the port that Netprobe Lite is running on, edit the 'compose.yml' file, under the 'grafana' section:
@@ -72,23 +108,41 @@ DNS_NAMESERVER_4_IP="8.8.8.8" # Replace this IP with the DNS server you use at h
72
108
73
109
Change 8.8.8.8 to the IP of the DNS server you use, then restart the application (docker compose down / docker compose up)
74
110
111
+
### Use external Grafana
112
+
113
+
Some users have their own Grafana instance running and would like to ingest Netprobe statistics there rather than running Grafana in Docker. To do this:
114
+
115
+
1. In the compose.yaml file, add a port mapping to the Prometheus deployment config:
116
+
117
+
```
118
+
prometheus:
119
+
...
120
+
ports:
121
+
- 'XXXX:9090'
122
+
```
123
+
... where XXXX is the port you wish to expose Prometheus on your host machine
124
+
125
+
2. Remove all of the Grafana configuration from the compose.yaml file
126
+
127
+
3. Run Netprobe and then add a datasource to your existing Grafana as http://x.x.x.x:XXXX where x.x.x.x = IP of the probe machine running Docker
128
+
75
129
### Data storage - default method
76
130
77
131
By default, Docker will store the data collected in several Docker volumes, which will persist between restarts.
78
132
79
133
They are:
80
134
81
135
```
82
-
netprobe_lite_grafana_data (used to store Grafana user / pw)
83
-
netprobe_lite_prometheus_data (used to store time series data)
136
+
netprobe_grafana_data (used to store Grafana user / pw)
137
+
netprobe_prometheus_data (used to store time series data)
84
138
```
85
139
86
140
To clear out old data, you need to stop the app and remove these volumes:
87
141
88
142
```
89
143
docker compose down
90
-
docker volume rm netprobe_lite_grafana_data
91
-
docker volume rm netprobe_lite_prometheus_data
144
+
docker volume rm netprobe_grafana_data
145
+
docker volume rm netprobe_prometheus_data
92
146
```
93
147
94
148
When started again the old data should be wiped out.
To configure the tool to work as a daemon (run on startup, keep running), edit 'compose.yml' and add the following to each service:
201
+
Netprobe will automatically restart itself after the host system is rebooted, provided that Docker is also launched on startup. If you want to disable this behavior, modify the 'restart' variables in the compose.yaml file to this:
202
+
203
+
```
204
+
restart: never
205
+
```
206
+
207
+
### Wipe all stored data
208
+
209
+
To wipe all stored data and remove the Docker volumes, use this command:
148
210
149
211
```
150
-
restart: always
212
+
docker compose down -v
151
213
```
214
+
This will delete all containers and volumes related to Netprobe.
215
+
152
216
153
-
More information can be found in the Docker documentation.
0 commit comments