@cryptotaxi247 / netdata-1 / commits / 2af1d56dd

add apps.plugin charts descriptions (#11601)

Ilya Mashchenko committed Oct 1, 2021 at 16:14 UTC 2af1d56dd34ef99a76b2d6bdd5144b8f236327d3
1 file changed +308 -69
web/gui/dashboard_info.js
+308 -69
@@ -208,21 +208,37 @@ netdataDashboard.menu = {
208 'apps': {
209 title: 'Applications',
210 icon: '<i class="fas fa-heartbeat"></i>',
211 - info: 'Per application statistics are collected using netdata\'s <code>apps.plugin</code>. This plugin walks through all processes and aggregates statistics for applications of interest, defined in <code>/etc/netdata/apps_groups.conf</code>, which can be edited by running <code>$ /etc/netdata/edit-config apps_groups.conf</code> (the default is <a href="https://github.com/netdata/netdata/blob/master/collectors/apps.plugin/apps_groups.conf" target="_blank">here</a>). The plugin internally builds a process tree (much like <code>ps fax</code> 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). The reported values are compatible with <code>top</code>, although the netdata plugin counts also the resources of exited children (unlike <code>top</code> which shows only the resources of the currently running processes). So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',
211 + info: 'Per application statistics are collected using '+
212 + '<a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. '+
213 + 'This plugin walks through all processes and aggregates statistics for '+
214 + '<a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin#configuration" target="_blank">application groups</a>. '+
215 + 'The plugin also counts the resources of exited children. '+
216 + 'So for processes like shell scripts, the reported values include the resources used by the commands '+
217 + 'these scripts run within each timeframe.',
218 height: 1.5
219 },
220
215 - 'users': {
216 - title: 'Users',
221 + 'groups': {
222 + title: 'User Groups',
223 icon: '<i class="fas fa-user"></i>',
218 - info: 'Per user statistics are collected using netdata\'s <code>apps.plugin</code>. This plugin walks through all processes and aggregates statistics per user. The reported values are compatible with <code>top</code>, although the netdata plugin counts also the resources of exited children (unlike <code>top</code> which shows only the resources of the currently running processes). So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',
224 + info: 'Per user group statistics are collected using '+
225 + '<a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. '+
226 + 'This plugin walks through all processes and aggregates statistics per user group. '+
227 + 'The plugin also counts the resources of exited children. '+
228 + 'So for processes like shell scripts, the reported values include the resources used by the commands '+
229 + 'these scripts run within each timeframe.',
230 height: 1.5
231 },
232
222 - 'groups': {
223 - title: 'User Groups',
233 + 'users': {
234 + title: 'Users',
235 icon: '<i class="fas fa-users"></i>',
225 - info: 'Per user group statistics are collected using netdata\'s <code>apps.plugin</code>. This plugin walks through all processes and aggregates statistics per user group. The reported values are compatible with <code>top</code>, although the netdata plugin counts also the resources of exited children (unlike <code>top</code> which shows only the resources of the currently running processes). So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',
236 + info: 'Per user statistics are collected using '+
237 + '<a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. '+
238 + 'This plugin walks through all processes and aggregates statistics per user. '+
239 + 'The plugin also counts the resources of exited children. '+
240 + 'So for processes like shell scripts, the reported values include the resources used by the commands '+
241 + 'these scripts run within each timeframe.',
242 height: 1.5
243 },
244
@@ -2055,32 +2071,309 @@ netdataDashboard.context = {
2071 },
2072
2073 // ------------------------------------------------------------------------
2058 - // APPS
2074 + // APPS (Applications, Groups, Users)
2075
2076 + // APPS cpu
2077 'apps.cpu': {
2061 - height: 2.0
2078 + info: 'Total CPU utilization (all cores). It includes user, system and guest time.'
2079 + },
2080 + 'groups.cpu': {
2081 + info: 'Total CPU utilization (all cores). It includes user, system and guest time.'
2082 + },
2083 + 'users.cpu': {
2084 + info: 'Total CPU utilization (all cores). It includes user, system and guest time.'
2085 + },
2086 +
2087 + 'apps.cpu_user': {
2088 + info: 'The amount of time the CPU was busy executing code in '+
2089 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).'
2090 + },
2091 + 'groups.cpu_user': {
2092 + info: 'The amount of time the CPU was busy executing code in '+
2093 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).'
2094 + },
2095 + 'users.cpu_user': {
2096 + info: 'The amount of time the CPU was busy executing code in '+
2097 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).'
2098 + },
2099 +
2100 + 'apps.cpu_system': {
2101 + info: 'The amount of time the CPU was busy executing code in '+
2102 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).'
2103 + },
2104 + 'groups.cpu_system': {
2105 + info: 'The amount of time the CPU was busy executing code in '+
2106 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).'
2107 + },
2108 + 'users.cpu_system': {
2109 + info: 'The amount of time the CPU was busy executing code in '+
2110 + '<a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).'
2111 + },
2112 +
2113 + 'apps.cpu_guest': {
2114 + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).'
2115 + },
2116 + 'groups.cpu_guest': {
2117 + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).'
2118 + },
2119 + 'users.cpu_guest': {
2120 + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).'
2121 + },
2122 +
2123 + // APPS disk
2124 + 'apps.preads': {
2125 + info: 'The amount of data that has been read from the storage layer. '+
2126 + 'Actual physical disk I/O was required.'
2127 + },
2128 + 'groups.preads': {
2129 + info: 'The amount of data that has been read from the storage layer. '+
2130 + 'Actual physical disk I/O was required.'
2131 + },
2132 + 'users.preads': {
2133 + info: 'The amount of data that has been read from the storage layer. '+
2134 + 'Actual physical disk I/O was required.'
2135 + },
2136 +
2137 + 'apps.pwrites': {
2138 + info: 'The amount of data that has been written to the storage layer. '+
2139 + 'Actual physical disk I/O was required.'
2140 + },
2141 + 'groups.pwrites': {
2142 + info: 'The amount of data that has been written to the storage layer. '+
2143 + 'Actual physical disk I/O was required.'
2144 + },
2145 + 'users.pwrites': {
2146 + info: 'The amount of data that has been written to the storage layer. '+
2147 + 'Actual physical disk I/O was required.'
2148 + },
2149 +
2150 + 'apps.lreads': {
2151 + info: 'The amount of data that has been read from the storage layer. '+
2152 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2153 + 'not actual physical disk I/O was required '+
2154 + '(the read might have been satisfied from pagecache).'
2155 + },
2156 + 'groups.lreads': {
2157 + info: 'The amount of data that has been read from the storage layer. '+
2158 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2159 + 'not actual physical disk I/O was required '+
2160 + '(the read might have been satisfied from pagecache).'
2161 + },
2162 + 'users.lreads': {
2163 + info: 'The amount of data that has been read from the storage layer. '+
2164 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2165 + 'not actual physical disk I/O was required '+
2166 + '(the read might have been satisfied from pagecache).'
2167 },
2168
2169 + 'apps.lwrites': {
2170 + info: 'The amount of data that has been written or shall be written to the storage layer. '+
2171 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2172 + 'not actual physical disk I/O was required.'
2173 + },
2174 + 'groups.lwrites': {
2175 + info: 'The amount of data that has been written or shall be written to the storage layer. '+
2176 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2177 + 'not actual physical disk I/O was required.'
2178 + },
2179 + 'users.lwrites': {
2180 + info: 'The amount of data that has been written or shall be written to the storage layer. '+
2181 + 'It includes things such as terminal I/O and is unaffected by whether or '+
2182 + 'not actual physical disk I/O was required.'
2183 + },
2184 +
2185 + 'apps.files': {
2186 + info: 'The number of open files and directories.'
2187 + },
2188 + 'groups.files': {
2189 + info: 'The number of open files and directories.'
2190 + },
2191 + 'users.files': {
2192 + info: 'The number of open files and directories.'
2193 + },
2194 +
2195 + // APPS mem
2196 'apps.mem': {
2197 info: 'Real memory (RAM) used by applications. This does not include shared memory.'
2198 },
2199 + 'groups.mem': {
2200 + info: 'Real memory (RAM) used per user group. This does not include shared memory.'
2201 + },
2202 + 'users.mem': {
2203 + info: 'Real memory (RAM) used per user group. This does not include shared memory.'
2204 + },
2205
2206 'apps.vmem': {
2069 - info: 'Virtual memory allocated by applications. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2207 + info: 'Virtual memory allocated by applications. '+
2208 + 'Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2209 + },
2210 + 'groups.vmem': {
2211 + info: 'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2212 + },
2213 + 'users.vmem': {
2214 + info: 'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2215 },
2216
2072 - 'apps.preads': {
2073 - height: 2.0
2217 + 'apps.minor_faults': {
2218 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> '+
2219 + 'which have not required loading a memory page from the disk. '+
2220 + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+
2221 + 'They share memory pages between multiple processes – '+
2222 + 'no additional data needs to be read from disk to memory.'
2223 + },
2224 + 'groups.minor_faults': {
2225 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> '+
2226 + 'which have not required loading a memory page from the disk. '+
2227 + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+
2228 + 'They share memory pages between multiple processes – '+
2229 + 'no additional data needs to be read from disk to memory.'
2230 + },
2231 + 'users.minor_faults': {
2232 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> '+
2233 + 'which have not required loading a memory page from the disk. '+
2234 + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+
2235 + 'They share memory pages between multiple processes – '+
2236 + 'no additional data needs to be read from disk to memory.'
2237 },
2238
2076 - 'apps.pwrites': {
2077 - height: 2.0
2239 + // APPS processes
2240 + 'apps.threads': {
2241 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.'
2242 + },
2243 + 'groups.threads': {
2244 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.'
2245 + },
2246 + 'users.threads': {
2247 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.'
2248 + },
2249 +
2250 + 'apps.processes': {
2251 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.'
2252 + },
2253 + 'groups.processes': {
2254 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.'
2255 + },
2256 + 'users.processes': {
2257 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.'
2258 },
2259
2260 'apps.uptime': {
2081 - info: 'Carried over process group uptime since the Netdata restart. The period of time within which at least one process in the group was running.'
2261 + info: 'The period of time within which at least one process in the group has been running.'
2262 + },
2263 + 'groups.uptime': {
2264 + info: 'The period of time within which at least one process in the group has been running.'
2265 + },
2266 + 'users.uptime': {
2267 + info: 'The period of time within which at least one process in the group has been running.'
2268 + },
2269 +
2270 + 'apps.uptime_min': {
2271 + info: 'The shortest uptime among processes in the group.'
2272 + },
2273 + 'groups.uptime_min': {
2274 + info: 'The shortest uptime among processes in the group.'
2275 + },
2276 + 'users.uptime_min': {
2277 + info: 'The shortest uptime among processes in the group.'
2278 + },
2279 +
2280 + 'apps.uptime_avg': {
2281 + info: 'The average uptime of processes in the group.'
2282 + },
2283 + 'groups.uptime_avg': {
2284 + info: 'The average uptime of processes in the group.'
2285 + },
2286 + 'users.uptime_avg': {
2287 + info: 'The average uptime of processes in the group.'
2288 },
2289
2290 + 'apps.uptime_max': {
2291 + info: 'The longest uptime among processes in the group.'
2292 + },
2293 + 'groups.uptime_max': {
2294 + info: 'The longest uptime among processes in the group.'
2295 + },
2296 + 'users.uptime_max': {
2297 + info: 'The longest uptime among processes in the group.'
2298 + },
2299 +
2300 + 'apps.pipes': {
2301 + info: 'The number of open '+
2302 + '<a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. '+
2303 + 'A pipe is a unidirectional data channel that can be used for interprocess communication.'
2304 + },
2305 + 'groups.pipes': {
2306 + info: 'The number of open '+
2307 + '<a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. '+
2308 + 'A pipe is a unidirectional data channel that can be used for interprocess communication.'
2309 + },
2310 + 'users.pipes': {
2311 + info: 'The number of open '+
2312 + '<a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. '+
2313 + 'A pipe is a unidirectional data channel that can be used for interprocess communication.'
2314 + },
2315 +
2316 + // APPS swap
2317 + 'apps.swap': {
2318 + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+
2319 + 'This does not include shared swap memory.'
2320 + },
2321 + 'groups.swap': {
2322 + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+
2323 + 'This does not include shared swap memory.'
2324 + },
2325 + 'users.swap': {
2326 + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+
2327 + 'This does not include shared swap memory.'
2328 + },
2329 +
2330 + 'apps.major_faults': {
2331 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> '+
2332 + 'which have required loading a memory page from the disk. '+
2333 + 'Major page faults occur because of the absence of the required page from the RAM. '+
2334 + 'They are expected when a process starts or needs to read in additional data and '+
2335 + 'in these cases do not indicate a problem condition. '+
2336 + 'However, a major page fault can also be the result of reading memory pages that have been written out '+
2337 + 'to the swap file, which could indicate a memory shortage.'
2338 + },
2339 + 'groups.major_faults': {
2340 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> '+
2341 + 'which have required loading a memory page from the disk. '+
2342 + 'Major page faults occur because of the absence of the required page from the RAM. '+
2343 + 'They are expected when a process starts or needs to read in additional data and '+
2344 + 'in these cases do not indicate a problem condition. '+
2345 + 'However, a major page fault can also be the result of reading memory pages that have been written out '+
2346 + 'to the swap file, which could indicate a memory shortage.'
2347 + },
2348 + 'users.major_faults': {
2349 + info: 'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> '+
2350 + 'which have required loading a memory page from the disk. '+
2351 + 'Major page faults occur because of the absence of the required page from the RAM. '+
2352 + 'They are expected when a process starts or needs to read in additional data and '+
2353 + 'in these cases do not indicate a problem condition. '+
2354 + 'However, a major page fault can also be the result of reading memory pages that have been written out '+
2355 + 'to the swap file, which could indicate a memory shortage.'
2356 + },
2357 +
2358 + // APPS net
2359 + 'apps.sockets': {
2360 + info: 'The number of open sockets. '+
2361 + 'Sockets are a way to enable inter-process communication between programs running on a server, '+
2362 + 'or between programs running on separate servers. This includes both network and UNIX sockets.'
2363 + },
2364 + 'groups.sockets': {
2365 + info: 'The number of open sockets. '+
2366 + 'Sockets are a way to enable inter-process communication between programs running on a server, '+
2367 + 'or between programs running on separate servers. This includes both network and UNIX sockets.'
2368 + },
2369 + 'users.sockets': {
2370 + info: 'The number of open sockets. '+
2371 + 'Sockets are a way to enable inter-process communication between programs running on a server, '+
2372 + 'or between programs running on separate servers. This includes both network and UNIX sockets.'
2373 + },
2374 +
2375 + // Apps eBPF stuff
2376 +
2377 'apps.file_open': {
2378 info: 'Calls to the internal function <code>do_sys_open</code> ( For kernels newer than <code>5.5.19</code> we add a kprobe to <code>do_sys_openat2</code>. ), which is the common function called from' +
2379 ' <a href="https://www.man7.org/linux/man-pages/man2/open.2.html" target="_blank">open(2)</a> ' +
@@ -2184,60 +2477,6 @@ netdataDashboard.context = {
2477 info: 'Counters of file accesses. <code>Miss</code> is when there is file access and the file is not found in the filesystem, see the <code>filesystem.dc_reference</code> chart for more context. Read more about <a href="https://www.kernel.org/doc/htmldocs/filesystems/the_directory_cache.html" target="_blank">directory cache</a>.'
2478 },
2479
2187 - // ------------------------------------------------------------------------
2188 - // USERS
2189 -
2190 - 'users.cpu': {
2191 - height: 2.0
2192 - },
2193 -
2194 - 'users.mem': {
2195 - info: 'Real memory (RAM) used per user. This does not include shared memory.'
2196 - },
2197 -
2198 - 'users.vmem': {
2199 - info: 'Virtual memory allocated per user. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2200 - },
2201 -
2202 - 'users.preads': {
2203 - height: 2.0
2204 - },
2205 -
2206 - 'users.pwrites': {
2207 - height: 2.0
2208 - },
2209 -
2210 - 'users.uptime': {
2211 - info: 'Carried over process group uptime since the Netdata restart. The period of time within which at least one process in the group was running.'
2212 - },
2213 -
2214 - // ------------------------------------------------------------------------
2215 - // GROUPS
2216 -
2217 - 'groups.cpu': {
2218 - height: 2.0
2219 - },
2220 -
2221 - 'groups.mem': {
2222 - info: 'Real memory (RAM) used per user group. This does not include shared memory.'
2223 - },
2224 -
2225 - 'groups.vmem': {
2226 - info: 'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.'
2227 - },
2228 -
2229 - 'groups.preads': {
2230 - height: 2.0
2231 - },
2232 -
2233 - 'groups.pwrites': {
2234 - height: 2.0
2235 - },
2236 -
2237 - 'groups.uptime': {
2238 - info: 'Carried over process group uptime. The period of time within which at least one process in the group was running.'
2239 - },
2240 -
2480 // ------------------------------------------------------------------------
2481 // NETWORK QoS
2482