Ebpf doc (#11703)
thiagoftsm committed
Oct 22, 2021 at 22:10 UTC
3dd13c49733fb92644407dc8aeaf9dd13204fda1
1 file changed
+182
-138
collectors/ebpf.plugin/README.md
+182
-138
@@ -1,6 +1,7 @@
1
<!--
2
title: "eBPF monitoring with Netdata"
3
-description: "Use Netdata's extended Berkeley Packet Filter (eBPF) collector to monitor kernel-level metrics about your complex applications with per-second granularity."
3
+description: "Use Netdata's extended Berkeley Packet Filter (eBPF) collector to monitor kernel-level metrics about your
4
+complex applications with per-second granularity."
5
custom_edit_url: https://github.com/netdata/netdata/edit/master/collectors/ebpf.plugin/README.md
6
sidebar_label: "eBPF"
7
-->
@@ -16,9 +17,9 @@ variety of kernel functions, such as `do_sys_open`, `__close_fd`, `vfs_read`, `v
17
`return` program also monitors the return of each kernel functions to deliver more granular metrics about how your
18
system and its applications interact with the Linux kernel.
19
19
-eBPF monitoring can help you troubleshoot and debug how applications interact with the Linux kernel. See our [guide on
20
-troubleshooting apps with eBPF metrics](/docs/guides/troubleshoot/monitor-debug-applications-ebpf.md) for configuration
21
-and troubleshooting tips.
20
+eBPF monitoring can help you troubleshoot and debug how applications interact with the Linux kernel. See
21
+our [guide on troubleshooting apps with eBPF metrics](/docs/guides/troubleshoot/monitor-debug-applications-ebpf.md) for
22
+configuration and troubleshooting tips.
23
24
<figure>
25
<img src="https://user-images.githubusercontent.com/1153921/74746434-ad6a1e00-5222-11ea-858a-a7882617ae02.png" alt="An example of VFS charts, made possible by the eBPF collector plugin" />
@@ -40,8 +41,8 @@ section for details.
41
## Charts
42
43
The eBPF collector creates an **eBPF** menu in the Agent's dashboard along with two sub-menus: **Socket**, and
43
-**Process**. The plugin also creates charts on different menus, like System Overview, Memory, Disks, Filesystem,
44
-Mount Points and Applications. All the charts in this section update every second.
44
+**Process**. The plugin also creates charts on different menus, like System Overview, Memory, Disks, Filesystem, Mount
45
+Points and Applications. All the charts in this section update every second.
46
47
The collector stores the actual value inside of its process, but charts only show the difference between the values
48
collected in the previous and current seconds.
@@ -54,8 +55,8 @@ on host. See the [configuration](#configuration) section for details about how t
55
56
#### Swap
57
57
-Inside the swap submenu the eBPF plugin creates the chart `swapcalls`; this chart is displaying when processes are calling
58
-functions `swap_readpage` and `swap_writepage`, which are functions responsible for doing IO in swap memory.
58
+Inside the swap submenu the eBPF plugin creates the chart `swapcalls`; this chart is displaying when processes are
59
+calling functions `swap_readpage` and `swap_writepage`, which are functions responsible for doing IO in swap memory.
60
61
### Memory
62
@@ -63,15 +64,15 @@ In the memory submenu the eBPF plugin creates two submenus **page cache** and **
64
organization:
65
66
* Page Cache
66
- * Page cache ratio
67
- * Dirty pages
68
- * Page cache hits
69
- * Page cache misses
67
+ * Page cache ratio
68
+ * Dirty pages
69
+ * Page cache hits
70
+ * Page cache misses
71
* Synchronization
71
- * File sync
72
- * Memory map sync
73
- * File system sync
74
- * File range sync
72
+ * File sync
73
+ * Memory map sync
74
+ * File system sync
75
+ * File range sync
76
77
#### Page cache ratio
78
@@ -92,8 +93,8 @@ added relatively recently.
93
94
#### Page cache misses
95
95
-A page cache miss means that a page was not inside memory when the process tried to access it. This chart shows the result
96
-of the difference for calls between functions `add_to_page_cache_lru` and `account_page_dirtied`.
96
+A page cache miss means that a page was not inside memory when the process tried to access it. This chart shows the
97
+result of the difference for calls between functions `add_to_page_cache_lru` and `account_page_dirtied`.
98
99
#### File sync
100
@@ -118,12 +119,14 @@ syscall to synchronize data according to its manual.
119
### Disk
120
121
The eBPF plugin also shows a chart in the Disk section when the `disk` thread is enabled. This will create the
121
-chart `disk_latency_io` for each disk on the host. These charts use [tracepoints](https://www.kernel.org/doc/html/latest/trace/tracepoints.html)
122
+chart `disk_latency_io` for each disk on the host. These charts
123
+use [tracepoints](https://www.kernel.org/doc/html/latest/trace/tracepoints.html)
124
`block:block_rq_issue` and `block:block_rq_complete` to measure the latency of IO events.
125
126
### Filesystem
127
126
-This group has two charts demonstrating how applications interact with the Linux kernel to open and close file descriptors.
128
+This group has two charts demonstrating how applications interact with the Linux kernel to open and close file
129
+descriptors.
130
131
#### File descriptor
132
@@ -137,9 +140,9 @@ This chart shows the number of times some software tried and failed to open or c
140
141
### VFS
142
140
-A [virtual file system](https://en.wikipedia.org/wiki/Virtual_file_system) (VFS) is a layer on top of regular filesystems.
141
-The functions presented inside this API are not used for filesystems, so it's possible that the charts in this section
142
-won't show _all_ the actions that occurred on your system.
143
+A [virtual file system](https://en.wikipedia.org/wiki/Virtual_file_system) (VFS) is a layer on top of regular
144
+filesystems. The functions presented inside this API are not used for filesystems, so it's possible that the charts in
145
+this section won't show _all_ the actions that occurred on your system.
146
147
#### Deleted objects
148
@@ -180,7 +183,8 @@ This chart shows the number of calls to `vfs_open`. This function is responsible
183
Internally, the Linux kernel treats both processes and threads as `tasks`. To create a thread, the kernel offers a few
184
system calls: `fork(2)`, `vfork(2)`, and `clone(2)`. In turn, each of these system calls uses either the function
185
`_do_fork` (kernel older than `5.10.0`) or the function `do_fork` (latest kernels). To generate this chart, the eBPF
183
-collector monitors the cited functions to populate the `process` dimension, and monitors `sys_clone` to identify threads.
186
+collector monitors the cited functions to populate the `process` dimension, and monitors `sys_clone` to identify
187
+threads.
188
189
#### Exit
190
@@ -196,13 +200,13 @@ process and thread creation only.
200
201
#### TCP functions
202
199
-This chart demonstrates calls to functions `tcp_sendmsg`, `tcp_cleanup_rbuf`, and `tcp_close`; these functions are
200
-used to send & receive data and to close connections when `TCP` protocol is used.
203
+This chart demonstrates calls to functions `tcp_sendmsg`, `tcp_cleanup_rbuf`, and `tcp_close`; these functions are used
204
+to send & receive data and to close connections when `TCP` protocol is used.
205
206
#### TCP bandwidth
207
204
-Like the previous chart, this one also monitors `tcp_sendmsg` and `tcp_cleanup_rbuf`, but instead of showing the
205
-number of calls, it demonstrates the number of bytes sent and received.
208
+Like the previous chart, this one also monitors `tcp_sendmsg` and `tcp_cleanup_rbuf`, but instead of showing the number
209
+of calls, it demonstrates the number of bytes sent and received.
210
211
#### TCP retransmit
212
@@ -211,13 +215,13 @@ receiver did not return the packet during the expected time.
215
216
#### UDP functions
217
214
-This chart demonstrates calls to functions `udp_sendmsg` and `udp_recvmsg`, which are responsible for sending &
218
+This chart demonstrates calls to functions `udp_sendmsg` and `udp_recvmsg`, which are responsible for sending &
219
receiving data for connections when the `UDP` protocol is used.
220
221
#### UDP bandwidth
222
219
-Like the previous chart, this one also monitors `udp_sendmsg` and `udp_recvmsg`, but instead of showing the
220
-number of calls, it monitors the number of bytes sent and received.
223
+Like the previous chart, this one also monitors `udp_sendmsg` and `udp_recvmsg`, but instead of showing the number of
224
+calls, it monitors the number of bytes sent and received.
225
226
## Configuration
227
@@ -256,43 +260,20 @@ By default, this plugin uses the `entry` mode. Changing this mode can create sig
260
system, but also offer valuable information if you are developing or debugging software. The `ebpf load mode` option
261
accepts the following values:
262
259
-- `entry`: This is the default mode. In this mode, the eBPF collector only monitors calls for the functions described
260
- in the sections above, and does not show charts related to errors.
261
-- `return`: In the `return` mode, the eBPF collector monitors the same kernel functions as `entry`, but also creates
262
- new charts for the return of these functions, such as errors. Monitoring function returns can help in debugging
263
- software, such as failing to close file descriptors or creating zombie processes.
264
-- `update every`: Number of seconds used for eBPF to send data for Netdata.
265
-- `pid table size`: Defines the maximum number of PIDs stored inside the application hash table.
266
-
263
+- `entry`: This is the default mode. In this mode, the eBPF collector only monitors calls for the functions described in
264
+ the sections above, and does not show charts related to errors.
265
+- `return`: In the `return` mode, the eBPF collector monitors the same kernel functions as `entry`, but also creates new
266
+ charts for the return of these functions, such as errors. Monitoring function returns can help in debugging software,
267
+ such as failing to close file descriptors or creating zombie processes.
268
+- `update every`: Number of seconds used for eBPF to send data for Netdata.
269
+- `pid table size`: Defines the maximum number of PIDs stored inside the application hash table.
270
+
271
#### Integration with `apps.plugin`
272
273
The eBPF collector also creates charts for each running application through an integration with the
274
[`apps.plugin`](/collectors/apps.plugin/README.md). This integration helps you understand how specific applications
275
interact with the Linux kernel.
276
273
-When the integration is enabled, your dashboard will also show the following charts using low-level Linux metrics:
274
-
275
-- eBPF file
276
- - Number of calls to open files. (`apps.file_open`)
277
- - Number of files closed. (`apps.file_closed`)
278
- - Number of calls to open files that returned errors.
279
- - Number of calls to close files that returned errors.
280
-- eBPF syscall
281
- - Number of calls to delete files. (`apps.file_deleted`)
282
- - Number of calls to `vfs_write`. (`apps.vfs_write_call`)
283
- - Number of calls to `vfs_read`. (`apps.vfs_read_call`)
284
- - Number of bytes written with `vfs_write`. (`apps.vfs_write_bytes`)
285
- - Number of bytes read with `vfs_read`. (`apps.vfs_read_bytes`)
286
- - Number of calls to write a file that returned errors.
287
- - Number of calls to read a file that returned errors.
288
-- eBPF process
289
- - Number of process created with `do_fork`. (`apps.process_create`)
290
- - Number of threads created with `do_fork` or `__x86_64_sys_clone`, depending on your system's kernel version. (`apps.thread_create`)
291
- - Number of times that a process called `do_exit`. (`apps.task_close`)
292
-- eBPF net
293
- - Number of bytes sent. (`apps.bandwidth_sent`)
294
- - Number of bytes received. (`apps.bandwidth_recv`)
295
-
277
If you want to _disable_ the integration with `apps.plugin` along with the above charts, change the setting `apps` to
278
`no`.
279
@@ -301,20 +282,19 @@ If you want to _disable_ the integration with `apps.plugin` along with the above
282
apps = yes
283
```
284
304
-When the integration is enabled, eBPF collector allocates memory for each process running. The total
305
- allocated memory has direct relationship with the kernel version. When the eBPF plugin is running on kernels newer than `4.15`,
306
- it uses per-cpu maps to speed up the update of hash tables. This also implies storing data for the same PID
307
- for each processor it runs.
285
+When the integration is enabled, eBPF collector allocates memory for each process running. The total allocated memory
286
+has direct relationship with the kernel version. When the eBPF plugin is running on kernels newer than `4.15`, it uses
287
+per-cpu maps to speed up the update of hash tables. This also implies storing data for the same PID for each processor
288
+it runs.
289
309
-### Integration with `cgroups.plugin`
290
+#### Integration with `cgroups.plugin`
291
292
The eBPF collector also creates charts for each cgroup through an integration with the
293
[`cgroups.plugin`](/collectors/cgroups.plugin/README.md). This integration helps you understand how a specific cgroup
294
interacts with the Linux kernel.
295
315
-The integration with `cgroups.plugin` is disabled by default to avoid creating overhead on your system.
316
-If you want to _enable_ the integration with `cgroups.plugin`, change the `cgroups`setting to
317
-`yes`.
296
+The integration with `cgroups.plugin` is disabled by default to avoid creating overhead on your system. If you want to
297
+_enable_ the integration with `cgroups.plugin`, change the `cgroups` setting to `yes`.
298
299
```conf
300
[global]
@@ -322,46 +302,107 @@ If you want to _enable_ the integration with `cgroups.plugin`, change the `cgrou
302
```
303
304
If you do not need to monitor specific metrics for your `cgroups`, you can enable `cgroups` inside
325
-`ebpf.d.conf`, and then disable the plugin for a specific `thread` by following the steps in the
326
-['Configuration` section](docs/agent/collectors/ebpf.plugin#configuration)
327
-
328
-#### `[ebpf programs]`
305
+`ebpf.d.conf`, and then disable the plugin for a specific `thread` by following the steps in the
306
+[Configuration](#configuration) section.
307
+
308
+#### Integration Dashboard Elements
309
+
310
+When an integration is enabled, your dashboard will also show the following cgroups and apps charts using low-level
311
+Linux metrics:
312
+
313
+> Note: The parenthetical accompanying each bulleted item provides the chart name.
314
+
315
+- mem
316
+ - Number of processes killed due out of memory. (`oomkills`)
317
+- process
318
+ - Number of processes created with `do_fork`. (`process_create`)
319
+ - Number of threads created with `do_fork` or `clone (2)`, depending on your system's kernel
320
+ version. (`thread_create`)
321
+ - Number of times that a process called `do_exit`. (`task_exit`)
322
+ - Number of times that a process called `release_task`. (`task_close`)
323
+ - Number of times that an error happened to create thread or process. (`task_error`)
324
+- swap
325
+ - Number of calls to `swap_readpage`. (`swap_read_call`)
326
+ - Number of calls to `swap_writepage`. (`swap_write_call`)
327
+- network
328
+ - Number of bytes sent. (`total_bandwidth_sent`)
329
+ - Number of bytes received. (`total_bandwidth_recv`)
330
+ - Number of calls to `tcp_sendmsg`. (`bandwidth_tcp_send`)
331
+ - Number of calls to `tcp_cleanup_rbuf`. (`bandwidth_tcp_recv`)
332
+ - Number of calls to `tcp_retransmit_skb`. (`bandwidth_tcp_retransmit`)
333
+ - Number of calls to `udp_sendmsg`. (`bandwidth_udp_send`)
334
+ - Number of calls to `udp_recvmsg`. (`bandwidth_udp_recv`)
335
+- file access
336
+ - Number of calls to open files. (`file_open`)
337
+ - Number of calls to open files that returned errors. (`open_error`)
338
+ - Number of files closed. (`file_closed`)
339
+ - Number of calls to close files that returned errors. (`file_error_closed`)
340
+- vfs
341
+ - Number of calls to `vfs_unlink`. (`file_deleted`)
342
+ - Number of calls to `vfs_write`. (`vfs_write_call`)
343
+ - Number of calls to write a file that returned errors. (`vfs_write_error`)
344
+ - Number of calls to `vfs_read`. (`vfs_read_call`)
345
+ - Number of bytes written with `vfs_write`. (`vfs_write_bytes`)
346
+ - Number of bytes read with `vfs_read`. (`vfs_read_bytes`)
347
+ - Number of calls to read a file that returned errors. (`vfs_read_error`)
348
+ - Number of calls to `vfs_fsync`. (`vfs_fsync`)
349
+ - Number of calls to sync file that returned errors. (`vfs_fsync_error`)
350
+ - Number of calls to `vfs_open`. (`vfs_open`)
351
+ - Number of calls to open file that returned errors. (`vfs_open_error`)
352
+ - Number of calls to `vfs_create`. (`vfs_create`)
353
+ - Number of calls to open file that returned errors. (`vfs_create_error`)
354
+- page cache
355
+ - Ratio of pages accessed. (`cachestat_ratio`)
356
+ - Number of modified pages ("dirty"). (`cachestat_dirties`)
357
+ - Number of accessed pages. (`cachestat_hits`)
358
+ - Number of pages brought from disk. (`cachestat_misses`)
359
+- directory cache
360
+ - Ratio of files available in directory cache. (`dc_hit_ratio`)
361
+ - Number of files acessed. (`dc_reference`)
362
+ - Number of files acessed that were not in cache. (`dc_not_cache`)
363
+ - Number of files not found. (`dc_not_found`)
364
+- ipc shm
365
+ - Number of calls to `shm_get`. (`shmget_call`)
366
+ - Number of calls to `shm_at`. (`shmat_call`)
367
+ - Number of calls to `shm_dt`. (`shmdt_call`)
368
+ - Number of calls to `shm_ctl`. (`shmctl_call`)
369
+
370
+### `[ebpf programs]`
371
372
The eBPF collector enables and runs the following eBPF programs by default:
373
332
-- `fd` : This eBPF program creates charts that show information about calls to open files.
333
-- `mount`: This eBPF program creates charts that show calls to syscalls mount(2) and umount(2).
334
-- `shm`: This eBPF program creates charts that show calls to syscalls
335
- shmget(2), shmat(2), shmdt(2) and shmctl(2).
336
-- `sync`: Montitor calls to syscalls sync(2), fsync(2), fdatasync(2), syncfs(2), msync(2), and sync_file_range(2).
337
-- `network viewer`: This eBPF program creates charts with information about `TCP` and `UDP` functions, including the
338
- bandwidth consumed by each.
339
-- `vfs`: This eBPF program creates charts that show information about VFS (Virtual File System) functions.
340
-- `process`: This eBPF program creates charts that show information about process life.
341
- When in `return` mode, it also creates charts showing errors when these operations are executed.
342
-- `hardirq`: This eBPF program creates charts that show information about
343
- time spent servicing individual hardware interrupt requests (hard IRQs).
344
-- `softirq`: This eBPF program creates charts that show information about
345
- time spent servicing individual software interrupt requests (soft IRQs).
346
-- `oomkill`: This eBPF program creates a chart that shows OOM kills for all
347
- applications recognized via the `apps.plugin` integration. Note that this
348
- program will show application charts regardless of whether apps integration
349
- is turned on or off.
374
+- `fd` : This eBPF program creates charts that show information about calls to open files.
375
+- `mount`: This eBPF program creates charts that show calls to syscalls mount(2) and umount(2).
376
+- `shm`: This eBPF program creates charts that show calls to syscalls shmget(2), shmat(2), shmdt(2) and shmctl(2).
377
+- `sync`: Montitor calls to syscalls sync(2), fsync(2), fdatasync(2), syncfs(2), msync(2), and sync_file_range(2).
378
+- `network viewer`: This eBPF program creates charts with information about `TCP` and `UDP` functions, including the
379
+ bandwidth consumed by each.
380
+- `vfs`: This eBPF program creates charts that show information about VFS (Virtual File System) functions.
381
+- `process`: This eBPF program creates charts that show information about process life. When in `return` mode, it also
382
+ creates charts showing errors when these operations are executed.
383
+- `hardirq`: This eBPF program creates charts that show information about time spent servicing individual hardware
384
+ interrupt requests (hard IRQs).
385
+- `softirq`: This eBPF program creates charts that show information about time spent servicing individual software
386
+ interrupt requests (soft IRQs).
387
+- `oomkill`: This eBPF program creates a chart that shows OOM kills for all applications recognized via
388
+ the `apps.plugin` integration. Note that this program will show application charts regardless of whether apps
389
+ integration is turned on or off.
390
391
You can also enable the following eBPF programs:
352
-- `cachestat`: Netdata's eBPF data collector creates charts about the memory page cache. When the integration with
353
- [`apps.plugin`](/collectors/apps.plugin/README.md) is enabled, this collector creates charts for the whole host _and_
354
- for each application.
355
-- `dcstat` : This eBPF program creates charts that show information about file access using directory cache. It appends
356
- `kprobes` for `lookup_fast()` and `d_lookup()` to identify if files are inside directory cache, outside and
357
- files are not found.
358
-- `disk` : This eBPF program creates charts that show information about disk latency independent of filesystem.
359
-- `filesystem` : This eBPF program creates charts that show information about some filesystem latency.
360
-- `swap` : This eBPF program creates charts that show information about swap access.
392
+
393
+- `cachestat`: Netdata's eBPF data collector creates charts about the memory page cache. When the integration with
394
+ [`apps.plugin`](/collectors/apps.plugin/README.md) is enabled, this collector creates charts for the whole host _and_
395
+ for each application.
396
+- `dcstat` : This eBPF program creates charts that show information about file access using directory cache. It appends
397
+ `kprobes` for `lookup_fast()` and `d_lookup()` to identify if files are inside directory cache, outside and files are
398
+ not found.
399
+- `disk` : This eBPF program creates charts that show information about disk latency independent of filesystem.
400
+- `filesystem` : This eBPF program creates charts that show information about some filesystem latency.
401
+- `swap` : This eBPF program creates charts that show information about swap access.
402
403
## Thread configuration
404
364
-You can configure each thread of the eBPF data collector by editing either the `cachestat.conf`, `process.conf`,
405
+You can configure each thread of the eBPF data collector by editing either the `cachestat.conf`, `process.conf`,
406
or `network.conf` files. Use [`edit-config`](/docs/configure/nodes.md) from your Netdata config directory:
407
408
```bash
@@ -380,8 +421,8 @@ The following configuration files are available:
421
- `filesystem.conf`: Configuration for the `filesystem` thread.
422
- `hardirq.conf`: Configuration for the `hardirq` thread.
423
- `process.conf`: Configuration for the `process` thread.
383
-- `network.conf`: Configuration for the `network viewer` thread. This config file overwrites the global options and
384
- also lets you specify which network the eBPF collector monitors.
424
+- `network.conf`: Configuration for the `network viewer` thread. This config file overwrites the global options and also
425
+ lets you specify which network the eBPF collector monitors.
426
- `softirq.conf`: Configuration for the `softirq` thread.
427
- `sync.conf`: Configuration for the `sync` thread.
428
- `vfs.conf`: Configuration for the `vfs` thread.
@@ -393,7 +434,7 @@ are divided in the following sections:
434
435
#### `[network connections]`
436
396
-You can configure the information shown on `outbound` and `inbound` charts with the settings in this section.
437
+You can configure the information shown on `outbound` and `inbound` charts with the settings in this section.
438
439
```conf
440
[network connections]
@@ -406,23 +447,23 @@ You can configure the information shown on `outbound` and `inbound` charts with
447
448
When you define a `ports` setting, Netdata will collect network metrics for that specific port. For example, if you
449
write `ports = 19999`, Netdata will collect only connections for itself. The `hostnames` setting accepts
409
-[simple patterns](/libnetdata/simple_pattern/README.md). The `ports`, and `ips` settings accept negation (`!`) to
410
- deny specific values or asterisk alone to define all values.
450
+[simple patterns](/libnetdata/simple_pattern/README.md). The `ports`, and `ips` settings accept negation (`!`) to deny
451
+specific values or asterisk alone to define all values.
452
453
In the above example, Netdata will collect metrics for all ports between 1 and 443, with the exception of 53 (domain)
454
and 145.
455
456
The following options are available:
457
417
-- `ports`: Define the destination ports for Netdata to monitor.
418
-- `hostnames`: The list of hostnames that can be resolved to an IP address.
419
-- `ips`: The IP or range of IPs that you want to monitor. You can use IPv4 or IPv6 addresses, use dashes to define a
420
- range of IPs, or use CIDR values. The default behavior is to only collect data for private IP addresses, but this
421
- can be changed with the `ips` setting.
422
-
423
-By default, Netdata displays up to 500 dimensions on network connection charts. If there are more possible dimensions,
424
-they will be bundled into the `other` dimension. You can increase the number of shown dimensions by changing the `maximum
425
-dimensions` setting.
458
+- `ports`: Define the destination ports for Netdata to monitor.
459
+- `hostnames`: The list of hostnames that can be resolved to an IP address.
460
+- `ips`: The IP or range of IPs that you want to monitor. You can use IPv4 or IPv6 addresses, use dashes to define a
461
+ range of IPs, or use CIDR values. The default behavior is to only collect data for private IP addresses, but this can
462
+ be changed with the `ips` setting.
463
+
464
+By default, Netdata displays up to 500 dimensions on network connection charts. If there are more possible dimensions,
465
+they will be bundled into the `other` dimension. You can increase the number of shown dimensions by changing
466
+the `maximum dimensions` setting.
467
468
The dimensions for the traffic charts are created using the destination IPs of the sockets by default. This can be
469
changed setting `resolve hostname ips = yes` and restarting Netdata, after this Netdata will create dimensions using
@@ -430,8 +471,9 @@ the `hostnames` every time that is possible to resolve IPs to their hostnames.
471
472
#### `[service name]`
473
433
-Netdata uses the list of services in `/etc/services` to plot network connection charts. If this file does not contain the
434
-name for a particular service you use in your infrastructure, you will need to add it to the `[service name]` section.
474
+Netdata uses the list of services in `/etc/services` to plot network connection charts. If this file does not contain
475
+the name for a particular service you use in your infrastructure, you will need to add it to the `[service name]`
476
+section.
477
478
For example, Netdata's default port (`19999`) is not listed in `/etc/services`. To associate that port with the Netdata
479
service in network connection charts, and thus see the name of the service instead of its port, define it:
@@ -443,7 +485,7 @@ service in network connection charts, and thus see the name of the service inste
485
486
### Sync configuration
487
446
-The sync configuration has specific options to disable monitoring for syscalls, as default option all syscalls are
488
+The sync configuration has specific options to disable monitoring for syscalls, as default option all syscalls are
489
monitored.
490
491
```conf
@@ -458,8 +500,8 @@ monitored.
500
501
### Filesystem configuration
502
461
-The filesystem configuration has specific options to disable monitoring for filesystems, by default all
462
-filesystems are monitored.
503
+The filesystem configuration has specific options to disable monitoring for filesystems, by default all filesystems are
504
+monitored.
505
506
```conf
507
[filesystem]
@@ -502,17 +544,18 @@ curl -sSL https://raw.githubusercontent.com/netdata/kernel-collector/master/tool
544
545
If this script returns no output, your system is ready to compile and run the eBPF collector.
546
505
-If you see a warning about a missing kernel configuration (`KPROBES KPROBES_ON_FTRACE HAVE_KPROBES BPF BPF_SYSCALL
506
-BPF_JIT`), you will need to recompile your kernel to support this configuration. The process of recompiling Linux
507
-kernels varies based on your distribution and version. Read the documentation for your system's distribution to learn
508
-more about the specific workflow for recompiling the kernel, ensuring that you set all the necessary
547
+If you see a warning about a missing kernel
548
+configuration (`KPROBES KPROBES_ON_FTRACE HAVE_KPROBES BPF BPF_SYSCALL BPF_JIT`), you will need to recompile your kernel
549
+to support this configuration. The process of recompiling Linux kernels varies based on your distribution and version.
550
+Read the documentation for your system's distribution to learn more about the specific workflow for recompiling the
551
+kernel, ensuring that you set all the necessary
552
510
-- [Ubuntu](https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel)
511
-- [Debian](https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official)
512
-- [Fedora](https://fedoraproject.org/wiki/Building_a_custom_kernel)
513
-- [CentOS](https://wiki.centos.org/HowTos/Custom_Kernel)
514
-- [Arch Linux](https://wiki.archlinux.org/index.php/Kernel/Traditional_compilation)
515
-- [Slackware](https://docs.slackware.com/howtos:slackware_admin:kernelbuilding)
553
+- [Ubuntu](https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel)
554
+- [Debian](https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official)
555
+- [Fedora](https://fedoraproject.org/wiki/Building_a_custom_kernel)
556
+- [CentOS](https://wiki.centos.org/HowTos/Custom_Kernel)
557
+- [Arch Linux](https://wiki.archlinux.org/index.php/Kernel/Traditional_compilation)
558
+- [Slackware](https://docs.slackware.com/howtos:slackware_admin:kernelbuilding)
559
560
### Mount `debugfs` and `tracefs`
561
@@ -525,19 +568,20 @@ sudo mount -t tracefs nodev /sys/kernel/tracing
568
```
569
570
If they are already mounted, you will see an error. You can also configure your system's `/etc/fstab` configuration to
528
-mount these filesystems on startup. More information can be found in the [ftrace documentation](https://www.kernel.org/doc/Documentation/trace/ftrace.txt).
571
+mount these filesystems on startup. More information can be found in
572
+the [ftrace documentation](https://www.kernel.org/doc/Documentation/trace/ftrace.txt).
573
574
## Performance
575
532
-eBPF monitoring is complex and produces a large volume of metrics. We've discovered scenarios where the eBPF plugin
576
+eBPF monitoring is complex and produces a large volume of metrics. We've discovered scenarios where the eBPF plugin
577
significantly increases kernel memory usage by several hundred MB.
578
535
-If your node is experiencing high memory usage and there is no obvious culprit to be found in the `apps.mem` chart,
536
-consider testing for high kernel memory usage by [disabling eBPF monitoring](#configuration). Next,
537
-[restart Netdata](/docs/configure/start-stop-restart.md) with `sudo systemctl restart netdata` to see if system
538
-memory usage (see the `system.ram` chart) has dropped significantly.
579
+If your node is experiencing high memory usage and there is no obvious culprit to be found in the `apps.mem` chart,
580
+consider testing for high kernel memory usage by [disabling eBPF monitoring](#configuration). Next,
581
+[restart Netdata](/docs/configure/start-stop-restart.md) with `sudo systemctl restart netdata` to see if system memory
582
+usage (see the `system.ram` chart) has dropped significantly.
583
540
-Beginning with `v1.31`, kernel memory usage is configurable via the [`pid table size` setting](#ebpf-load-mode)
584
+Beginning with `v1.31`, kernel memory usage is configurable via the [`pid table size` setting](#ebpf-load-mode)
585
in `ebpf.conf`.
586
587
## SELinux