master
h 62 lines 1.9 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_EBPF_SYNC_H
4 #define NETDATA_EBPF_SYNC_H 1
5
6 #include "libbpf_api/ebpf.h"
7
8 // Module name & description
9 #define NETDATA_EBPF_MODULE_NAME_SYNC "sync"
10 #define NETDATA_EBPF_SYNC_MODULE_DESC \
11 "Monitor calls to syscalls sync(2), fsync(2), fdatasync(2), syncfs(2), msync(2), and sync_file_range(2)."
12
13 // charts
14 #define NETDATA_EBPF_SYNC_CHART "sync"
15 #define NETDATA_EBPF_MSYNC_CHART "memory_map"
16 #define NETDATA_EBPF_FILE_SYNC_CHART "file_sync"
17 #define NETDATA_EBPF_FILE_SEGMENT_CHART "file_segment"
18 #define NETDATA_EBPF_SYNC_SUBMENU "synchronization (eBPF)"
19
20 #define NETDATA_SYSCALLS_SYNC "sync"
21 #define NETDATA_SYSCALLS_SYNCFS "syncfs"
22 #define NETDATA_SYSCALLS_MSYNC "msync"
23 #define NETDATA_SYSCALLS_FSYNC "fsync"
24 #define NETDATA_SYSCALLS_FDATASYNC "fdatasync"
25 #define NETDATA_SYSCALLS_SYNC_FILE_RANGE "sync_file_range"
26
27 #define NETDATA_EBPF_SYNC_SLEEP_MS 800000ULL
28
29 #define NETDATA_EBPF_FILE_SYNC_CHART_ORDER 21300
30 #define NETDATA_EBPF_MSYNC_CHART_ORDER 21301
31 #define NETDATA_EBPF_SYNC_CHART_ORDER 21302
32 #define NETDATA_EBPF_FILE_SEGMENT_CHART_ORDER 21303
33
34 // configuration file
35 #define NETDATA_SYNC_CONFIG_FILE "sync.conf"
36 #define NETDATA_SYNC_CONFIG_NAME "syscalls"
37
38 typedef enum sync_syscalls_index {
39 NETDATA_SYNC_SYNC_IDX,
40 NETDATA_SYNC_SYNCFS_IDX,
41 NETDATA_SYNC_MSYNC_IDX,
42 NETDATA_SYNC_FSYNC_IDX,
43 NETDATA_SYNC_FDATASYNC_IDX,
44 NETDATA_SYNC_SYNC_FILE_RANGE_IDX,
45
46 NETDATA_SYNC_IDX_END
47 } sync_syscalls_index_t;
48
49 enum netdata_sync_charts {
50 NETDATA_SYNC_CALL,
51
52 // Keep this as last and don't skip numbers as it is used as element counter
53 NETDATA_SYNC_END
54 };
55
56 enum netdata_sync_table { NETDATA_SYNC_GLOBAL_TABLE };
57
58 void ebpf_sync_thread(void *ptr);
59 extern struct config sync_config;
60 extern netdata_ebpf_targets_t sync_targets[];
61
62 #endif /* NETDATA_EBPF_SYNC_H */