-
Notifications
You must be signed in to change notification settings - Fork 0
Apps Plugin
This plugin provides charts for 3 sections of the default dashboard:
- Per application charts
- Per user charts
- Per user group charts
This plugin walks through the entire /proc filesystem and aggregates statistics for applications of interest, defined in /etc/netdata/apps_groups.conf (the default is here).
The plugin internally builds a process tree (much like ps fax does), and groups processes together (evaluating both child and parent processes) so that the result is always a chart with a predefined set of dimensions (of course, only application groups found running are reported).
Using this information it provides the following charts (per application group defined in /etc/netdata/apps_groups.conf):
- Total CPU usage
- Total User CPU usage
- Total System CPU usage
- Total Disk Physical Reads
- Total Disk Physical Writes
- Total Disk Logical Reads
- Total Disk Logical Writes
- Total Open Files (unique files - if a file is found open multiple times, it is counted just once)
- Total Dedicated Memory (non shared)
- Total Minor Page Faults
- Total Number of Processes
- Total Number of Threads
- Total Number of Pipes
- Total Swap Activity (Major Page Faults)
- Total Open Sockets
All the above charts, are also grouped by username, using the effective uid of each process.
All the above charts, are also grouped by group name, using the effective gid of each process.
The values gathered here are not 100% accurate. They only include values for the processes running.
If an application is spawning children continuously, which are terminated in just a few milliseconds (like shell scripts do), the values reported will be inaccurate. Linux does report the values for the exited childs of a process. However, these values are reported to the parent process only when the child exits. If these values, of the exited child processes, were also aggregated in the charts below, the charts would have been full of spikes, presenting unrealistic utilization for each process group. So, we decided to ignore these values and present only the utilization of the currently running processes.
apps.plugin is a complex software piece and has a lot of work to do (actually this plugin requires more CPU resources that the netdata daemon). For each process running, apps.plugin reads several /proc files to get CPU usage, memory allocated, I/O usage, open file descriptors, etc. Doing this work per-second, especially on hosts with several thousands of processes, may increase the CPU resources consumed by the plugin.
In such cases, you many need to lower its data collection frequency. To do this, edit /etc/netdata/netdata.conf and find this section:
[plugin:apps]
# update every = 1
# command options =
Uncomment the line update every and set it to a higher number. If you just set it to 2, its CPU resources will be cut in half, and data collection will be once every 2 seconds.
The configuration file is /etc/netdata/apps_groups.conf (the default is here).
The configuration file works accepts multiple lines, each having this format:
group: process1 process2 ...Process names should be given as they appear when running ps -e. The program will actually match the process names in the /proc/PID/status file. So, to be sure the name is right for a process running with PID X, do this:
cat /proc/X/statusThe first line on the output is Name: xxxxx. This is the process name apps.plugin sees.
The order of the lines in the file is important only if you include the same process name to multiple groups.
General
Running Netdata
Alarms
Netdata Registry
Monitoring Info
Netdata Badges
Data Collection
Binary Modules
Python Modules
- How to write new module
- apache
- apache_cache
- cpufreq
- dovecot
- exim
- hddtemp
- ipfs
- memcached
- mysql
- nginx
- nginx_log
- phpfpm
- postfix
- redis
- sensors
- squid
- tomcat
Node.js Modules
BASH Modules
- General Info - charts.d
- ap.chart.sh
- apache.chart.sh
- cpufreq.chart.sh
- example.chart.sh
- mysql.chart.sh
- nginx.chart.sh
- nut.chart.sh
- opensips.chart.sh
- phpfpm.chart.sh
- postfix.chart.sh
- sensors.chart.sh
- squid.chart.sh
- tomcat.chart.sh
API Documentation
Web Dashboards
-
Learn how to create dashboards with charts from one or more netdata servers!
Running behind another web server
Advanced configurations
- netdata for IoT (configure netdata to lower its resources)
- high performance netdata (running netdata public to the internet)
Donations
Blog
-
April, 2016
You should install QoS on all your servers (Linux QoS for humans)
Monitor application bandwidth with Linux QoS (Good to do it, anyway)
Monitoring SYNPROXY (Linux TCP Anti-DDoS)
-
March, 2016
Article: Introducing netdata (the design principles of netdata)