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) [![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: `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/) * 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
``` ```
Usage of ./respond-collector: Usage of ./respond-collector:
-config path/to/config.toml -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 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`. It will send UDP packets with multicast group `ff02:0:0:0:0:0:2:1001` and port `1001`.
### nodes.Nodes If a node does not answer, it will request with the last know address under the port `1001`.
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`.
## Related projects ## Related projects
@ -31,5 +36,5 @@ Collecting data from respondd:
* [HopGlass Server](https://github.com/plumpudding/hopglass-server) written in Node.js * [HopGlass Server](https://github.com/plumpudding/hopglass-server) written in Node.js
Respondd for servers: 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 * [respondd](https://github.com/Sunz3r/ext-respondd) from Sunz3r

View File

@ -1,9 +1,13 @@
# Send respondd request to update information
[respondd] [respondd]
enable = true enable = true
interface = "eth0" # how oftern request per multicast
collect_interval = "1m" collect_interval = "1m"
# on which interface
interface = "eth0"
# A little build-in webserver
[webserver] [webserver]
enable = false enable = false
bind = "127.0.0.1:8080" bind = "127.0.0.1:8080"
@ -12,9 +16,20 @@ webroot = "webroot"
[nodes] [nodes]
enable = true 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 nodes_version = 2
# path where to store nodes.json
nodes_path = "/var/www/html/meshviewer/data/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" 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" state_path = "/var/lib/collector/state.json"
# Export nodes and graph periodically # Export nodes and graph periodically
@ -27,9 +42,20 @@ offline_after = "10m"
prune_after = "7d" 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] [influxdb]
enable = false enable = false
address = "http://localhost:8086" address = "http://localhost:8086"
database = "ffhb" database = "ffhb"
username = "" username = ""
password = "" password = ""
# cleaning data of measurement node,
# which are older than 7d
delete_after = "7d"
# how often run the cleaning
delete_interval = "1h"