master
h 75 lines 2.58 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_EBPF_DCSTAT_H
4 #define NETDATA_EBPF_DCSTAT_H 1
5
6 #include "libbpf_api/ebpf.h"
7 #include "collectors/collectors-ipc/ebpf-ipc.h"
8
9 // Module name & description
10 #define NETDATA_EBPF_MODULE_NAME_DCSTAT "dcstat"
11 #define NETDATA_EBPF_DC_MODULE_DESC \
12 "Monitor file access using directory cache. This thread is integrated with apps and cgroup."
13
14 // charts
15 #define NETDATA_DC_HIT_CHART "dc_hit_ratio"
16 #define NETDATA_DC_REFERENCE_CHART "dc_reference"
17 #define NETDATA_DC_REQUEST_NOT_CACHE_CHART "dc_not_cache"
18 #define NETDATA_DC_REQUEST_NOT_FOUND_CHART "dc_not_found"
19
20 #define NETDATA_DIRECTORY_CACHE_SUBMENU "directory cache"
21
22 // configuration file
23 #define NETDATA_DIRECTORY_DCSTAT_CONFIG_FILE "dcstat.conf"
24
25 // Contexts
26 #define NETDATA_FS_DC_HIT_RATIO_CONTEXT "filesystem.dc_hit_ratio"
27 #define NETDATA_FS_DC_REFERENCE_CONTEXT "filesystem.dc_reference"
28
29 #define NETDATA_CGROUP_DC_HIT_RATIO_CONTEXT "cgroup.dc_ratio"
30 #define NETDATA_CGROUP_DC_REFERENCE_CONTEXT "cgroup.dc_reference"
31 #define NETDATA_CGROUP_DC_NOT_CACHE_CONTEXT "cgroup.dc_not_cache"
32 #define NETDATA_CGROUP_DC_NOT_FOUND_CONTEXT "cgroup.dc_not_found"
33
34 #define NETDATA_SYSTEMD_DC_HIT_RATIO_CONTEXT "systemd.service.dc_ratio"
35 #define NETDATA_SYSTEMD_DC_REFERENCE_CONTEXT "systemd.service.dc_reference"
36 #define NETDATA_SYSTEMD_DC_NOT_CACHE_CONTEXT "systemd.service.dc_not_cache"
37 #define NETDATA_SYSTEMD_DC_NOT_FOUND_CONTEXT "systemd.service.dc_not_found"
38
39 // ARAL name
40 #define NETDATA_EBPF_DCSTAT_ARAL_NAME "ebpf_dcstat"
41
42 // Unit
43 #define EBPF_COMMON_UNITS_FILES "files"
44
45 enum directory_cache_indexes {
46 NETDATA_DCSTAT_IDX_RATIO,
47 NETDATA_DCSTAT_IDX_REFERENCE,
48 NETDATA_DCSTAT_IDX_SLOW,
49 NETDATA_DCSTAT_IDX_MISS,
50
51 // Keep this as last and don't skip numbers as it is used as element counter
52 NETDATA_DCSTAT_IDX_END
53 };
54
55 enum directory_cache_tables { NETDATA_DCSTAT_GLOBAL_STATS, NETDATA_DCSTAT_PID_STATS, NETDATA_DCSTAT_CTRL };
56
57 // variables
58 enum directory_cache_counters {
59 NETDATA_KEY_DC_REFERENCE,
60 NETDATA_KEY_DC_SLOW,
61 NETDATA_KEY_DC_MISS,
62
63 // Keep this as last and don't skip numbers as it is used as element counter
64 NETDATA_DIRECTORY_CACHE_END
65 };
66
67 enum directory_cache_targets { NETDATA_DC_TARGET_LOOKUP_FAST, NETDATA_DC_TARGET_D_LOOKUP };
68
69 void ebpf_dcstat_thread(void *ptr);
70 void ebpf_dcstat_create_apps_charts(struct ebpf_module *em, void *ptr);
71 extern struct config dcstat_config;
72 extern netdata_ebpf_targets_t dc_targets[];
73 extern ebpf_local_maps_t dcstat_maps[];
74
75 #endif // NETDATA_EBPF_DCSTAT_H