master
h 75 lines 2.74 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_EBPF_CACHESTAT_H
4 #define NETDATA_EBPF_CACHESTAT_H 1
5
6 // Module name & description
7 #define NETDATA_EBPF_MODULE_NAME_CACHESTAT "cachestat"
8 #define NETDATA_EBPF_CACHESTAT_MODULE_DESC \
9 "Monitor Linux page cache internal functions. This thread is integrated with apps and cgroup."
10
11 // charts
12 #define NETDATA_CACHESTAT_HIT_RATIO_CHART "cachestat_ratio"
13 #define NETDATA_CACHESTAT_DIRTY_CHART "cachestat_dirties"
14 #define NETDATA_CACHESTAT_HIT_CHART "cachestat_hits"
15 #define NETDATA_CACHESTAT_MISSES_CHART "cachestat_misses"
16
17 #define NETDATA_CACHESTAT_SUBMENU "page_cache"
18
19 #define EBPF_CACHESTAT_UNITS_PAGE "pages/s"
20 #define EBPF_CACHESTAT_UNITS_HITS "hits/s"
21 #define EBPF_CACHESTAT_UNITS_MISSES "misses/s"
22
23 // configuration file
24 #define NETDATA_CACHESTAT_CONFIG_FILE "cachestat.conf"
25
26 // Contexts
27 #define NETDATA_MEM_CACHESTAT_HIT_RATIO_CONTEXT "mem.cachestat_ratio"
28 #define NETDATA_MEM_CACHESTAT_MODIFIED_CACHE_CONTEXT "mem.cachestat_dirties"
29 #define NETDATA_MEM_CACHESTAT_HIT_FILES_CONTEXT "mem.cachestat_hits"
30 #define NETDATA_MEM_CACHESTAT_MISS_FILES_CONTEXT "mem.cachestat_misses"
31
32 #define NETDATA_CGROUP_CACHESTAT_HIT_RATIO_CONTEXT "cgroup.cachestat_ratio"
33 #define NETDATA_CGROUP_CACHESTAT_MODIFIED_CACHE_CONTEXT "cgroup.cachestat_dirties"
34 #define NETDATA_CGROUP_CACHESTAT_HIT_FILES_CONTEXT "cgroup.cachestat_hits"
35 #define NETDATA_CGROUP_CACHESTAT_MISS_FILES_CONTEXT "cgroup.cachestat_misses"
36
37 #define NETDATA_SYSTEMD_CACHESTAT_HIT_RATIO_CONTEXT "systemd.service.cachestat_ratio"
38 #define NETDATA_SYSTEMD_CACHESTAT_MODIFIED_CACHE_CONTEXT "systemd.service.cachestat_dirties"
39 #define NETDATA_SYSTEMD_CACHESTAT_HIT_FILES_CONTEXT "systemd.service.cachestat_hits"
40 #define NETDATA_SYSTEMD_CACHESTAT_MISS_FILES_CONTEXT "systemd.service.cachestat_misses"
41
42 // variables
43 enum cachestat_counters {
44 NETDATA_KEY_CALLS_ADD_TO_PAGE_CACHE_LRU,
45 NETDATA_KEY_CALLS_MARK_PAGE_ACCESSED,
46 NETDATA_KEY_CALLS_ACCOUNT_PAGE_DIRTIED,
47 NETDATA_KEY_CALLS_MARK_BUFFER_DIRTY,
48
49 NETDATA_CACHESTAT_END
50 };
51
52 enum cachestat_account_dirty_pages {
53 NETDATA_CACHESTAT_ACCOUNT_PAGE_DIRTY,
54 NETDATA_CACHESTAT_SET_PAGE_DIRTY,
55 NETDATA_CACHESTAT_FOLIO_DIRTY,
56
57 NETDATA_CACHESTAT_ACCOUNT_DIRTY_END
58 };
59
60 enum cachestat_indexes {
61 NETDATA_CACHESTAT_IDX_RATIO,
62 NETDATA_CACHESTAT_IDX_DIRTY,
63 NETDATA_CACHESTAT_IDX_HIT,
64 NETDATA_CACHESTAT_IDX_MISS
65 };
66
67 enum cachestat_tables { NETDATA_CACHESTAT_GLOBAL_STATS, NETDATA_CACHESTAT_PID_STATS, NETDATA_CACHESTAT_CTRL };
68
69 void ebpf_cachestat_thread(void *ptr);
70
71 extern struct config cachestat_config;
72 extern netdata_ebpf_targets_t cachestat_targets[];
73 extern ebpf_local_maps_t cachestat_maps[];
74
75 #endif // NETDATA_EBPF_CACHESTAT_H