2017-03-03 09:57:38 +00:00
# Yanic
```
__ __ _
\ \ / /_ _ _ __ (_) ___
\ V / _` | '_ \| |/ __ |
| | (_| | | | | | (__
|_|\__,_|_| |_|_|\___|
Yet another node info collector
```
2016-02-26 08:28:31 +00:00
2017-03-03 15:00:33 +00:00
[![Build Status ](https://travis-ci.org/FreifunkBremen/yanic.svg?branch=master )](https://travis-ci.org/FreifunkBremen/yanic)
2017-11-14 18:33:28 +00:00
[![CircleCI ](https://circleci.com/gh/FreifunkBremen/yanic/tree/master.svg?style=shield )](https://circleci.com/gh/FreifunkBremen/yanic/tree/master)
2017-04-17 23:17:57 +00:00
[![Coverage Status ](https://coveralls.io/repos/github/FreifunkBremen/yanic/badge.svg?branch=master )](https://coveralls.io/github/FreifunkBremen/yanic?branch=master)
2017-10-13 10:59:26 +00:00
[![codecov ](https://codecov.io/gh/FreifunkBremen/yanic/branch/master/graph/badge.svg )](https://codecov.io/gh/FreifunkBremen/yanic)
2017-06-14 12:05:20 +00:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/FreifunkBremen/yanic )](https://goreportcard.com/report/github.com/FreifunkBremen/yanic)
2016-03-20 11:34:58 +00:00
2017-03-03 09:57:38 +00:00
`yanic` is a respondd client that fetches, stores and publishes information about a Freifunk network. The goals:
2017-01-30 14:23:36 +00:00
* Generating JSON for [Meshviewer ](https://github.com/ffrgb/meshviewer )
2017-06-14 12:05:20 +00:00
* Storing statistics in [InfluxDB ](https://influxdata.com/ ) or [Graphite ](https://graphiteapp.org/ ) to be analyzed by [Grafana ](http://grafana.org/ )
2017-01-30 14:23:36 +00:00
* Provide a little webserver for a standalone installation with a meshviewer
2016-02-26 08:28:31 +00:00
2017-06-14 12:05:20 +00:00
## 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.
2017-12-31 04:28:03 +00:00
## Documentation
Take a look at the [git ](https://github.com/FreifunkBremen/yanic/blob/master/SUMMARY.md ) or [Gitbook ](https://freifunkbremen.gitbooks.io/yanic/content/ )
2017-06-14 12:05:20 +00:00
2017-09-17 01:26:19 +00:00
## Configuration
Read comments in [config_example.toml ](config_example.toml ) for more information.
## Running
2017-06-14 12:05:20 +00:00
2017-09-17 01:26:19 +00:00
Yanic provides several commands:
2017-06-14 12:05:20 +00:00
### Usage
2017-09-17 01:26:19 +00:00
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.
2016-02-26 08:28:31 +00:00
```
2017-09-17 01:26:19 +00:00
#### Serve
2016-02-26 08:28:31 +00:00
```
2017-09-17 01:26:19 +00:00
Usage:
yanic serve [flags]
Examples:
2017-10-01 22:44:21 +00:00
yanic serve --config /etc/yanic.toml
2017-09-17 01:26:19 +00:00
Flags:
-c, --config string Path to configuration file (default "config.toml")
-h, --help help for serve
```
#### Import
```
Usage:
yanic import < file.rrd > [flags]
Examples:
2017-10-01 22:44:21 +00:00
yanic import --config /etc/yanic.toml olddata.rrd
2017-09-17 01:26:19 +00:00
Flags:
-c, --config string Path to configuration file (default "config.toml")
-h, --help help for import
```
#### Query
```
Usage:
yanic query < interface > < destination > [flags]
Examples:
2017-10-01 09:13:26 +00:00
yanic query wlan0 "fe80::eade:27ff:dead:beef"
2017-09-17 01:26:19 +00:00
Flags:
-h, --help help for query
--wait int Seconds to wait for a response (default 1)
```
2017-01-30 14:23:36 +00:00
2017-06-14 12:05:20 +00:00
### Live
2017-01-30 14:23:36 +00:00
* [meshviewer ](https://map.bremen.freifunk.net ) **Freifunk Bremen** with a patch to show state-version of `nodes.json`
* [grafana ](https://grafana.bremen.freifunk.net ) **Freifunk Bremen** show data of InfluxDB
2016-03-21 17:58:49 +00:00
## Related projects
Collecting data from respondd:
* [HopGlass Server ](https://github.com/plumpudding/hopglass-server ) written in Node.js
Respondd for servers:
2017-01-30 14:23:36 +00:00
* [ffnord-alfred-announce ](https://github.com/ffnord/ffnord-alfred-announce ) from FreiFunkNord
2016-03-21 17:58:49 +00:00
* [respondd ](https://github.com/Sunz3r/ext-respondd ) from Sunz3r