Yet another node info collector - for respondd to be used with meshviewer to Grafana (with influxdb or graphite)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
.github
.gitlab/issue_templates
cmd
contrib
data
database
docs
lib
output
respond
rrd
runtime
webserver
.drone.yml
.editorconfig
.gitignore
.gitlab-ci.yml
.gitmodules
Gopkg.lock
Gopkg.toml
INSTALL.md
LICENSE
README.md
SUMMARY.md
book.json
config_example.toml
main.go

README.md

Yanic

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

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

Take a look at the git or Gitbook

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)

Communities using Yanic

Do you know someone else using Yanic? Create a pull request!

Related projects

Collecting data from respondd:

Respondd for servers:

License

This software is licensed under the terms of the AGPL v3 License.