MCPcopy Index your code
hub / github.com/akvorado/akvorado

github.com/akvorado/akvorado @v2.4.0 sqlite

repository ↗ · DeepWiki ↗ · release v2.4.0 ↗
1,799 symbols 9,373 edges 416 files 1,051 documented · 58%
README

Akvorado: flow collector, enricher and visualizer · Build status Codecov License Latest release

This program receives flows (currently NetFlow/IPFIX and sFlow), enriches them with interface names (using SNMP), geo information (using IPinfo.io), and exports them to ClickHouse. It also exposes a web interface to browse the collected data.

Timeseries graph

Sankey graph

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 flow ports are not accessible (you cannot send your own flows). Please, be gentle with this resource. The demo site also enables you to browse the documentation for the current version (the one in docs/ is for the next version).

By default, Akvorado is using IPinfo databases for geolocation data.

A Grafana plugin is available.

[!CAUTION] Be sure to always read the changelog before upgrading.

Getting help

The first step is to read the documentation:

If you still need help, you can use the discussions. Be sure to explain what you tried to solve your problem. Enclose code using triple backticks:

```
# akvorado version | head -2
akvorado v1.11.2
 Built with: go1.23.2 X:loopvar
```

Extension points exported contracts — how you extend this code

Input (Interface)
Input is the interface any input should meet [22 implementers]
inlet/flow/input/root.go
CacheBackendConfiguration (Interface)
CacheBackendConfiguration represents the configuration of a cache backend. [12 implementers]
common/httpserver/config.go
Configuration (Interface)
Configuration defines an interface to configure a provider. [12 implementers]
outlet/metadata/provider/root.go
Configuration (Interface)
Configuration defines an interface to configure a provider. [12 implementers]
outlet/routing/provider/root.go
Decoder (Interface)
Decoder is the interface each decoder should implement. [3 implementers]
outlet/flow/decoder/root.go
Value (Interface)
Value is the interface that should be implemented by types used in an intern pool. Also, it should be immutable. [2 implementers]
common/helpers/intern/intern.go
Worker (Interface)
Worker represents a worker sending to ClickHouse. It is synchronous (no goroutines) and most functions are bound to a co [2 …
outlet/clickhouse/worker.go
ProviderFunc (FuncType)
ProviderFunc is the callback function to call when a datasource is refreshed. The error returned is used for metrics. On
common/remotedatasource/root.go

Core symbols most depended-on inside this repo

Diff
called by 404
common/helpers/tests_diff.go
Add
called by 244
outlet/routing/provider/bmp/hash.go
Run
called by 212
common/reporter/logger/root.go
Mark
called by 200
common/helpers/tests.go
NewMock
called by 185
common/reporter/tests.go
Info
called by 135
common/reporter/stack/root.go
AppendUint
called by 132
common/schema/clickhouse.go
GetMetrics
called by 112
common/reporter/tests.go

Shape

Function 817
Method 578
Struct 320
TypeAlias 50
Interface 23
FuncType 11

Languages

Go98%
TypeScript1%
Python1%

Modules by API surface

outlet/routing/provider/bmp/rib.go34 symbols
outlet/core/classifier.go25 symbols
common/schema/clickhouse.go22 symbols
outlet/routing/provider/bmp/testdata/sharding-visualisation.py18 symbols
outlet/flow/decoder/netflow/root_test.go18 symbols
orchestrator/clickhouse/migrations_test.go18 symbols
common/schema/clickhouse_test.go18 symbols
orchestrator/clickhouse/migrations_helpers.go17 symbols
common/schema/config.go17 symbols
common/helpers/subnetmap.go16 symbols
common/helpers/subnetmap_test.go15 symbols
cmd/akvorado/config_test.go15 symbols

Dependencies from manifests, versioned

cloud.google.com/go/compute/metadatav0.9.0 · 1×
codeberg.org/chavacava/garifv0.2.0 · 1×
filippo.io/edwards25519v1.1.1 · 1×
github.com/AlekSi/pointerv1.2.0 · 1×
github.com/ClickHouse/ch-gov0.72.0 · 1×
github.com/andybalholm/brotliv1.2.0 · 1×
github.com/benbjohnson/clockv1.3.5 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/bio-routing/bio-rdv0.1.10 · 1×

For agents

$ claude mcp add akvorado \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact