5e1b95cf92
* rrdfamily * rrddim * rrdset plugin and module names * rrdset units * rrdset type * rrdset family * rrdset title * rrdset title more * rrdset context * rrdcalctemplate context and removal of context hash from rrdset * strings statistics * rrdset name * rearranged members of rrdset * eliminate rrdset name hash; rrdcalc chart converted to STRING * rrdset id, eliminated rrdset hash * rrdcalc, alarm_entry, alert_config and some of rrdcalctemplate * rrdcalctemplate * rrdvar * eval_variable * rrddimvar and rrdsetvar * rrdhost hostname, os and tags * fix master commits * added thread cache; implemented string_dup without locks * faster thread cache * rrdset and rrddim now use dictionaries for indexing * rrdhost now uses dictionary * rrdfamily now uses DICTIONARY * rrdvar using dictionary instead of AVL * allocate the right size to rrdvar flag members * rrdhost remaining char * members to STRING * * better error handling on indexing * strings now use a read/write lock to allow parallel searches to the index * removed AVL support from dictionaries; implemented STRING with native Judy calls * string releases should be negative * only 31 bits are allowed for enum flags * proper locking on strings * string threading unittest and fixes * fix lgtm finding * fixed naming * stream chart/dimension definitions at the beginning of a streaming session * thread stack variable is undefined on thread cancel * rrdcontext garbage collect per host on startup * worker control in garbage collection * relaxed deletion of rrdmetrics * type checking on dictfe * netdata chart to monitor rrdcontext triggers * Group chart label updates * rrdcontext better handling of collected rrdsets * rrdpush incremental transmition of definitions should use as much buffer as possible * require 1MB per chart * empty the sender buffer before enabling metrics streaming * fill up to 50% of buffer * reset signaling metrics sending * use the shared variable for status * use separate host flag for enabling streaming of metrics * make sure the flag is clear * add logging for streaming * add logging for streaming on buffer overflow * circular_buffer proper sizing * removed obsolete logs * do not execute worker jobs if not necessary * better messages about compression disabling * proper use of flags and updating rrdset last access time every time the obsoletion flag is flipped * monitor stream sender used buffer ratio * Update exporting unit tests * no need to compare label value with strcmp * streaming send workers now monitor bandwidth * workers now use strings * streaming receiver monitors incoming bandwidth * parser shift of worker ids * minor fixes * Group chart label updates * Populate context with dimensions that have data * Fix chart id * better shift of parser worker ids * fix for streaming compression * properly count received bytes * ensure LZ4 compression ring buffer does not wrap prematurely * do not stream empty charts; do not process empty instances in rrdcontext * need_to_send_chart_definition() does not need an rrdset lock any more * rrdcontext objects are collected, after data have been written to the db * better logging of RRDCONTEXT transitions * always set all variables needed by the worker utilization charts * implemented double linked list for most objects; eliminated alarm indexes from rrdhost; and many more fixes * lockless strings design - string_dup() and string_freez() are totally lockless when they dont need to touch Judy - only Judy is protected with a read/write lock * STRING code re-organization for clarity * thread_cache improvements; double numbers precision on worker threads * STRING_ENTRY now shadown STRING, so no duplicate definition is required; string_length() renamed to string_strlen() to follow the paradigm of all other functions, STRING internal statistics are now only compiled with NETDATA_INTERNAL_CHECKS * rrdhost index by hostname now cleans up; aclk queries of archieved hosts do not index hosts * Add index to speed up database context searches * Removed last_updated optimization (was also buggy after latest merge with master) Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> Co-authored-by: Vladimir Kobal <vlad@prokk.net> |
||
---|---|---|
.devcontainer | ||
.github | ||
.travis | ||
aclk | ||
build | ||
build_external | ||
claim | ||
cli | ||
collectors | ||
contrib | ||
daemon | ||
database | ||
diagrams | ||
docs | ||
exporting | ||
health | ||
libnetdata | ||
ml | ||
mqtt_websockets@0ccbce11b8 | ||
packaging | ||
parser | ||
registry | ||
spawn | ||
streaming | ||
system | ||
tests | ||
web | ||
.clang-format | ||
.codacy.yml | ||
.codeclimate.yml | ||
.csslintrc | ||
.dockerignore | ||
.eslintignore | ||
.eslintrc | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.lgtm.yml | ||
.mlc_config.json | ||
.remarkignore | ||
.remarkrc.js | ||
.squash.yml | ||
.travis.yml | ||
.yamllint.yml | ||
BREAKING_CHANGES.md | ||
BUILD.md | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
Dockerfile | ||
Dockerfile.test | ||
HISTORICAL_CHANGELOG.md | ||
LICENSE | ||
Makefile.am | ||
README.md | ||
REDISTRIBUTED.md | ||
build-artifacts.sh | ||
configs.signatures | ||
configure.ac | ||
coverity-scan.sh | ||
cppcheck.sh | ||
netdata-installer.sh | ||
netdata.cppcheck | ||
netdata.spec.in |
README.md
Netdata is high-fidelity infrastructure monitoring and troubleshooting.
Open-source, free, preconfigured, opinionated, and always real-time.
Netdata's distributed, real-time monitoring Agent collects thousands of metrics from systems, hardware, containers, and applications with zero configuration. It runs permanently on all your physical/virtual servers, containers, cloud deployments, and edge/IoT devices, and is perfectly safe to install on your systems mid-incident without any preparation.
You can install Netdata on most Linux distributions (Ubuntu, Debian, CentOS, and more), container platforms (Kubernetes
clusters, Docker), and many other operating systems (FreeBSD, macOS). No sudo
required.
Netdata is designed by system administrators, DevOps engineers, and developers to collect everything, help you visualize metrics, troubleshoot complex performance problems, and make data interoperable with the rest of your monitoring stack.
People get addicted to Netdata. Once you use it on your systems, there's no going back! You've been warned...
Menu
- Features
- Get Netdata
- How it works
- Infographic
- Documentation
- Community
- Contribute
- License
- Is it any good?
Features
Here's what you can expect from Netdata:
- 1s granularity: The highest possible resolution for all metrics.
- Unlimited metrics: Netdata collects all the available metrics—the more, the better.
- 1% CPU utilization of a single core: It's unbelievably optimized.
- A few MB of RAM: The highly-efficient database engine stores per-second metrics in RAM and then "spills" historical metrics to disk long-term storage.
- Minimal disk I/O: While running, Netdata only writes historical metrics and reads
error
andaccess
logs. - Zero configuration: Netdata auto-detects everything, and can collect up to 10,000 metrics per server out of the box.
- Zero maintenance: You just run it. Netdata does the rest.
- Stunningly fast, interactive visualizations: The dashboard responds to queries in less than 1ms per metric to synchronize charts as you pan through time, zoom in on anomalies, and more.
- Visual anomaly detection: Our UI/UX emphasizes the relationships between charts to help you detect the root cause of anomalies.
- Machine learning (ML) features out of the box: Unsupervised ML-based anomaly detection, every second, every metric, zero-config! Metric correlations to help with short-term change detection. And other additional ML-based features to help make your life easier.
- Scales to infinity: You can install it on all your servers, containers, VMs, and IoT devices. Metrics are not centralized by default, so there is no limit.
- Several operating modes: Autonomous host monitoring (the default), headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. Use different metrics retention policies per node and run with or without health monitoring.
Netdata works with tons of applications, notifications platforms, and other time-series databases:
- 300+ system, container, and application endpoints: Collectors autodetect metrics from default endpoints and immediately visualize them into meaningful charts designed for troubleshooting. See everything we support.
- 20+ notification platforms: Netdata's health watchdog sends warning and critical alarms to your favorite platform to inform you of anomalies just seconds after they affect your node.
- 30+ external time-series databases: Export resampled metrics as they're collected to other local- and Cloud-based databases for best-in-class interoperability.
💡 Want to leverage the monitoring power of Netdata across entire infrastructure? View metrics from any number of distributed nodes in a single interface and unlock even more features with Netdata Cloud.
Get Netdata
To install Netdata from source on most Linux systems (physical, virtual, container, IoT, edge), run our one-line installation script. This script downloads and builds all dependencies, including those required to connect to Netdata Cloud if you choose, and enables automatic nightly updates and anonymous statistics.
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
To view the Netdata dashboard, navigate to http://localhost:19999
, or http://NODE:19999
.
Docker
You can also try out Netdata's capabilities in a Docker container:
docker run -d --name=netdata \
-p 19999:19999 \
-v netdataconfig:/etc/netdata \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--restart unless-stopped \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
To view the Netdata dashboard, navigate to http://localhost:19999
, or http://NODE:19999
.
Other operating systems
See our documentation for additional operating
systems, including
Kubernetes, .deb
/.rpm
packages, and more.
Post-installation
When you're finished with installation, check out our single-node or infrastructure monitoring quickstart guides based on your use case.
Or, skip straight to configuring the Netdata Agent.
Read through Netdata's documentation, which is structured based on actions and solutions, to enable features like health monitoring, alarm notifications, long-term metrics storage, exporting to external databases, and more.
Netdata Cloud
Netdata Cloud works with Netdata's free, open-source monitoring agent to help you monitor and troubleshoot every layer of your systems to find weaknesses before they turn into outages. Using both tools can help you turn data into insights immediately.
How it works
Netdata is a highly efficient, highly modular, metrics management engine. Its lockless design makes it ideal for concurrent operations on the metrics.
The result is a highly efficient, low-latency system, supporting multiple readers and one writer on each metric.
Infographic
This is a high-level overview of Netdata features and architecture. Click on it to view an interactive version, which has links to our documentation.
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 the lifeblood of open-source projects. While we continue to invest in and improve Netdata, we need help to democratize monitoring!
- 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 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.
Is it any good?
Yes.
When people first hear about a new product, they frequently ask if it is any good. A Hacker News user remarked:
Note to self: Starting immediately, all raganwald projects will have a “Is it any good?” section in the readme, and the answer shall be “yes.".