Skip to main content

Bandwidth Requirements

On Production Systems, Standalone Netdata

Standalone Netdata may use network bandwidth under the following conditions:

  1. You configured data collection jobs that are fetching data from remote systems. There is no such jobs enabled by default.
  2. You use the dashboard of the Netdata.
  3. Netdata Cloud communication (see below).

On Metrics Centralization Points, between Netdata Children & Parents

Netdata supports multiple compression algorithms for streaming communication. Netdata Children offer all their compression algorithms when connecting to a Netdata Parent, and the Netdata Parent decides which one to use based on algorithms availability and user configuration.

AlgorithmBest for
zstdThe best balance between CPU utilization and compression efficiency. This is the default.
lz4The fastest of the algorithms. Use this when CPU utilization is more important than bandwidth.
gzipThe best compression efficiency, at the expense of CPU utilization. Use this when bandwidth is more important than CPU utilization.
brotliThe most CPU intensive algorithm, providing the best compression.

The expected bandwidth consumption using zstd for 1 million samples per second is 84 Mbps, or 10.5 MiB/s.

The order compression algorithms is selected is configured in stream.conf, per [API KEY], like this:

    compression algorithms order = zstd lz4 brotli gzip

The first available algorithm on both the Netdata Child and the Netdata Parent, from left to right, is chosen.

Compression can also be disabled in stream.conf at either Netdata Children or Netdata Parents.

Netdata Cloud Communication

When Netdata Agents connect to Netdata Cloud, they communicate metadata of the metrics being collected, but they do not stream the samples collected for each metric.

The information transferred to Netdata Cloud is:

  1. Information and metadata about the system itself, like its hostname, architecture, virtualization technologies used and generally labels associated with the system.
  2. Information about the running data collection plugins, modules and jobs.
  3. Information about the metrics available and their retention.
  4. Information about the configured alerts and their transitions.

This is not a constant stream of information. Netdata Agents update Netdata Cloud only about status changes on all the above (e.g. an alert being triggered, or a metric stopped being collected). So, there is an initial handshake and exchange of information when Netdata starts, and then there only updates when required.

Of course, when you view Netdata Cloud dashboards that need to query the database a Netdata agent maintains, this query is forwarded to an agent that can satisfy it. This means that Netdata Cloud receives metric samples only when a user is accessing a dashboard and the samples transferred are usually aggregations to allow rendering the dashboards.

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.