master
h 145 lines 5.39 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_EBPF_VFS_H
4 #define NETDATA_EBPF_VFS_H 1
5
6 // Module name & description
7 #define NETDATA_EBPF_MODULE_NAME_VFS "vfs"
8 #define NETDATA_EBPF_VFS_MODULE_DESC \
9 "Monitor VFS (Virtual File System) functions. This thread is integrated with apps and cgroup."
10
11 #define NETDATA_DIRECTORY_VFS_CONFIG_FILE "vfs.conf"
12
13 // Global chart name
14 #define NETDATA_VFS_FILE_CLEAN_COUNT "vfs_deleted_objects"
15 #define NETDATA_VFS_FILE_IO_COUNT "vfs_io"
16 #define NETDATA_VFS_FILE_ERR_COUNT "vfs_io_error"
17 #define NETDATA_VFS_IO_FILE_BYTES "vfs_io_bytes"
18 #define NETDATA_VFS_FSYNC "vfs_fsync"
19 #define NETDATA_VFS_FSYNC_ERR "vfs_fsync_error"
20 #define NETDATA_VFS_OPEN "vfs_open"
21 #define NETDATA_VFS_OPEN_ERR "vfs_open_error"
22 #define NETDATA_VFS_CREATE "vfs_create"
23 #define NETDATA_VFS_CREATE_ERR "vfs_create_error"
24
25 // Charts created on Apps submenu
26 #define NETDATA_SYSCALL_APPS_FILE_DELETED "file_deleted"
27 #define NETDATA_SYSCALL_APPS_VFS_WRITE_CALLS "vfs_write_call"
28 #define NETDATA_SYSCALL_APPS_VFS_READ_CALLS "vfs_read_call"
29 #define NETDATA_SYSCALL_APPS_VFS_WRITE_BYTES "vfs_write_bytes"
30 #define NETDATA_SYSCALL_APPS_VFS_READ_BYTES "vfs_read_bytes"
31 #define NETDATA_SYSCALL_APPS_VFS_FSYNC "vfs_fsync"
32 #define NETDATA_SYSCALL_APPS_VFS_OPEN "vfs_open"
33 #define NETDATA_SYSCALL_APPS_VFS_CREATE "vfs_create"
34
35 #define NETDATA_SYSCALL_APPS_VFS_WRITE_CALLS_ERROR "vfs_write_error"
36 #define NETDATA_SYSCALL_APPS_VFS_READ_CALLS_ERROR "vfs_read_error"
37 #define NETDATA_SYSCALL_APPS_VFS_FSYNC_CALLS_ERROR "vfs_fsync_error"
38 #define NETDATA_SYSCALL_APPS_VFS_OPEN_CALLS_ERROR "vfs_open_error"
39 #define NETDATA_SYSCALL_APPS_VFS_CREATE_CALLS_ERROR "vfs_create_error"
40
41 // Group used on Dashboard
42 #define NETDATA_VFS_GROUP "vfs"
43
44 // Contexts
45 #define NETDATA_CGROUP_VFS_UNLINK_CONTEXT "cgroup.vfs_unlink"
46 #define NETDATA_CGROUP_VFS_WRITE_CONTEXT "cgroup.vfs_write"
47 #define NETDATA_CGROUP_VFS_WRITE_ERROR_CONTEXT "cgroup.vfs_write_error"
48 #define NETDATA_CGROUP_VFS_READ_CONTEXT "cgroup.vfs_read"
49 #define NETDATA_CGROUP_VFS_READ_ERROR_CONTEXT "cgroup.vfs_read_error"
50 #define NETDATA_CGROUP_VFS_WRITE_BYTES_CONTEXT "cgroup.vfs_write_bytes"
51 #define NETDATA_CGROUP_VFS_READ_BYTES_CONTEXT "cgroup.vfs_read_bytes"
52 #define NETDATA_CGROUP_VFS_CREATE_CONTEXT "cgroup.vfs_create"
53 #define NETDATA_CGROUP_VFS_CREATE_ERROR_CONTEXT "cgroup.vfs_create_error"
54 #define NETDATA_CGROUP_VFS_OPEN_CONTEXT "cgroup.vfs_open"
55 #define NETDATA_CGROUP_VFS_OPEN_ERROR_CONTEXT "cgroup.vfs_open_error"
56 #define NETDATA_CGROUP_VFS_FSYNC_CONTEXT "cgroup.vfs_fsync"
57 #define NETDATA_CGROUP_VFS_FSYNC_ERROR_CONTEXT "cgroup.vfs_fsync_error"
58
59 #define NETDATA_SYSTEMD_VFS_UNLINK_CONTEXT "systemd.service.vfs_unlink"
60 #define NETDATA_SYSTEMD_VFS_WRITE_CONTEXT "systemd.service.vfs_write"
61 #define NETDATA_SYSTEMD_VFS_WRITE_ERROR_CONTEXT "systemd.service.vfs_write_error"
62 #define NETDATA_SYSTEMD_VFS_READ_CONTEXT "systemd.service.vfs_read"
63 #define NETDATA_SYSTEMD_VFS_READ_ERROR_CONTEXT "systemd.service.vfs_read_error"
64 #define NETDATA_SYSTEMD_VFS_WRITE_BYTES_CONTEXT "systemd.service.vfs_write_bytes"
65 #define NETDATA_SYSTEMD_VFS_READ_BYTES_CONTEXT "systemd.service.vfs_read_bytes"
66 #define NETDATA_SYSTEMD_VFS_CREATE_CONTEXT "systemd.service.vfs_create"
67 #define NETDATA_SYSTEMD_VFS_CREATE_ERROR_CONTEXT "systemd.service.vfs_create_error"
68 #define NETDATA_SYSTEMD_VFS_OPEN_CONTEXT "systemd.service.vfs_open"
69 #define NETDATA_SYSTEMD_VFS_OPEN_ERROR_CONTEXT "systemd.service.vfs_open_error"
70 #define NETDATA_SYSTEMD_VFS_FSYNC_CONTEXT "systemd.service.vfs_fsync"
71 #define NETDATA_SYSTEMD_VFS_FSYNC_ERROR_CONTEXT "systemd.service.vfs_fsync_error"
72
73 // ARAL name
74 #define NETDATA_EBPF_VFS_ARAL_NAME "ebpf_vfs"
75
76 // dimension
77 #define EBPF_COMMON_UNITS_BYTES "bytes/s"
78
79 enum netdata_publish_vfs_list {
80 NETDATA_KEY_PUBLISH_VFS_UNLINK,
81 NETDATA_KEY_PUBLISH_VFS_READ,
82 NETDATA_KEY_PUBLISH_VFS_WRITE,
83 NETDATA_KEY_PUBLISH_VFS_FSYNC,
84 NETDATA_KEY_PUBLISH_VFS_OPEN,
85 NETDATA_KEY_PUBLISH_VFS_CREATE,
86
87 NETDATA_KEY_PUBLISH_VFS_END
88 };
89
90 enum vfs_counters {
91 NETDATA_KEY_CALLS_VFS_WRITE,
92 NETDATA_KEY_ERROR_VFS_WRITE,
93 NETDATA_KEY_BYTES_VFS_WRITE,
94
95 NETDATA_KEY_CALLS_VFS_WRITEV,
96 NETDATA_KEY_ERROR_VFS_WRITEV,
97 NETDATA_KEY_BYTES_VFS_WRITEV,
98
99 NETDATA_KEY_CALLS_VFS_READ,
100 NETDATA_KEY_ERROR_VFS_READ,
101 NETDATA_KEY_BYTES_VFS_READ,
102
103 NETDATA_KEY_CALLS_VFS_READV,
104 NETDATA_KEY_ERROR_VFS_READV,
105 NETDATA_KEY_BYTES_VFS_READV,
106
107 NETDATA_KEY_CALLS_VFS_UNLINK,
108 NETDATA_KEY_ERROR_VFS_UNLINK,
109
110 NETDATA_KEY_CALLS_VFS_FSYNC,
111 NETDATA_KEY_ERROR_VFS_FSYNC,
112
113 NETDATA_KEY_CALLS_VFS_OPEN,
114 NETDATA_KEY_ERROR_VFS_OPEN,
115
116 NETDATA_KEY_CALLS_VFS_CREATE,
117 NETDATA_KEY_ERROR_VFS_CREATE,
118
119 // Keep this as last and don't skip numbers as it is used as element counter
120 NETDATA_VFS_COUNTER
121 };
122
123 enum netdata_vfs_tables { NETDATA_VFS_PID, NETDATA_VFS_ALL, NETDATA_VFS_CTRL };
124
125 enum netdata_vfs_calls_name {
126 NETDATA_EBPF_VFS_WRITE,
127 NETDATA_EBPF_VFS_WRITEV,
128 NETDATA_EBPF_VFS_READ,
129 NETDATA_EBPF_VFS_READV,
130 NETDATA_EBPF_VFS_UNLINK,
131 NETDATA_EBPF_VFS_FSYNC,
132 NETDATA_EBPF_VFS_OPEN,
133 NETDATA_EBPF_VFS_CREATE,
134
135 NETDATA_VFS_END_LIST
136 };
137
138 void ebpf_vfs_thread(void *ptr);
139 void ebpf_vfs_create_apps_charts(struct ebpf_module *em, void *ptr);
140 void ebpf_vfs_release(netdata_publish_vfs_t *stat);
141 extern netdata_ebpf_targets_t vfs_targets[];
142
143 extern struct config vfs_config;
144
145 #endif /* NETDATA_EBPF_VFS_H */