Netdata uses a distributed data architecture to help you collect and store per-second metrics from any number of nodes. Every node in your infrastructure, whether it's one or a thousand, stores the metrics it collects.
Netdata Cloud bridges the gap between many distributed databases by centralizing the interface you use to query and visualize your nodes' metrics. When you look at charts in Netdata Cloud , the metrics values are queried directly from that node's database and securely streamed to Netdata Cloud, which proxies them to your browser.
Netdata's distributed data architecture has a number of benefits:
The ephemerality of metrics plays an important role in retention. In environments where metrics collection is dynamic and new metrics are constantly being generated, we are interested about 2 parameters:
The expected concurrent number of metrics as an average for the lifetime of the database. This affects mainly the storage requirements.
The expected total number of unique metrics for the lifetime of the database. This affects mainly the memory requirements for having all these metrics indexed and available to be queried.
The granularity of metrics (the frequency they are collected and stored, i.e. their resolution) is significantly affecting retention.
Lowering the granularity from per second to every two seconds, will double their retention and half the CPU requirements of the Netdata Agent, without affecting disk space or memory requirements.
Any node running the Netdata Agent can store long-term metrics for any retention period, given you allocate the appropriate amount of RAM and disk space.
Read our document on changing how long Netdata stores metrics on your nodes for details.
You can also stream between nodes using streaming, allowing to replicate databases and create your own centralized data lake of metrics, if you choose to do so.
While a distributed data architecture is the default when monitoring infrastructure with Netdata, you can also configure its behavior based on your needs or the type of infrastructure you manage.
To archive metrics to an external time-series database, such as InfluxDB, Graphite, OpenTSDB, Elasticsearch, TimescaleDB, and many others, see details on integrating Netdata via exporting.
When you use the database engine to store your metrics, you can always perform a quick backup of a node's
/var/cache/netdata/dbengine/
folder using the tool of your choice.
Netdata Cloud does not store metric values.
To enable certain features, such as viewing active alarms or filtering by hostname/service, Netdata Cloud does store configured alarms, their status, and a list of active collectors.
Netdata does not and never will sell your personal data or data about your deployment.
You can configure the Netdata Agent to store days, weeks, or months worth of distributed, per-second data by configuring the database engine. Use our calculator to determine the system resources required to retain your desired amount of metrics, and expand or contract the database by editing a single setting.