Releases: akvorado/akvorado
v2.0.4
The previous release introduced a performance regression for users with many
flows from a single exporter. This is fixed in this release.
- π©Ή docker: restart geoip container on boot
- π± inlet: make load-balancing algorithm for Kafka partitions configurable
(randomorby-exporter) and revert back torandomby default (like before 2.0.3) - π± orchestrator: add
kafkaβmanage-topicflag to enable or disable topic management - π± cmd: make
akvorado healthcheckuse an abstract Unix socket to check service liveness
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.4
Full changelog: v2.0.3...v2.0.4
v2.0.3
This release contains some important fixes to prevent flow corruption under heavy load.
- π₯ config:
skip-verifyis false by default in TLS configurations for
ClickHouse, Kafka and remote data sources (previously,verifywas set to
false by default) - π©Ή inlet: keep flows from one exporter into a single partition
- π©Ή outlet: provide additional gracetime for a worker to send to ClickHouse
- π©Ή outlet: prevent discarding flows on shutdown
- π©Ή outlet: enhance scaling up and down workers to avoid hysteresis
- π©Ή outlet: accept flows where interface names or descriptions are missing
- π©Ή docker: update Traefik to 3.6.1 (for compatibility with Docker Engine 29)
- π± common: enable block and mutex profiling
- π± outlet: save IPFIX decoder state to a file to prevent discarding flows on start
- π± config: rename
verifytoskip-verifyin TLS configurations for
ClickHouse, Kafka and remote data sources (with inverted logic) - π± config: remote data sources accept a specific TLS configuration
- π± config: gNMI metadata provider has been converted to the same TLS
configuration than ClickHouse, Kafka and remote data sources. - π± docker: update Kafka to 4.1.1
- π± docker: update Kafbat to 1.4.2
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.3
Full changelog: v2.0.2...v2.0.3
v2.0.2
The modification of the default value of inletβkafkaβqueue-size should
prevent packet drops on busier setups.
- π₯ config: stop shipping demo exporter configurations from the orchestrator
- β¨ inlet: load-balance incoming UDP packets to all workers using eBPF on
Linux (checkdocker/docker-compose-local.yamlto enable) - π©Ή inlet: fix
akvorado_inlet_flow_input_udp_in_dropped_packets_totalmetric - π©Ή console: fix completion tooltip being obscured with Firefox
- π± inlet: increase default
kafkaβqueue-sizevalue to 4096 to prevent packet drops - π± outlet: be more aggressive when increasing the number of workers
- π± outlet: cap the number of workers to the number of Kafka partitions
- π± console: add
authβlogout-urlandauthβavatar-urlto configure
logout and avatar URLs when not provided as headers - π± docker: update Vector to 0.50.0.
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.2
Full changelog: v2.0.1...v2.0.2
v2.0.1
- π©Ή inlet: disable kernel timestamping on Linux kernel older than 5.1
- π©Ή outlet: fix gNMI metadata provider exiting too early
- π©Ή doc: fix documentation for SNMPv3 configuration
- π± inlet: add support for RFC 5103 (bidirectional flows)
- π± outlet: handle discard and multiple interfaces for expanded sFlow samples
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.1
Full changelog: v2.0.0...v2.0.1
v2.0.0
There is a companion blog post to this release.
This release introduces a new component: the outlet. Previously, ClickHouse was
fetching data directly from Kafka. However, this required pushing the protobuf
schema using an out-of-band method. This makes cloud deployments more complex.
The inlet now pushes incoming raw flows to Kafka without decoding them. The
outlet takes them, decodes them, enriches them, and pushes them to ClickHouse.
This also reduces the likelihood of losing packets.
This change should be transparent on most setups but you are encouraged to
review the new proposed configuration in the quickstart tarball and update
your own configuration to move the appropriate configuration from the inlet to
the outlet service.
As it seems a good time as any, Zookeeper is removed from the docker compose
setup. ClickHouse Keeper is used instead when setting up a cluster. Kafka is now
using the KRaft mode. You need to recreate the Kafka container:
# docker compose down --remove-orphans
# docker compose rm --volumes kafka
# docker volume rm akvorado_akvorado-kafka
# docker compose pull
# docker compose up -dThe documentation has been updated, notably the troubleshooting section.
If you use the monitoring stack, note that the Docker Compose file was split
into docker-compose-prometheus.yml for metrics, and docker-compose-loki.yml
for logs. You need to update your .env. Also, metric scraping is now done by
Grafana Alloy instead of Prometheus andx you need to fix the ownership of the
Prometheus volume:
# docker compose run --user root --entrypoint="/bin/sh -c" prometheus "chown -R nobody:nobody /prometheus"- β¨ outlet: new service
- β¨ orchestrator: automatic restart of the orchestrator service on configuration change
- π₯ inlet: flow rate limiting feature has been removed
- π₯ docker: rename
docker-compose-monitoring.ymltodocker-compose-prometheus.yml - π₯ docker: enforce a specific IPv4 subnet (in the reserved class E)
- π₯ common: be stricter on results returned from remote sources
- π₯ docker: switch to Apache Kafka 4.1 with KRaft mode
- π₯ docker: switch from Prometheus to Grafana Alloy for scraping metrics
- π₯ docker: use profiles to optionally enable Prometheus, Loki, and Grafana
(if you were already using them, you also need to enable the profile) - π©Ή console: display missing images in documentation
- π©Ή console: ensure main table is used when required even when there is no data
- π©Ή console: fix deletion of saved filters
- π©Ή console: fix intermittent failure when requesting previous period
- π©Ή docker: move healthcheck for IPinfo updater into Dockerfile to avoid
"unhealthy" state on non-updated installations - π± cmd: make
akvorado versionshorter (use-dfor full output) - π± inlet: improve performance of classifiers
- π± outlet: decode IPFIX ingressPhysicalInterface and egressPhysicalInterface
- π± outlet: improve performance of the BMP routing provider
- π± console: submit form on Ctrl-Enter or Cmd-Enter while selecting dimensions
- π± orchestrator: move ClickHouse database settings from
clickhousetoclickhousedb - π± build: accept building with a not up-to-date toolchain
- π± build: build with Go 1.25 and use bundled toolchain
- π± build: modernize JavaScript build with Oxlint and Rolldown-Vite
- π± build: switch from NPM to PNPM for JavaScript build and reduce dependencies
- π± config: listen to 4739 for IPFIX on inlet service
- π± docker: stop spawning demo exporters by default
- π± docker: build a linux/amd64/v3 image to enable optimizations
- π± docker: build a linux/arm/v7 image
- π± docker: add IPv6 configuration
- π± docker: switch from Provectus Kafka UI (unmaintained) to Kafbat UI
- π± docker: switch to Prometheus Java Agent exporter for Kafka
- π± docker: update ClickHouse to 25.8 (not mandatory)
- π± docker: update Prometheus to 3.5.0
- π± docker: update Traefik to 3.4 (not mandatory)
- π± docker: update node-exporter to 1.9.1
- π± docker: add Loki to the observability stack
- π± docker: add cAdvisor to the observability stack
- π± docker: add examples to enable authentication and TLS
- π± docker: change default log level for ClickHouse from trace to information
- π± docker: enable HTTP compression for Traefik
- π± docker: enable access log for Traefik
- π± docker: expose Kafka UI (read-only) to the public endpoint
- π± docker: expose Traefik Dashboard (read-only) to the public endpoint
- π± docker: expose metrics to the public endpoint
- π± documentation: document how to tune TCP receive buffer for BMP routing provider
- π± documentation: document how to update the database schema for installations before 1.10.0
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0
Full changelog: v1.11.5...v2.0.0
v2.0.0-beta.6
Caution
This is a beta release! Be sure to read the sections about the previous betas as well.
- π₯ docker: use profiles to optionally enable Prometheus, Loki, and Grafana
(if you were already using them, you also need to enable the profile) - π©Ή console: display missing images in documentation
- π©Ή console: ensure main table is used when required even when there is no data
- π©Ή docker: fix broken
/metricsendpoint for inlet - π± outlet: improve performance of the RIB for the BMP routing provider
- π± build: accept building with a not up-to-date toolchain
- π± docker: update ClickHouse to 25.8 (not mandatory)
- π± docker: update Kafka to 4.1.0 (not mandatory)
- π± docker: update Loki to 3.5.4 (not mandatory)
- π± docker: enable HTTP compression for Traefik
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0-beta.6
Full changelog: v2.0.0-beta.5...v2.0.0-beta.6
v2.0.0-beta.5
Caution
This is a beta release! Be sure to read the section about 2.0.0-beta.1 as well.
If you use the monitoring stack, note that the Docker Compose file was split
into docker-compose-prometheus.yml for metrics, and docker-compose-loki.yml
for logs. You need to update your .env. Also, metric scraping is now done by
Grafana Alloy instead of Prometheus andx you need to fix the ownership of the
Prometheus volume:
# docker compose run --user root --entrypoint="/bin/sh -c" prometheus "chown -R nobody:nobody /prometheus"If you upgrade from a previous 2.0.0-beta version, you need again to recreate
the Kafka container:
# docker compose down --remove-orphans
# docker compose rm --volumes kafka
# docker volume rm akvorado_akvorado-kafka
# docker compose pull
# docker compose up -d- π₯ docker: update Kafka data volume mount path
- π₯ docker: switch from Prometheus to Grafana Alloy for scraping metrics
- π©Ή outlet: fix crash when scaling down and up the Kafka workers
- π©Ή outlet: move gRPC metrics for BioRIS provider in the routing namespace
- π± config: listen to 4739 for IPFIX on inlet service
- π± docker: enforce bridge name
- π± docker: add Loki to the observability stack
- π± docker: add cAdvisor to the observability stack
- π± docker: update Prometheus to 3.5.0
- π± docker: update node-exporter to 1.9.1
- π± docker: stop spawning demo exporters by default
- π± build: build with Go 1.25
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0-beta.5
Full changelog: v2.0.0-beta.4...v2.0.0-beta.5
v2.0.0-beta.4
Caution
This is a beta release! Be sure to read the section about 2.0.0-beta.1 as well.
This is likely the last beta before releasing 2.0.0.
- π± outlet: improve performance of the BMP routing provider
- π± documentation: document how to tune TCP receive buffer for BMP routing provider
- π± documentation: document how to update the database schema for installations before 1.10.0
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0-beta.4
Full changelog: v2.0.0-beta.3...v2.0.0-beta.4
v2.0.0-beta.3
Caution
This is a beta release! Be sure to read the section about 2.0.0-beta.1 as well.
- π₯ docker: enforce a specific IPv4 subnet (in the reserved class E)
- π± docker: add IPv6 configuration
- π± outlet: dynamically adjust the number of Kafka workers to ensure better performance from ClickHouse
- π± outlet: insert asynchronously when flow count is low
- π± outlet: decode IPFIX ingressPhysicalInterface and egressPhysicalInterface
- π± docker: expose Kafka UI (read-only) to the public endpoint
- π± docker: expose Traefik Dashboard (read-only) to the public endpoint
- π± docker: add examples to enable authentication and TLS
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0-beta.3
Full changelog: v2.0.0-beta.2...v2.0.0-beta.3
v2.0.0-beta.2
Caution
This is a beta release! Be sure to read the section about 2.0.0-beta.1 as well.
- π₯ common: be stricter on results returned from remote sources
- π± outlet: commit records from Kafka after queuing them to ClickHouse
- π± docker: build a linux/amd64/v3 image to enable some optimizations
- π± docker: build a linux/arm/v7 image
- π± docker: change default log level for ClickHouse from trace to information
- π± docker: switch from Provectus Kafka UI (unmaintained) to Kafbat UI
- π± docker: expose metrics and Kafka UI (read-only) to the public endpoint
Docker image: docker pull ghcr.io/akvorado/akvorado:2.0.0-beta.2
Full changelog: v2.0.0-beta.1...v2.0.0-beta.2