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
dependabot[bot] 1286634f92 fix: Bump gopkg.in/yaml.v3 from 3.0.0-20210107192922-496545a6307b to 3.0.0
Bumps gopkg.in/yaml.v3 from 3.0.0-20210107192922-496545a6307b to 3.0.0.

---
updated-dependencies:
- dependency-name: gopkg.in/yaml.v3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-17 01:05:07 +02:00
.github feat: auto-release based on conventional-commits to semantic-versioning 2023-09-17 00:58:51 +02:00
cmd [TASK] add output prometheus-sd (service discovery) (#213) 2022-04-14 13:25:43 +02:00
contrib feat(yanic-import-timestamp): allow importing from other yanic instance (#223) 2023-09-11 07:17:53 +02:00
data fix LLDP handling for https://github.com/freifunk-gluon/packages/pull/189 2022-07-10 18:09:17 +02:00
database fix LLDP handling for https://github.com/freifunk-gluon/packages/pull/189 2022-07-10 18:09:17 +02:00
docs [TASK] add output prometheus-sd (service discovery) (#213) 2022-04-14 13:25:43 +02:00
lib lib/duration: Implement encoding.TextUnmarshaler 2018-01-13 15:06:18 +01:00
output feat(output/prometheus-sd): add ip-publish as option 2023-04-13 08:49:09 +02:00
respond Make linter happy 2022-03-28 04:20:58 +02:00
rrd Make linter happy 2022-03-28 04:20:58 +02:00
runtime fix LLDP handling for https://github.com/freifunk-gluon/packages/pull/189 2022-07-10 18:09:17 +02:00
webserver [TASK] improve logging 2019-01-19 20:58:36 +01:00
.drone.yml add drone 2018-05-05 23:30:24 +02:00
.editorconfig [TASK] Add editorconfig & format code (#94) 2017-11-06 00:59:42 +01:00
.gitignore feat: auto-release based on conventional-commits to semantic-versioning 2023-09-17 00:58:51 +02:00
.gitlab-ci.yml Bump dependencies version 2020-05-18 02:53:56 +02:00
.releaserc feat: auto-release based on conventional-commits to semantic-versioning 2023-09-17 00:58:51 +02:00
INSTALL.md fix(docs): use new golang install mechanismen 2022-04-14 13:17:47 +02:00
LICENSE Use license from Github template 2018-01-06 15:11:02 +01:00
Makefile Switch to Github Actions 2022-03-28 04:20:58 +02:00
README.md chore(doc): add ffac to description (#222) 2023-09-11 07:17:25 +02:00
SUMMARY.md [TASK] add rules for documentation, PR and testing 2017-12-31 16:01:19 +01:00
book.json [TASK] add rules for documentation, PR and testing 2017-12-31 16:01:19 +01:00
config_example.toml [TASK] add output prometheus-sd (service discovery) (#213) 2022-04-14 13:25:43 +02:00
go.mod fix: Bump gopkg.in/yaml.v3 from 3.0.0-20210107192922-496545a6307b to 3.0.0 2023-09-17 01:05:07 +02:00
go.sum fix: Bump gopkg.in/yaml.v3 from 3.0.0-20210107192922-496545a6307b to 3.0.0 2023-09-17 01:05:07 +02:00
main.go not export logging stdout / stderr hook 2019-02-27 02:51:01 +01:00
package-lock.json feat: auto-release based on conventional-commits to semantic-versioning 2023-09-17 00:58:51 +02:00
package.json feat: auto-release based on conventional-commits to semantic-versioning 2023-09-17 00:58:51 +02:00

README.md

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 Gitbook

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!

Collecting data from respondd:

Respondd for servers:

License

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