Developing lightweight computation at the DSG edge

Commit 93b3d2f4 authored by Roger Pueyo Centelles's avatar Roger Pueyo Centelles
Browse files

[fetch] Update Readme


Signed-off-by: default avatarRoger Pueyo Centelles <roger.pueyo@guifi.net>
parent 34d202c1
A repository for testing code for the monitor use case # uc-monitor-go-test
A proof-of-concept application that leverages [AntidoteDB](https://syncfree.github.io/antidote/) to orchestrate the Guifi.net network nodes monitoring system for the [LightKone](https://www.lightkone.eu/) project.
Installation: ## Description
The monitoring application is distributed in three main blocks:
- Network description fetching and feeding (functional)
- Nodes assignment among the different monitoring servers [WiP]
- Actual nodes monitorisation [WiP]
External libraries are used. If not previously installed, run in terminal: This proof of concept is built on top of the [AntidoteDB Java tutorial](https://github.com/SyncFree/antidote-java-tutorial) by [Deepthi Akkoorath (@deepthidevaki)](https://github.com/deepthidevaki) and uses [João Neto (@joaomlneto)](https://github.com/joaomlneto)'s [HTTP/HTTPS REST API for AntidoteDB](https://github.com/LightKone/antidote-rest-server).
go get github.com/golang/glog ## Installation
go get github.com/sparrc/go-ping
Running: ### Docker
Install `docker-ce` using your
1) go run monitor-fetch.go ### Go and required libraries
Install Go using your operating system's package manager or follow the [instructions here](https://golang.org/doc/install).
Result example: After installing Go, download and install the folowing external libraries needed:
56351 nodes read from cnml.xml - golang/glog:
52553 devices read from cnml.xml
39582 devices exported to /tmp/gmonitor2/devs.json
2) go run monitor-assign.go `go get github.com/golang/glog`
3) For go run monitor-ping.go - sparrc/go-ping:
e.g. go run monitor-ping.go <host> `go get github.com/sparrc/go-ping`
previously as to this note on Linux Support: ### AntidoteDB Java tutorial
This library attempts to send an "unprivileged" ping via UDP. Get the tutorial's source code [here](https://github.com/SyncFree/antidote-java-tutorial) to download the code and [start the two AntidoteDB nodes](https://github.com/SyncFree/antidote-java-tutorial#starting-antidote-nodes).
On linux, this must be enabled by setting
sudo sysctl -w net.ipv4.ping_group_range="0 2147483647" ### HTTP/HTTPS REST API
Install the AntidoteDB REST API server following the [instructions here](https://github.com/LightKone/antidote-rest-server). Once everything is installed, start the server with the `antidote-rest-server` command. The server connects to one of the AntidoteDB instances (the one running on port 8087) from the Java tutorial.
## Building and running the application
### Fetch the network description and feed it to AntidoteDB
The whole Guifi.net network description is included in the `cnml.xml` file, which can be downloaded from the Guifi.net website, and is used by default:
```
$ cd src/monitor/fetch/
$ go run monitor-fetch.go
57642 nodes read from cnml.xml
53461 devices read from cnml.xml
39988 devices exported to /tmp/gmonitor2/devs.json
0 devices removed from AntidoteDB (0 success, 0 fail)
0 IPv4 addresses removed from AntidoteDB (0 success, 0 fail)
10634 devices added to AntidoteDB (10634 success, 0 fail) ...
```
etc.
Smaller subnetworks can be used instead, like the Guifi-UPC subnetwork, for testing purposes:
```
$ go run monitor-fetch.go -cnml_file upc.xml
19 nodes read from upc.xml
0 devices removed from AntidoteDB (0 success, 0 fail)
0 IPv4 addresses removed from AntidoteDB (0 success, 0 fail)
49 devices added to AntidoteDB (49 success, 0 fail)
67 IPv4 addresses added or updated to AntidoteDB (67 success, 0 fail)
```
### Assign network nodes to monitoring servers [WiP]
```
go run monitor-assign.go
```
### Monitor the nodes [WiP]
```
go run monitor-ping.go <host>
```
### Note
Previously as of this note on Linux support: _this library attempts to send an "unprivileged" ping via UDP. On Linux, this must be enabled by setting_:
```sudo sysctl -w net.ipv4.ping_group_range="0 2147483647"```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment