Skip to content

Monitor your servers, containers, and applications, in high-resolution and in real-time! https://www.netdata.cloud

License

Notifications You must be signed in to change notification settings

fatmaAliGamal/netdata

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Netdata

Monitor your servers, containers, and applications,
in high-resolution and in real-time.


GitHub Stars
Live Demo Latest release Latest nightly build
CII Best Practices Code Climate License: GPL v3+


Netdata collects metrics per second and presents them in beautiful low-latency dashboards. It is designed to run on all of your physical and virtual servers, cloud deployments, Kubernetes clusters, and edge/IoT devices, to monitor everything you run.

  • πŸ’₯ Collects metrics from 800+ integrations
    Operating system metrics, container metrics, virtual machines, hardware sensors, applications metrics, OpenMetrics exporters, StatsD, and logs.

  • πŸ’ͺ Real-Time, Low-Latency, High-Resolution
    All metrics are collected per second and are on the dashboard immediately after data collection. Netdata is designed to be fast.

  • πŸ˜Άβ€πŸŒ«οΈ Unsupervised Anomaly Detection
    Trains multiple Machine-Learning (ML) models for each metric collected and detects anomalies based on the past behavior of each metric individually.

  • πŸ”₯ Powerful Visualization
    Clear and precise visualization that allows you to quickly understand any dataset, but also to filter, slice and dice the data directly on the dashboard, without the need to learn any query language.

  • πŸ”” Out of box Alerts
    Comes with hundreds of alerts out of the box to detect common issues and pitfalls, revealing issues that can easily go unnoticed.

  • 😎 Low Maintenance
    Fully automated in every aspect: automated dashboards, out-of-the-box alerts, auto-detection, auto-discovery of metrics, and easily configurable.

  • ⭐ Open and Extensible
    Netdata is a modular platform that can be extended in all possible ways and it also integrates nicely with other monitoring solutions.

CNCF
Netdata actively supports and is a member of the Cloud Native Computing Foundation (CNCF)
Β 
...and due to your love ❀️, it is the 3rd most ⭐'d project in the CNCF landscape!


Netdata Agent


πŸ’‘ Important Note
People get addicted to Netdata. Once you use it on your systems, there's no going back!
You have been warned...


Quick Start

User base Servers monitored Sessions served Docker Hub pulls
New users today New machines today Sessions today Docker Hub pulls today

1. Install Netdata Agents everywhere ✌️

Netdata can be installed on all Linux, MacOS, and FreeBSD systems. We provide binary packages for the most popular operating systems and package managers.

2. Configure Collectors πŸ’₯

Netdata auto-detects and auto-discovers most operating system data sources and applications. However, many data sources require some manual configuration, usually to allow Netdata get access to the metrics.

  • For a detailed list of all data collectors, check this guide.
  • To monitor Windows servers and applications use this guide.
  • To monitor SNMP devices check this guide.

3. Configure Netdata Parents πŸ‘ͺ

A Netdata Parent is a Netdata Agent that has been configured to accept streaming connections from other Netdata agents.

Netdata Parents provide:

  • Infrastructure level dashboards, at http://parent.server.ip:19999/
  • Increased retention for all metrics of all your nodes
  • Central configuration of alerts and dispatch of notifications

You can also use Netdata Parents to:

  • Offload your production systems (the parents runs ML, alerts, queries, etc for all its children)
  • Secure your production systems (the parents accept user connections, for all its children)

4. Connect your Parents to Netdata Cloud ☁️

Optionally, sign-up to Netdata Cloud and claim your Netdata Parents.

When your parents are connected to Netdata Cloud, you can (on top of the above):

  • Organize your infra in spaces and rooms
  • Create, manage, and share custom dashboards
  • Invite your team and assign roles to them (Role Based Access Control - RBAC)
  • Access Netdata Functions (processes top from the UI and more)
  • Get infinite horizontal scalability (multiple independent parents are viewed as one infra)
  • Configure alerts from the UI (coming soon)
  • Configure data collection from the UI (coming soon)
  • Netdata Mobile App notifications (coming soon)

🀟 Netdata Cloud does not prevent you from using your Netdata Agents and Parents directly, and vice versa.
πŸ‘Œ Your metrics are still stored in your network when you connect your Netdata Agents and Parents to Netdata Cloud.

How it works

Netdata is built around a modular metrics processing pipeline.

Each Netdata Agent can perform the following functions:

  1. COLLECT
    Uses internal and external plugins to collect data from their sources.

    Netdata auto-detects and collects almost everything from the operating system: including CPU, Interrupts, Memory, Disks, Mount Points, Filesystems, Network Stack, Network Interfaces, Containers, VMs, Processes, SystemD Units, Linux Performance Metrics, Linux eBPF, Hardware Sensors, IPMI, and more.

    It collects application metrics from applications: PostgreSQL, MySQL/MariaDB, Redis, MongoDB, Nginx, Apache, and hundreds more.

    Netdata also collects your custom application metrics by scraping OpenMetrics exporters, or via StatsD.

    It can convert web server log files to metrics and apply ML and alerts to them, in real-time.

    And it also supports synthetic tests / white box tests, so you can ping servers, check API responses, or even check filesystem files and directories to generate metrics, train ML and run alerts and notifications on their status.

  2. STORE
    Uses database engine plugins to store the collected data, either in memory and/or on disk. We have developed our own dbengine for storing the data in a very efficient manner, allowing Netdata to have less than 1 byte per sample on disk and amazingly fast queries.

  3. LEARN (ML)
    Trains multiple Machine-Learning (ML) models per metric to learn the behavior of each metric individually.

  4. DETECT (ML)
    Uses the trained machine learning (ML) models to detect outliers and mark collected samples as anomalies. Netdata stores anomaly information together with each sample and also streams it to Netdata Parents so that the anomaly is also available at query time for the whole retention of each metric.

  5. CHECK
    Uses its configured alerts to check the metrics for common issues and send alert notifications.

  6. STREAM
    Push metrics in real-time to Netdata Parents.

  7. ARCHIVE
    Export metrics to industry standard time-series databases, like Prometheus, InfluxDB, OpenTSDB, Graphite, etc.

  8. QUERY
    Provide an API to query the data and present interactive dashboards to users.

When using Netdata Parents, all the functions of a Netdata Agent (except data collection) can be delegated to Parents to offload production systems.

FAQ

πŸ›‘οΈ Is this secure?

Of course it is! We do our best to ensure it is!

We understand that Netdata is a software piece that is installed on millions of production systems across the world. So, it is important for us, Netdata to be as secure as possible:

πŸŒ€ Will this consume a lot of resources on my servers?

No. It will not! We promise this will be fast!

Although each Netdata Agent is a complete monitoring solution packed into a single application, and despite the fact that Netdata collects every metric every single second and trains multiple ML models per metric, you will find that Netdata has amazing performance! In many cases, it outperforms other monitoring solutions that have significantly fewer features or far smaller data collection rates.

This is what you should expect:

  • For production systems, each Netdata Agent with default settings (everything enabled, ML, Health, DB) should consume about 5% CPU utilization of one core and about 150 MiB or RAM. By using a Netdata parent and streaming all metrics to that parent, you can disable ML & health and use an ephemeral DB mode (like alloc) on the children, leading to utilization of about 1% CPU of a single core and 100 MiB of RAM. Of course, these depend on how many metrics are collected.
  • For Netdata Parents, for about 1 to 2 million metrics, all collected every second, we suggest a server with 16 cores and 32GB RAM. Less than half of it will be used for data collection and ML. The rest will be available for queries.

Netdata has extensive internal instrumentation to help us reveal how the resources consumed are used. All these are available in the "Netdata Monitoring" section of the dashboard. Depending on your use case, there are many options to optimize resource consumption.

Even if you need to run Netdata on extremely weak embedded or IoT systems, you will find that Netdata can be tuned to be very performant.

πŸ“œ How much retention can I have?

As much as you need!

Netdata supports tiering, to downsample past data and save disk space. With default settings, it has 3 tiers:

  1. tier 0, with high resolution, per-second, data.
  2. tier 1, mid-resolution, per minute, data.
  3. tier 2, low-resolution, per hour, data.

All tiers are updated in parallel during data collection. Just increase the disk space you give to Netdata to get a longer history for your metrics. Tiers are automatically chosen at query time depending on the time frame and the resolution requested.

πŸš€ Does it scale? I have really a lot of servers!

Yes, of course it does!

  • ✈️ Netdata Parents provide great vertical scalability, so you can have as big parents as the CPU, RAM and Disk resources you can dedicate to them. In our lab we constantly stress test Netdata Parents with about 2 million metrics collected per second.
  • πŸš€ In addition, Netdata Cloud provides virtually unlimited horizontal scalability. It "merges" all the Netdata parents you have into one unified infrastructure at query time. Netdata Cloud itself is probably the biggest single installation monitoring platform ever created, currently monitoring about 100k online servers with about 10k servers changing state (added/removed) per day!

πŸ’Ύ My production servers are very sensitive in disk I/O. Can I use Netdata?

Yes, you can!

We suggest the following:

  1. Use database mode alloc or ram to disable writing metric data to disk.
  2. Configure streaming to push in real-time all metrics to a Netdata Parent. The Netdata Parent will maintain metrics on disk for this node.
  3. Disable ML and health on this node. The Netdata Parent will do them for this node.
  4. Use the Netdata Parent to access the dashboard.

Using the above, the Netdata Agent on your production system will not need a disk.

🀨 How is Netdata different from a Prometheus and Grafana setup?

First we have to say that Prometheus as a time-series database and Grafana as a visualizer are excellent tools for what they do.

However, we believe that such a setup is missing a key element: A Prometheus and Grafana setup assumes that you know everything about the metrics you collect and you understand deeply how they are structured, they should be queried and visualized.

In reality this setup has a lot of problems. The vast number of technologies, operating systems, and applications we use in our modern stacks, makes it impossible for any single person to know and understand everything about anything. We get testimonials regularly from Netdata users across the biggest enterprises, that Netdata manages to reveal issues, anomalies and problems they were not aware of and they didn't even have the means to find or troubleshoot.

So, the biggest difference of Netdata to Prometheus and Grafana, is that we decided that the tool needs to have a much better understanding of the components, the applications and the metrics it monitors.

  • When compared to Prometheus, Netdata needs for each metric much more than just a name, some labels and a value over time. A metric in Netdata is a structured entity that correlates with other metrics in a certain way, has specific attributes that depict how it should be organized, treated, queried and visualized. We call this the NIDL (Nodes, Instances, Dimensions, Labels) framework. To maintain such an index is a challenge: first because the raw metrics collected do not provide this information, so we have to add it, and second because we need to maintain this index for the lifetime of each metric, which with our current database retention, it is usually more than a year.

  • When compared to Grafana, Netdata is fully automated. Grafana has more customization capabilities than Netdata, but Netdata presents fully functional dashboards by itself and most importantly it gives you the means to understand, analyze, filter, slice and dice the data without the need for you to edit queries or be aware of any peculiarities the underlying metrics may have. Furthermore, to help you when you need to find the needle in the haystack, Netdata has advanced troubleshooting tools provided by the Netdata metrics scoring engine, that allows it to score metrics based on their anomaly rate, their differences or similarities for any given time-frame.

Despite all these, Netdata integrates nicely with Prometheus and Grafana and we have reports from users who use Netdata with Prometheus and Grafana in production.

☁️ Do I have to subscribe to Netdata Cloud?

No. But we hope you will find it useful.

The Netdata Agent dashboard and the Netdata Cloud dashboard are the same. Still, Netdata Cloud provides additional features, that the Netdata Agent is not capable of. These include:

  1. Customizability (custom dashboards and other settings are persisted when you are signed in to Netdata Cloud)
  2. Configuration of Alerts and Data Collection from the UI (coming soon)
  3. Security (role-based access control - RBAC).
  4. Horizontal Scalability ("blend" multiple independent parents in one uniform infrastructure)
  5. Central Dispatch of Alert Notifications (even when multiple independent parents are involved)
  6. Mobile App for Alert Notifications (coming soon)

So, although it is not required, you can get the most out of your Netdata installation by using Netdata Cloud.

🏒 Who uses Netdata?

Netdata is a popular project. Check its stargazers on github. You will find people from quite popular companies and enterprises, including: SAP, Qualcomm, IBM, Amazon, Intel, AMD, Unity, Baidu, Cisco, Samsung, Netflix, Facebook and hundreds more.

Netdata is also popular in universities, including New York University, Columbia University, New Jersey University, and dozens more.

πŸ“– Documentation

Netdata's documentation is available at Netdata Learn.

This site also hosts a number of guides to help newer users better understand how to collect metrics, troubleshoot via charts, export to external databases, and more.

Community

Netdata is an inclusive open-source project and community. Please read our Code of Conduct.

Find most of the Netdata team in our community forums. It's the best place to ask questions, find resources, and engage with passionate professionals. The team is also available and active in our Discord too.

You can also find Netdata on:

Contribute

Contributions are essential to the success of open-source projects. While we continue to invest in and improve Netdata, we need your help!

  • Read our Contributing Guide, which contains all the information you need to contribute to Netdata, such as improving our documentation, engaging in the community, and developing new features. We've made it as frictionless as possible, but if you need help, just ping us on our community forums!
  • We have a whole category dedicated to contributing and extending Netdata on our community forums
  • Found a bug? Open a GitHub issue.
  • View our Security Policy.

Package maintainers should read the guide on building Netdata from source for instructions on building each Netdata component from the source and preparing a package.

License

The Netdata Agent is GPLv3+. Netdata re-distributes other open-source tools and libraries. Please check the third party licenses.

About

Monitor your servers, containers, and applications, in high-resolution and in real-time! https://www.netdata.cloud

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C 76.8%
  • JavaScript 6.5%
  • Python 5.0%
  • Shell 3.5%
  • Jupyter Notebook 3.4%
  • HTML 2.0%
  • Other 2.8%