Skip to content

FreifunkBremen/yanic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cc71150 · Jul 18, 2024
Jul 18, 2024
Apr 14, 2022
Sep 11, 2023
Sep 18, 2023
Jul 4, 2024
Jul 4, 2024
Jan 13, 2018
Sep 18, 2023
Sep 18, 2023
Mar 28, 2022
Sep 18, 2023
Jan 19, 2019
May 5, 2018
Nov 5, 2017
Sep 18, 2023
May 18, 2020
Jul 18, 2024
Sep 20, 2023
Jan 6, 2018
Mar 28, 2022
Sep 18, 2023
Jul 4, 2024
Jul 5, 2024
Jul 5, 2024
Feb 27, 2019
Sep 18, 2023
Sep 16, 2023
Sep 16, 2023

Repository files navigation

Yanic

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

Test, Lint 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 ff05::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 website

Installation

Take a look into the Documentation (see above) or for Quick Overview in INSTALL.md.

If you like Docker you may want to take a look here.

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
      --loglevel uint32   Show log message starting at level (default 40)
      --timestamps        Enables timestamps for log output

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

Serve

Runs the yanic server

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

Global Flags:
      --loglevel uint32   Show log message starting at level (default 40)
      --timestamps        Enables timestamps for log output

Query

Sends a query on the interface to the destination and waits for a response

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

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

Flags:
  -h, --help        help for query
      --ip string   ip address which is used for sending (optional - without definition used the link-local address)
      --port int    define a port to listen (if not set or set to 0 the kernel will use a random free port at its own)
      --wait int    Seconds to wait for a response (default 1)

Global Flags:
      --loglevel uint32   Show log message starting at level (default 40)
      --timestamps        Enables timestamps for log output

Import

Imports global statistics from the given RRD files (ffmap-backend).

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

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

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

Global Flags:
      --loglevel uint32   Show log message starting at level (default 40)
      --timestamps        Enables timestamps for log output

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.

About

Yet another node info collector - for respondd to be used with meshviewer to Grafana (with influxdb or graphite)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 27