DESOSA 2022

Netdata

Figure: Logo Netdata

Netdata (https://www.netdata.cloud/) is an advanced high-fidelity infrastructure monitoring and troubleshooting tool, which collects more than thousands of metrics from systems, hardware, containers and applications without any form of configuration. Netdata will, upon installation, automatically detect hundreds of prebuilt integrations and make them visualizable and interoperable.

Netdata was first released back in 2013 on the 24th of October, where it initially only supported a few integrations and systems. Since then Netdata has grown to be one of the most complete monitoring systems in the world. Netdata had its first stable release back in 2020 on the 14th of October. 1

Netdata is designed to be easily installed without interrupting any of the other applications already running on the system. The system is also designed to run on virtually all Linux distributions, containers, and other operating systems. All these features are packed into one application that still manages to be incredibly optimized, as it only uses around 1% CPU utilization on a single core system.

The company that is behind the development of Netdata has one simple mission: To democratize monitoring, empower IT teams to know more about their infrastructure, enabling them to quickly identify and troubleshoot issues, collaborate to solve problems, and make data-driven decisions to move business forward. They call this in short: ‘making monitoring work for you, not the other way around’. 2

References


  1. Netdata. (2022, February 15). Wikipedia. https://en.wikipedia.org/wiki/Netdata ↩︎

  2. Netdata website. (2022, February 15) Netdata mission, retreived from https://www.netdata.cloud/about/ ↩︎

Authors

Wesley de Hek

Embedded Systems master student at the TU Delft following the Software & Networking track.

Daan Offerhaus

Embedded Systems master student at TU Delft in the Computer Achitecture track.

Ratish Thakoersingh

Computer Science master student at TU Delft following the Software Technology Track.

Marios Marinos

Computer Science 2nd year master student at TU Delft following the Artificial Intelligence track.

Quality and Evolution

Netdata is created by the Netdata company, who is still mainly responsible for the development of the project. Because Netdata is an open-source project, many people with many different coding styles contribute to Netdata concurrently. To maintain high code quality for Netdata, the company has set up a set up rules and guidelines for contributors. This essay describes the safeguards for the quality and integrity of Netdata’s software. Satisfying the key quality attributes In Essay 1, we described the four key quality attributes of Netdata to be: functionality, cost, security, and scalability.

Product Vision and Problem Analysis

Netdata was created because of a frustration that the COO, Costa Tsaosis, had while trying to pinpoint a performance problem using existing tools1. Because of the, according to him, shockingly small number of metrics and resolutions, he couldn’t pinpoint the problem. To fix this, he decided to create Netdata with the vision to provide high-fidelity infrastructure monitoring and performance troubleshooting, while keeping the system Open-source, free, preconfigured, secure, and easy to use.

Scalability

This final essay describes the scalability of Netdata, its scalability challenges, and its scalability solutions. From the insights we gained while writing Essay 1, we could already see that scalability is one of Netdata’s key quality attributes. Because of this, scalability lies at the heart of Netdata’s infrastructure, and it is kept in mind throughout the development. In Essay 2 we learned that there are numerous architectural decisions made to ensure the scalability of Netdata, in line with Netdata’s vision to provide scaling at marginal costs1.

From Vision to Architecture

This second essay describes the way that Netdata transforms its vision, which we described in Essay 1, into an actual architecture. Main architectural style Netdata’s main architectural style is a component-based, data centric style. Netdata can be split up into multiple components, as can be seen in containers and components view below. Next to this, Netdata’s main functionallity is collecting and transforming data, making the data its primary asset. Looking at the picture below, we can see that Netdata has multiple external dependencies/actors.

Contributions