This is a first step to make it accept configuration. Most of the changes are quite trivial, but I also ran into some difficulties with query columns and filters. They need the schema for parsing, but parsing happens before dependencies are instantiated (and even if it was not the case, parsing is stateless). Therefore, I have added a `Validate()` method that must be called after instantiation. Various bits `panic()` if not validated to ensure we catch all cases. The alternative to make the component manages a global state would have been simpler but it would break once we add the ability to add or disable columns.
Akvorado: flow collector, enricher and visualizer ·

This program receives flows (currently Netflow/IPFIX and sFlow), enrice them with interface names (using SNMP), geo information (using MaxMind), and exports them to Kafka, then ClickHouse. It also exposes a web interface to browse the collected data.
Akvorado is developed by Free, a French ISP, and is licensed under the AGPLv3 license.
A demo site using fake data and running the latest stable version is
available on demo.akvorado.net. It is the
direct result of running docker-compose up on a fresh checkout but
port 2055 is not accessible (you cannot send you own flows). Please,
be gentle with this resource. The demo site also enables you to browse
the documentation (which is also
available in docs/).
Be aware that Akvorado is still young and should be considered as alpha quality. At some point, some features may change in an inconvenient way as it is difficult to mutate ClickHouse tables while keeping all data intact.

