bird | ||
docs | ||
endpoints | ||
etc/ecix | ||
install | ||
.gitignore | ||
birdwatcher.go | ||
config.go | ||
config_test.go | ||
LICENSE | ||
Makefile | ||
README.md | ||
VERSION |
birdwatcher
birdwatcher is a small HTTP server meant to provide an API defined by Barry O'Donovan's birds-eye to the BIRD routing daemon.
Installation
You will need to have go installed to build the package.
Running go get github.com/ecix/birdwatcher
will give you
a binary. You might need to cross-compile it for your
bird-running servive (GOARCH
and GOOS
are your friends).
We provide a Makefile for more advanced compilation/configuration.
Running make linux
will create a Linux executable (by default for
amd64
, but that is configurable by providing the ARCH
argument
to the Makefile).
Configuration
An example config with sane defaults is provided in etc/ecix/birdwatcher.conf. You should be able to use it out of the box. If you need to change it, it is well-commented and hopefully intuitive. If you do not know how to configure it, please consider opening an issue.
Why
The INEX implementation of birdseye runs PHP, which is not always desirable (and performant) in a routeserver setting. By using Go, we are able to work with regular binaries, which means deployment and maintenance might be more convenient.
How
In the background birdwatcher
runs the birdc
client, sends
commands and parses the result. It also leverages simple caching
techniques to help reduce the load on the bird service.
Who
Initially developed by Daniel and MC from Netnod in two days at the RIPE 73 IXP Tools Hackathon in Madrid, Spain.
Running bird and parsing the results was added by Veit Heller on behalf of ecix.