Yet another node info collector - for respondd to be used with MeshViewer, InfluxDB and Grafana
Go Python Shell
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 60 commits behind FreifunkBremen:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmd
contrib
data
database
jsontime
output
respond
rrd
runtime
webserver
.editorconfig
.gitignore
.gitmodules
.test-coverage
.travis.yml
INSTALL.md
README.md
circle.yml
config_example.toml
main.go

README.md

Yanic

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

Build Status CircleCI 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

Related projects

Collecting data from respondd:

Respondd for servers: