Netdata is an open-source, real-time infrastructure monitoring platform designed to provide per-second visibility and troubleshooting capabilities across distributed infrastructure. The repository at https://github.com/netdata/netdata implements a complete observability pipeline that collects, stores, analyzes, and visualizes metrics and logs from systems, containers, and applications.
For detailed architectural information, see System Architecture. For information about core components, see Core Components.
Netdata is a distributed monitoring system that collects thousands of metrics per second with zero configuration. The codebase implements a modular architecture where the core daemon (src/daemon/) manages data collection threads, external collector processes via src/plugins.d/, storage in a custom time-series database (src/database/engine/), and optional cloud synchronization via the Agent-Cloud Link (src/aclk/).
Key Technical Characteristics:
update_every = 1 provides 1-second resolution metrics docs/dashboards-and-charts/netdata-charts.md3src/streaming/ for infrastructure-wide visibility docs/welcome-to-netdata.md30-34The platform supports 800+ integrations across Linux, FreeBSD, macOS, and Windows platforms docs/welcome-to-netdata.md68
Sources: README.md48-60 docs/welcome-to-netdata.md3-16 docs/netdata-agent/sizing-netdata-agents/README.md7-14
The Netdata ecosystem consists of three main components that work together to provide a complete monitoring solution:
| Component | Description | Repository Location | License |
|---|---|---|---|
| Netdata Agent | Core monitoring engine implemented in C. Handles collection, storage (dbengine), ML, and health. | Main repository | GPL v3+ |
| Netdata Parent | The same software as the Agent, configured as a centralization point for multiple children. | Main repository | GPL v3+ |
| Netdata Cloud | A smart control plane for federation, RBAC, team collaboration, and AI insights. | Netdata Cloud | Proprietary (NCUL1) |
Sources: docs/welcome-to-netdata.md11-15 REDISTRIBUTED.md3-10
Netdata Agent Architecture: Code-Level Components
The Netdata daemon (src/daemon/main.c) orchestrates components, spawning internal collector threads and managing the plugins.d orchestrator for external processes. Metrics flow through the RRD engine (src/database/engine/) for storage, while metadata is maintained in SQLite databases src/database/README.md43-50
Sources: src/daemon/main.c src/plugins.d/README.md src/database/engine/rrdengine.c docs/welcome-to-netdata.md19-48
Netdata implements a multi-stage observability pipeline where each agent processes metrics from collection through visualization:
Metric Processing Pipeline with Code Paths
Pipeline Stages:
rrdset_next() and rrddim_set() calls.rrdset_done() commits metrics to the RRD engine's page cache src/database/engine/rrdengine.cSources: src/database/engine/rrdengine.c src/health/health.c docs/welcome-to-netdata.md74-95
Netdata uses a custom high-performance multi-tiered time-series database (dbengine).
PGC (Page Cache) manages metrics data in memory, using libuv for asynchronous I/O src/database/README.md64The health engine (src/health/) provides real-time watchdog services.
alarm-notify.sh, supporting Slack, PagerDuty, Email, and more docs/glossary.md20Netdata trains multiple ML models per metric at the edge README.md98
Sources: src/database/README.md docs/welcome-to-netdata.md docs/netdata-oss-limitations.md