Yet another node info collector - for respondd to be used with meshviewer to Grafana (with influxdb or graphite) https://www.gitbook.com/book/freifunkbremen/yanic/details
Go to file
Julian K dbc1353154 Add support for listening on multiple interfaces (#80)
closes #79
2017-10-18 18:22:14 +02:00
cmd Add support for listening on multiple interfaces (#80) 2017-10-18 18:22:14 +02:00
contrib Switch to cobra for the CLI 2017-10-01 17:09:12 +02:00
data [TASK] add per-link statistics (#57) 2017-09-27 13:55:02 +02:00
database [TEST] increase test coverage of package runtime to maximum (#75) 2017-10-12 15:25:00 +02:00
jsontime improve complete code with comments and co (thanks linter) 2017-01-20 22:27:44 +01:00
meshviewer [TASK] add per-link statistics (#57) 2017-09-27 13:55:02 +02:00
respond Add support for listening on multiple interfaces (#80) 2017-10-18 18:22:14 +02:00
rrd [TEST] increase test coverage of package runtime to maximum (#75) 2017-10-12 15:25:00 +02:00
runtime Add support for listening on multiple interfaces (#80) 2017-10-18 18:22:14 +02:00
webserver [TEST] increase test coverage of package runtime to maximum (#75) 2017-10-12 15:25:00 +02:00
.gitignore Make configuration more intuitive and consistent 2017-01-29 20:35:50 +01:00
.gitmodules switch to config-file 2016-03-07 09:52:52 +01:00
.test-coverage Add codecov for test coverage to see sunburst (#77) 2017-10-13 13:10:10 +02:00
.travis.yml Switch to cobra for the CLI 2017-10-01 17:09:12 +02:00
INSTALL.md cmd yanic-query fix help and print ip-address 2017-10-01 17:09:12 +02:00
README.md Add codecov for test coverage to see sunburst (#77) 2017-10-13 13:10:10 +02:00
config_example.toml Add support for listening on multiple interfaces (#80) 2017-10-18 18:22:14 +02:00
main.go Switch to cobra for the CLI 2017-10-01 17:09:12 +02:00

README.md

Yanic

__   __          _
\ \ / /_ _ _ __ (_) ___
 \ V / _` | '_ \| |/ __|
  | | (_| | | | | | (__
  |_|\__,_|_| |_|_|\___|
Yet another node info collector

Build Status Coverage Status codecov Go Report Card

yanic is a respondd client that fetches, stores and publishes information about a Freifunk network. The goals:

  • Generating JSON for Meshviewer
  • Storing statistics in InfluxDB or Graphite to be analyzed by Grafana
  • Provide a little webserver for a standalone installation with a meshviewer

How it works

In the first step Yanic sends a multicast message to the group ff02:0:0:0:0:0:2:1001 and port 1001. Recently seen nodes that does not reply are requested via a unicast message.

Documentation

Configuration

Read comments in config_example.toml for more information.

Running

Yanic provides several commands:

Usage

Run Yanic without any arguments to get the usage information:

Usage:
  yanic [command]

Available Commands:
  help        Help about any command
  import      Imports global statistics from the given RRD files, requires InfluxDB
  query       Sends a query on the interface to the destination and waits for a response
  serve       Runs the yanic server

Flags:
  -h, --help         help for yanic
      --timestamps   Enables timestamps for log output

Use "yanic [command] --help" for more information about a command.

Serve

Usage:
  yanic serve [flags]

Examples:
  yanic serve --config /etc/yanic.toml

Flags:
  -c, --config string   Path to configuration file (default "config.toml")
  -h, --help            help for serve

Import

Usage:
  yanic import <file.rrd> [flags]

Examples:
  yanic import --config /etc/yanic.toml olddata.rrd

Flags:
  -c, --config string   Path to configuration file (default "config.toml")
  -h, --help            help for import

Query

Usage:
  yanic query <interface> <destination> [flags]

Examples:
  yanic query wlan0 "fe80::eade:27ff:dead:beef"

Flags:
  -h, --help       help for query
      --wait int   Seconds to wait for a response (default 1)

Live

  • meshviewer Freifunk Bremen with a patch to show state-version of nodes.json
  • grafana Freifunk Bremen show data of InfluxDB

Collecting data from respondd:

Respondd for servers: