Some doku

This commit is contained in:
Martin Geno 2017-01-30 15:23:36 +01:00
parent 2e9f6fa459
commit 8a5f907cbe
No known key found for this signature in database
GPG Key ID: F0D39A37E925E941
2 changed files with 40 additions and 9 deletions

View File

@ -4,25 +4,30 @@
[![Coverage Status](https://coveralls.io/repos/github/FreifunkBremen/respond-collector/badge.svg?branch=master)](https://coveralls.io/github/FreifunkBremen/respond-collector?branch=master)
`respond-collector` is a respondd client that fetches, stores and publishes information about a Freifunk network. The goals:
* Generating JSON for [MeshViewer](https://github.com/ffnord/meshviewer) (Works with branch [JSONv2](https://github.com/FreifunkBremen/meshviewer/tree/JSONv2))
* Generating JSON for [Meshviewer](https://github.com/ffrgb/meshviewer)
* Storing statistics in [InfluxDB](https://influxdata.com/) to be analyzed by [Grafana](http://grafana.org/)
* Provide information via JSON-APIs
* Provide a little webserver for a standalone installation with a meshviewer
## Usage
```
Usage of ./respond-collector:
-config path/to/config.toml
```
## Configuration
Read comments in [config_example.toml](config_example.toml) for more information.
## Live
* [meshviewer](https://map.bremen.freifunk.net) **Freifunk Bremen** with a patch to show state-version of `nodes.json`
* [grafana](https://grafana.bremen.freifunk.net) **Freifunk Bremen** show data of InfluxDB
## How it works
## Development
### respond
It sends the `gluon-neighbour-info` request and collects the answers.
It will send UDP packets with multicast group `ff02:0:0:0:0:0:2:1001` and port `1001`.
### nodes.Nodes
It caches the information of the nodes and will save them periodical to a JSON file.
The current nodes are saved default under `nodes.json`.
If a node does not answer, it will request with the last know address under the port `1001`.
## Related projects
@ -31,5 +36,5 @@ Collecting data from respondd:
* [HopGlass Server](https://github.com/plumpudding/hopglass-server) written in Node.js
Respondd for servers:
* [respondd branch of ffnord-alfred-announce](https://github.com/ffnord/ffnord-alfred-announce/tree/respondd) from FreiFunkNord
* [ffnord-alfred-announce](https://github.com/ffnord/ffnord-alfred-announce) from FreiFunkNord
* [respondd](https://github.com/Sunz3r/ext-respondd) from Sunz3r

View File

@ -1,9 +1,13 @@
# Send respondd request to update information
[respondd]
enable = true
interface = "eth0"
# how oftern request per multicast
collect_interval = "1m"
# on which interface
interface = "eth0"
# A little build-in webserver
[webserver]
enable = false
bind = "127.0.0.1:8080"
@ -12,9 +16,20 @@ webroot = "webroot"
[nodes]
enable = true
# structur of nodes.json, which to support
# version 1 is to support legacy meshviewer (which are in master branch)
# i.e. https://github.com/ffnord/meshviewer/tree/master
# version 2 is to support new version of meshviewer (which are in legacy develop branch or newer)
# i.e. https://github.com/ffnord/meshviewer/tree/dev
# https://github.com/ffrgb/meshviewer/tree/develop
nodes_version = 2
# path where to store nodes.json
nodes_path = "/var/www/html/meshviewer/data/nodes.json"
# path where to store graph.json
graph_path = "/var/www/html/meshviewer/data/graph.json"
# state-version of nodes.json to store cached data,
# these is the directly collected respondd data
state_path = "/var/lib/collector/state.json"
# Export nodes and graph periodically
@ -27,9 +42,20 @@ offline_after = "10m"
prune_after = "7d"
# Save collected data to InfluxDB
# there would be the following measurments:
# node: store node spezific data i.e. clients memory, airtime
# global: store global data, i.e. count of clients and nodes
# firmware: store count of nodes tagged with firmware
# model: store count of nodes tagged with hardware model
[influxdb]
enable = false
address = "http://localhost:8086"
database = "ffhb"
username = ""
password = ""
# cleaning data of measurement node,
# which are older than 7d
delete_after = "7d"
# how often run the cleaning
delete_interval = "1h"