# Changelog
For each version, changes are listed in order of importance. Minor
changes are not listed here. Each change is mapped to a category
identified with a specific icon:
- π₯: breaking change
- β¨: new feature
- π: security fix
- π©Ή: bug fix
- π±: miscellaneous change
## Unreleased
If you use the monitoring stack, note that the Docker Compose file was renamed to
`docker-compose-monitoring.yml` and you need to update your `.env`. Also, metric
scraping is now done by Grafana Alloy instead of Prometheus, so you need to fix
the ownership of the Prometheus volume:
```console
# docker compose run --user root --entrypoint="/bin/sh -c" prometheus "chown -R nobody:nobody /prometheus"
```
- π₯ *docker*: update Kafka data volume mount path (check [PR
#1900](https://github.com/akvorado/akvorado/pull/1900) for the consequences if
you upgrade from a previous beta)
- π₯ *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*: use Docker labels to dynamically configure Grafana Alloy
## 2.0.0-beta.4 - 2025-08-18
> [!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
## 2.0.0-beta.3 - 2025-08-11
> [!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 improve ClickHouse performance
- π± *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
## 2.0.0-beta.2 - 2025-08-04
> [!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 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 to the public endpoint
## 2.0.0-beta.1 - 2025-07-28
> [!CAUTION]
> This is a beta 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.
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. While migration is possible, it is easier to start from
scratch:
```console
# docker compose down --remove-orphans
# docker compose rm -v kafka
# docker compose pull
# docker compose up -d
```
This procedure is also required even if you ran one of the previous beta
versions, due to a path change.
The documentation has been updated, notably the troubleshooting section.
- β¨ *outlet*: new service
- π₯ *inlet*: flow rate limiting feature has been removed
- π₯ *docker*: rename `docker-compose-monitoring.yml` to
`docker-compose-prometheus.yml` (you need to update your `.env` if you were
using it)
- π₯ *docker*: switch to Apache Kafka 4.0
- π₯ *docker*: switch Kafka to KRaft mode
- π©Ή *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
- π± *docker*: enable access log for Traefik
- π± *docker*: update ClickHouse to 25.3 (not mandatory)
- π± *docker*: update Traefik to 3.4 (not mandatory)
- π± *docker*: switch to Prometheus Java Agent exporter for Kafka
- π± *orchestrator*: move ClickHouse database settings from `clickhouse` to `clickhousedb`
- π± *inlet*: improve performance of classifiers
[quickstart tarball]: https://github.com/akvorado/akvorado/releases/latest/download/docker-compose-quickstart.tar.gz
## 1.11.5 - 2025-05-11
- π₯ *console*: Firefox 128+, Safari 16.4+, or Chrome 111+ are now required
- π©Ή *inlet*: don't override flow-provided VLANs with VLAN from Ethernet header
- π©Ή *docker*: fix console not always starting because the orchestrator didn't wait for Kafka to be ready
- π± *orchestrator*: put SASL parameters in their own section in Kafka configuration
- π± *orchestrator*: add OAuth support to Kafka client
## 1.11.4 - 2025-04-26
- π₯ *inlet*: in SNMP metadata provider, prefer ifAlias over ifDescr for interface description
- π± *inlet*: add back `geoip` as an option for `inlet`β`core`β`asn-providers`
- π± *inlet*: allow the static provider to fall back to the next provider if some
interfaces are missing, when setting the `skip-missing-interfaces` option to
true.
- π± *build*: minimum Go version to build is now 1.24
- π± *build*: use PGO for better performance of the inlet
- π± *orchestrator*: add ability to override ClickHouse or Kafka configuration in some components
- π± *docker*: make most containers wait for their dependencies to be healthy
- π± *docker*: switch from `bitnami/valkey` to `valkey/valkey`
- π± *docker*: update Kafka to 3.8 (not mandatory)
- π *docker*: update Traefik to 3.3 (security issue)
## 1.11.3 - 2025-02-04
- π₯ *inlet*: in SNMP metadata provider, use ifName for interface names and
ifDescr or ifAlias for descriptions and make description optional
- β¨ *console*: add a "Last" column in the data table
- π *docker*: do not expose the /debug endpoint on the public entrypoint
- π©Ή *docker*: configure ClickHouse to not alter default user for new installs
- π©Ή *console*: fix synchronization of saved filters from configuration file
- π± *orchestrator*: sets TTL for more ClickHouse log tables (including `text_log`)
- π± *inlet*: decode destination BGP communities in sFlow packets
- π± *inlet*: for SNMP configuration, unify SNMPv2 and SNMPv3 credentials into a
single `credentials` structure
## 1.11.2 - 2024-11-01
- π©Ή *inlet*: fix decoding of QinQ in Ethernet packets
- π©Ή *console*: fix ordering of top rows when multiple sampling rates are used
- π± *docker*: update ClickHouse to 24.8 (not mandatory)
- π± *docker*: update to Traefik 3.1 (not mandatory)
- π± *docker*: add docker/docker-compose-local.yml for local overrides
## 1.11.1 - 2024-09-01
For upgrading, you should use the "upgrade tarball" instead of the "quickstart
tarball". This new tarball does not update the configuration files or the
`.env` file.
- π©Ή *console*: sort results by number of packets when unit is packets per second
- π± *inlet*: use AS path from routing component when sFlow receives an empty one
- π± *console*: add `bidirectional` and `previous-period` as configurable values for default visualize options
- π± *docker*: build IPinfo updater image from CI
- π± *docker*: update Kafka UI to 0.7.2
- π± *docker*: provide an upgrade tarball in addition to the quickstart tarball
- π± *build*: minimum Go version to build is now 1.22
## 1.11.0 - 2024-06-26
- π₯ *console*: persist metadata cache on the default `docker compose` setup
- π©Ή *orchestrator*: fix population of `DstNetSite` and `SrcNetSite`
- π©Ή *orchestrator*: remove previous networks.csv temporary files on start
- π± *inlet*: add NetFlow V5 support
- π± *console*: add support for PostgreSQL and MySQL to store filters
- π± *console*: add `console`β`homepage-graph-timerange` to define the time range for the homepage graph
- π± *console*: enable round-robin for ClickHouse connections
- π± *console*: display TCP and UDP port names if known
- π± *orchestrator*: add ClickHouse version check for INTERPOLATE bug
- π± *docker*: add monitoring stack with Prometheus and Grafana (work in progress, not enabled by default, check `.env`)
- π± *docker*: update to Traefik 3.0 (not mandatory)
- π± *docker*: update ClickHouse to 24.3 (not mandatory)
- π± *docker*: switch from Redis to Valkey (not mandatory)
- π± *docker*: build IPinfo updater image to make it available for non-x86
architectures and ensure databases are downloaded only when an update is
available
## 1.10.2 - 2024-04-27
- π©Ή *orchestrator*: do not use AS names from GeoIP as tenant for networks
- π©Ή *inlet*: fix sampling rate parsing for IPFIX packets using "packet interval"
- π©Ή *inlet*: fix `inlet`β`metadata`β`providers`β`targets` for gNMI provider
## 1.10.1 - 2024-04-14
- π©Ή *inlet*: fix versioning of metadata cache
- π©Ή *orchestrator*: fix panic in networks CSV refresher
## 1.10.0 - 2024-04-08
In this release, geo IP is now performed in ClickHouse instead of the inlet. When
using the standard `docker compose` setup, the configuration should be
automatically migrated from the inlet component to the orchestrator component.
This also changes how geo IP is used for AS numbers: geo IP is used as a last
resort when configured. It also increases memory usage (1.3GB for ClickHouse).
Another new feature is the ability to use a ClickHouse cluster deployment. This
is enabled when specifying a cluster name in `clickhouse`β`cluster`. There is no
automatic migration of an existing database. You should start from scratch and
copy data from the previous setup. Do not try to enable cluster mode on an
existing setup!
New installations should also get better compression and performance from the
main table, due to a change in the primary key used for this table. Check this
[Altinity article][] if you want to apply the change to your installation.
Support for Docker Compose V1 (`docker-compose` command) has been removed in
favor of Docker Compose V2 (`docker compose` command). On Ubuntu/Debian systems,
this means you can no longer use the `docker-compose` package. On Ubuntu, you
can install the `docker-compose-v2` package. For other options, check the
[documentation for installing the Compose plugin][].
- π₯ *inlet*: GeoIP data is moved from inlets to ClickHouse, add city and region
- π₯ *console*: persist console database on the default `docker compose` setup
- π₯ *docker*: remove support for `docker-compose` V1
- β¨ *orchestrator*: add support for ClickHouse clusters
- β¨ *inlet*: add gNMI metadata provider
- β¨ *inlet*: static metadata provider can provide exporter and interface metadata
- β¨ *inlet*: static metadata provider can fetch its configuration from an HTTP endpoint
- β¨ *inlet*: metadata can be fetched from multiple providers (eg, static, then SNMP)
- β¨ *inlet*: add support for several SNMPv2 communities
- β¨ *inlet*: timestamps for NetFlow/IPFIX can now be retrieved from packet content, see `inlet`β`flow`β`inputs`β`timestamp-source`
- π©Ή *cmd*: fix parsing of `inlet`β`metadata`β`provider`β`ports`
- π©Ή *console*: fix use of `InIfBoundary` and `OutIfBoundary` as dimensions
- π± *orchestrator*: add TLS support to connect to ClickHouse database
- π± *docker*: update to Redis 7.2, Kafka 3.7, Kafka UI 0.7.1, and Zookeeper 3.8 (not mandatory)
- π± *orchestrator*: improved ClickHouse schema to increase performance
[altinity article]: https://kb.altinity.com/altinity-kb-schema-design/change-order-by/
[documentation for installing the compose plugin]: https://docs.docker.com/compose/install/linux/
## 1.9.3 - 2024-01-14
- π₯ *inlet*: many metrics renamed to match [Prometheus best practices](https://prometheus.io/docs/practices/naming/)
- β¨ *inlet*: add the following collected data (disabled by default):
`MPLSLabels`, `MPLS1stLabel`, `MPLS2ndLabel`, `MPLS3rdLabel`, and `MPLS4thLabel`
- π©Ή *inlet*: fix static metadata provider configuration validation
- π©Ή *inlet*: fix a [performance regression][] while enriching flows
- π©Ή *inlet*: do not decode L4 header if IP packet is fragmented
- π©Ή *inlet*: handle exporters using several sampling rates
- π± *docker*: update ClickHouse to 23.8 (not mandatory)
- π± *orchestrator*: add `orchestrator`β`clickhouse`β`prometheus-endpoint` to configure an endpoint to expose metrics to Prometheus
[performance regression]: https://github.com/akvorado/akvorado/discussions/988
## 1.9.2 - 2023-11-28
- π©Ή *docker*: ensure ClickHouse init script is executed even when the database already exists
## 1.9.1 - 2023-10-06
- π± *console*: add filtering support for custom columns
- π± *inlet*: update [Expr](https://expr.medv.io/), the language behind the
classifiers: support for variables
- π± *inlet*: add RFC 7133 support for IPFIX (data link frame)
- π± *orchestrator*: improve performance when looking up `SrcNetPrefix` and
`DstNetPrefix` when these columns are materialized
## 1.9.0 - 2023-08-26
- π₯ *cmd*: use `AKVORADO_CFG_` as a prefix for environment variables used to
modify configuration (`AKVORADO_CFG_ORCHESTRATOR_HTTP_LISTEN` instead of
`AKVORADO_ORCHESTRATOR_HTTP_LISTEN`)
- π₯ *inlet*: `inlet`β`metadata`β`provider(snmp)`β`ports` is now a map from
exporter subnets to ports, instead of a map from agent subnets to ports. This
is aligned with how `communities` and `security-parameters` options behave.
- β¨ *inlet*: add [IPinfo](https://ipinfo.io/) geo IP database support and use
it by default
- β¨ *inlet*: metadata retrieval is now pluggable. In addition to SNMP, it is
now possible to set exporter names, interface names and descriptions directly
in the configuration file. See `inlet`β`metadata`.
- β¨ *inlet*: routing information is now pluggable. See `inlet`β`routing`.
- β¨ *inlet*: BioRIS provider to retrieve routing information
- β¨ *inlet*: allow extraction of prefix length from routing information. See
`inlet`β`core`β`net-providers`.
- β¨ *inlet*: add the following collected data (disabled by default):
- `IPTTL`
- `IPTos`
- `FragmentID` and `FragmentOffset`
- `TCPFlags`
- `ICMPv4Type`, `ICMPv4Code`, `ICMPv6Type`, `ICMPv6Code`, `ICMPv4`, and `ICMPv6`
- `NextHop`
- β¨ *orchestrator*: add custom dictionaries for additional flow hydration. See
`orchestrator`β`schema`β`custom-dictionaries`. Currently, filtering on the
generated data is not available.
- π©Ή *inlet*: fix NetFlow processing when template is received with data
- π©Ή *inlet*: use sampling rate in NetFlow data packet if available
- π©Ή *console*: fix display when using β%β units and interface speed is 0
- π©Ή *orchestrator*: create flows table with
`allow_suspicious_low_cardinality_types` to ensure `LowCardinality(IPv6)` can be used.
- π± *inlet*: update [Expr](https://expr.medv.io/), the language behind the
classifiers: new builtins are available
- π± *build*: minimum supported Node.js version is now 16
- π± *docker*: move Docker-related files to `docker/`
- π± *docker*: update ClickHouse to 23.3 (not mandatory)
- π± *docker*: update to Zookeeper 3.8 (not mandatory)
- π± *docker*: update to Kafka 3.5 (not mandatory, but there is also a configuration change)
- π± *docker*: add healthchecks for Redis and Zookeeper
- π± *console*: emphasize trajectory on Sankey graphs
## 1.8.3 - 2023-04-28
- π©Ή *docker*: ensure Kafka does not use KRaft by default
- π©Ή *console*: fix `SrcVlan` and `DstVlan` as a dimension
- π± *orchestrator*: add `method` and `headers` to specify HTTP method and
additional headers to use when requesting a network source
## 1.8.2 - 2023-04-08
- β¨ *orchestrator*: add an option to materialize a column instead of using an alias
- π©Ή *inlet*: fix caching when setting interface name or description
## 1.8.1 - 2023-03-04
- π©Ή *console*: fix subnet aggregation when IPv4 or IPv6 is set to its default value
- π©Ή *console*: fix `SrcNetPrefix`, `DstNetPrefix`, `PacketSize`, and `PacketSizeBucket` dimensions
## 1.8.0 - 2023-02-25
- π₯ *docker*: the configuration files are now shipped in a `config/`
directory: you need to move your `akvorado.yaml` to `config/` as well
- π₯ *inlet*: unknown interfaces are not skipped anymore
- β¨ *console*: add subnet aggregation for `SrcAddr` and `DstAddr`
- β¨ *inlet*: expose `Interface.Index` and `Interface.VLAN` to interface classification
- β¨ *inlet*: add `Reject()` to the set of classification functions to drop the current flow
- β¨ *inlet*: add `SetName()` and `SetDescription()` to modify interface name and description during classification
- β¨ *inlet*: add `Format()` to format a string during classification
- π©Ή *inlet*: fix parsing of sFlow containing IPv4/IPv6 headers
- π± *orchestrator*: accept an `!include` tag to include other YAML files in `akvorado.yaml`
## 1.7.2 - 2023-02-12
When upgrading to this release, it takes some time to reduce the storage size
for a few columns.
- β¨ *console*: add β%β to available units
- π©Ή *inlet*: fix parsing of sFlow IPv4/IPv6 data
- π©Ή *inlet*: fix `Bytes` value for sFlow (this is the L3 length)
- π©Ή *orchestrator*: fix disabling of `DstASPath`
- π©Ή *console*: fix time range selection
- π©Ή *console*: fix calculation of the L2 overhead when selecting L2 bps
- π©Ή *console*: fix behavior of dimension limit field when empty
- π± *console*: accept `IN` and `NOTIN` operators for `ExporterAddr`, `SrcAddr`, `DstAddr`, `SrcAddrNAT`, `DstAddrNAT`
- π± *inlet*: optimize to reduce the number of queries to the system clock
- π± *orchestrator*: reduce storage for `InIfDescription`, `OutIfDescription`, `SrcAddr`, `DstAddr`, `Bytes`, and `Packets`
## 1.7.1 - 2023-01-27
This is an important bug fix release. `DstNet*` values were classified using the
source address instead of the destination address.
- π©Ή *orchestrator*: fix `DstNet*` values
- π± *inlet*: if available, use sFlow for `DstASPath`
- π± *docker*: update Kafka UI image
## 1.7.0 - 2023-01-26
This version introduces the ability to customize the data schema used by
*Akvorado*. This change is quite invasive and you should be careful when
deploying it. It requires a ClickHouse restart after upgrading the
orchestrator. It also takes some time to reduce the storage size for `SrcPort`
and `DstPort`.
The orchestrator automatically defines the TTL for the system log tables (like
`system.query_log`). The default TTL is 30 days. You can disable this by setting
`orchestrator`β`clickhouse`β`system-log-ttl` to 0.
- β¨ *inlet*: add `schema`β`enabled`, `schema`β`disabled`,
`schema`β`main-table-only`, and `schema`β`not-main-table-only` to alter
collected data
- β¨ *inlet*: add the following collected data (disabled by default):
- `SrcAddrNAT` and `DstAddrNAT`
- `SrcPortNAT` and `DstPortNAT`
- `SrcMAC` and `DstMAC`
- `SrcVlan` and `DstVlan`
- π©Ή *inlet*: handle correctly interfaces with high indexes for sFlow
- π©Ή *docker*: fix Kafka healthcheck
- π± *inlet*: improve decoding/encoding performance (twice faster!)
- π± *orchestrator*: set TTL for ClickHouse system log tables and `exporters` table
- π± *orchestrator*: reduce storage size for `SrcPort` and `DstPort`
- π± *orchestrator*: add `clickhouse`β`kafka`β`engine-settings` to configure additional Kafka engine settings
- π± *common*: Go profiler endpoints are enabled by default
## 1.6.4 - 2022-12-22
There is a schema update in this version: you also have to restart ClickHouse
after upgrading for it to pick up the new schema.
This version also introduces a cache for some HTTP requests, notably those to
plot the graphs in the βVisualizeβ tab. The default backend is in-memory,
however the shipped `akvorado.yaml` configuration file is using Redis instead.
The `docker-compose` setup has also been updated to start a Redis container for
this usage. Using Redis is preferred but on upgrade, you need to enable it
explicitly by adding `console`β`http`β`cache` in your configuration.
- β¨ *console*: cache some costly requests to the backend
- β¨ *console*: add `SrcNetPrefix` and `DstNetPrefix` (as a dimension and a filter attribute)
- β¨ *inlet*: add `inlet`β`flow`β`inputs`β`use-src-addr-for-exporter-addr` to override exporter address
- π± *console*: add `limit` and `graph-type` to `console`β`default-visualize-options`
- π± *docker*: published `docker-compose.yml` file pins the Akvorado image to the associated release
- π± *docker*: update Zookeeper and Kafka images (upgrade is optional)
## 1.6.3 - 2022-11-26
- β¨ *console*: add *100% stacked* graph type
- π©Ή *inlet*: handle non-fatal BMP decoding errors more gracefully
- π©Ή *inlet*: fix a small memory leak in BMP collector
- π©Ή *console*: fix selection of the aggregate table to not get empty graphs
- π©Ή *console*: use configured dimensions limit for βVisualizeβ tab
- π± *inlet*: optimize BMP CPU usage, memory usage, and lock times
- π± *inlet*: replace LRU cache for classifiers by a time-based cache
- π± *inlet*: add TLS support for Kafka transport
- π± *console*: Ctrl-Enter or Cmd-Enter when editing a filter now applies the changes
- π± *console*: switch to TypeScript for the frontend code
## 1.6.2 - 2022-11-03
- β¨ *orchestrator*: add `orchestrator`β`network-sources` to fetch network attributes with HTTP
- β¨ *console*: add `console`β`database`β`saved-filters` to populate filters from the configuration file
- π©Ή *documentation*: durations must be written using a suffix (like `5s`)
- π± *docker*: provide a tarball with essential files to install or upgrade a `docker-compose` setup
- π± *inlet*: skip unknown AFI/SAFI in BMP route monitoring messages
## 1.6.1 - 2022-10-11
- π©Ή *inlet*: fix SrcAS when receiving flows with sFlow
- π©Ή *inlet*: do not half-close BMP connection (remote IOS XR closes its own end)
- π± *docker*: split demo exporters out of `docker-compose.yml`
- π± *console*: make the upper limit for dimensions configurable
(`console`β`dimensions-limit`)
## 1.6.0 - 2022-09-30
This release features a BMP collector to retrieve BGP routes from one or
several routers. The routes can be used to determine source and
destination AS (instead of using GeoIP or information from the flows),
as well as the AS paths and communities. Check `inlet`β`bmp` and
`inlet`β`core` configuration settings for more information.
- β¨ *inlet*: BMP collector to get AS numbers, AS paths, and communities from BGP [PR #155][]
- β¨ *inlet*: add `inlet`β`snmp`β`agents` to override exporter IP address for SNMP queries
- π©Ή *inlet*: handle sFlow specific interface number for locally
originated/terminated traffic, discarded traffic and traffic sent to
multiple interfaces
- π± *build*: Docker image is built using Nix instead of Alpine
[PR #155]: https://github.com/akvorado/akvorado/pull/155
## 1.5.8 - 2022-09-18
This release bumps the minimum required version for ClickHouse to
22.4. The `docker-compose` file has been updated to use ClickHouse
22.8 (which is a long-term version). Moreover, *Akvorado* now has its
own organization and the code is hosted at
[akvorado/akvorado](https://github.com/akvorado/akvorado).
- π₯ *console*: make ClickHouse interpolate missing values (ClickHouse 22.4+ is required)
- π©Ή *orchestrator*: validate configuration of other services on start
- π©Ή *inlet*: correctly parse `inlet`β`snmp`β`communities` when it is just a string
- π± *cmd*: print a shorter message when an internal error happens when parsing configuration
- π± *inlet*: add `inlet`β`snmp`β`ports` to configure SNMP exporter ports
## 1.5.7 - 2022-08-23
- β¨ *inlet*: add support for flow rate-limiting with `inlet`β`flow`β`rate-limit`
- π± *inlet*: improve performance of GeoIP lookup
- π± *inlet*: add `inlet`β`core`β`asn-providers` to specify how to retrieve AS
numbers. `inlet`β`core`β`ignore-asn-from-flow` is deprecated and mapped
to `geoip`.
## 1.5.6 - 2022-08-16
- β¨ *inlet*: add SNMPv3 protocol support
- π± *inlet*: `inlet`β`snmp`β`default-community` is now deprecated
- π± *console*: make βprevious periodβ line more visible
- π©Ή *geoip*: fix `inlet`β`geoip`β`country-database` rename to `inlet`β`geoip`β`geo-database`
## 1.5.5 - 2022-08-09
- β¨ *console*: add an option to also display flows in the opposite direction on time series graph
- β¨ *console*: add an option to also display the previous period (day, week, month, year) on stacked graphs
- π± *inlet*: Kafka key is now a 4-byte random value making scaling less dependent on the number of exporters
- π± *demo-exporter*: add a setting to automatically generate a reverse flow
- π± *docker*: loosen required privileges for `conntrack-fixer`
## 1.5.4 - 2022-08-01
`SrcCountry`/`DstCountry` were incorrectly filled in aggregated
tables. This is fixed with this release, but this requires dropping the
existing data (only the country information). See [PR #61][] for more
details.
- β¨ *inlet*: `inlet`β`core`β`default-sampling-rate` also accepts a map from subnet to sampling rate
- β¨ *inlet*: `inlet`β`core`β`override-sampling-rate` enables overriding the sampling rate received from a device
- π©Ή *orchestrator*: fix `SrcCountry`/`DstCountry` columns in aggregated tables [PR #61][]
- π± *inlet*: `inlet`β`geoip`β`country-database` has been renamed to `inlet`β`geoip`β`geo-database`
- π± *inlet*: add counters for GeoIP database hit/miss
- π± *inlet*: `inlet`β`snmp`β`communities` accepts subnets as keys
- π± *docker*: disable healthcheck for the conntrack-fixer container
[PR #61]: https://github.com/akvorado/akvorado/pull/61
## 1.5.3 - 2022-07-26
- π₯ *cmd*: replace the `fake-exporter` subcommand with `demo-exporter` to make its purpose easier to understand
- π± *console*: make `<<` and `!<<` operators more efficient
## 1.5.2 - 2022-07-26
- β¨ *console*: add `<<`/`!<<` operator for `SrcAddr` and `DstAddr` to match on a subnet [PR #57][]
- π©Ή *build*: remove `-dirty` from version number in released Docker images
- π± *console*: hide `::ffff:` prefix from IPv6-mapped IPv4 addresses
[PR #57]: https://github.com/akvorado/akvorado/pull/57
## 1.5.1 - 2022-07-22
- π©Ή *cmd*: do not merge user-provided lists with defaults when parsing configuration
- π©Ή *docker*: make `docker-compose.yml` work with Docker Compose v2/v3
- π©Ή *inlet*: update UDP packet counters when receiving packets, not after decoding
- π± *console*: add configuration for default options of the visualize
tab and the top widgets to display on the home page.
## 1.5.0 - 2022-07-20
This release introduces a new protobuf schema. When using
`docker-compose`, a ClickHouse restart is needed after upgrading
the orchestrator to load this new schema.
- β¨ *inlet*: add sFlow support [PR #23][]
- β¨ *inlet*: classify exporters to group, role, site, region, and tenant [PR #14][]
- β¨ *orchestrator*: add role, site, region, and tenant attributes to networks [PR #15][]
- β¨ *docker*: clean conntrack entries when inlet container starts
- π©Ή *console*: fix use of `InIfBoundary` and `OutIfBoundary` as dimensions [PR #11][]
- π©Ή *build*: make *Akvorado* compile on macOS
- π± *inlet*: ask the kernel to timestamp incoming packets
- π± *orchestrator*: limit the number of Kafka consumers in ClickHouse to the number of CPUs
- π± *documentation*: add configuration for Juniper devices
- π± *docker*: add [UI for Apache Kafka][] to help debug startup issues
[PR #11]: https://github.com/akvorado/akvorado/pull/11
[PR #14]: https://github.com/akvorado/akvorado/pull/14
[PR #15]: https://github.com/akvorado/akvorado/pull/15
[PR #23]: https://github.com/akvorado/akvorado/pull/23
[UI for Apache Kafka]: https://github.com/provectus/kafka-ui
## 1.4.2 - 2022-07-16
- β¨ *inlet*: add an option to ignore ASN received from flows [PR #7][]
- π©Ή *console*: fix maximum value for the grid view
- π± *orchestrator*: adapt partition key for each consolidated flow
table in ClickHouse to limit the number of partitions (this change
will not be applied to existing installations)
- π± *inlet*: add `default-sampling-rate` as an option
- π± *inlet*: only require either input or output interface for a valid flow
- π± *build*: switch from Yarn to npm as a JavaScript package manager [PR #4][]
- π± *docker*: pull image from GitHub instead of building it
- π± *documentation*: add more tips to the troubleshooting section
[PR #4]: https://github.com/akvorado/akvorado/pull/4
[PR #7]: https://github.com/akvorado/akvorado/pull/7
## 1.4.1 - 2022-07-12
- π *docker*: expose two HTTP endpoints, one public (8081) and one private (8080)
- π± *docker*: restart ClickHouse container on failure
## 1.4.0 - 2022-07-09
- π first public release under the AGPL 3.0 license