diff options
Diffstat (limited to 'docs/netdata-agent/sizing-netdata-agents/bandwidth-requirements.md')
-rw-r--r-- | docs/netdata-agent/sizing-netdata-agents/bandwidth-requirements.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/netdata-agent/sizing-netdata-agents/bandwidth-requirements.md b/docs/netdata-agent/sizing-netdata-agents/bandwidth-requirements.md new file mode 100644 index 00000000..092c8da1 --- /dev/null +++ b/docs/netdata-agent/sizing-netdata-agents/bandwidth-requirements.md @@ -0,0 +1,47 @@ +# 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](#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. + +| Algorithm | Best for | +|:---------:|:-----------------------------------------------------------------------------------------------------------------------------------:| +| `zstd` | The best balance between CPU utilization and compression efficiency. This is the default. | +| `lz4` | The fastest of the algorithms. Use this when CPU utilization is more important than bandwidth. | +| `gzip` | The best compression efficiency, at the expense of CPU utilization. Use this when bandwidth is more important than CPU utilization. | +| `brotli` | The 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. |