ebpf_filesystem.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_EBPF_FILESYSTEM_H
  3. #define NETDATA_EBPF_FILESYSTEM_H 1
  4. // Module name & description
  5. #define NETDATA_EBPF_MODULE_NAME_FILESYSTEM "filesystem"
  6. #define NETDATA_EBPF_FS_MODULE_DESC "Monitor filesystem latency for: btrfs, ext4, nfs, xfs and zfs."
  7. #include "ebpf.h"
  8. #ifdef LIBBPF_MAJOR_VERSION
  9. #include "includes/filesystem.skel.h"
  10. #endif
  11. #define NETDATA_FS_MAX_DIST_NAME 64UL
  12. #define NETDATA_FILESYSTEM_CONFIG_NAME "filesystem"
  13. // Process configuration name
  14. #define NETDATA_FILESYSTEM_CONFIG_FILE "filesystem.conf"
  15. typedef struct netdata_fs_hist {
  16. uint32_t hist_id;
  17. uint32_t bin;
  18. } netdata_fs_hist_t;
  19. enum filesystem_limit {
  20. NETDATA_KEY_CALLS_READ = 24,
  21. NETDATA_KEY_CALLS_WRITE = 48,
  22. NETDATA_KEY_CALLS_OPEN = 72,
  23. NETDATA_KEY_CALLS_SYNC = 96
  24. };
  25. enum netdata_filesystem_flags {
  26. NETDATA_FILESYSTEM_FLAG_NO_PARTITION = 0,
  27. NETDATA_FILESYSTEM_LOAD_EBPF_PROGRAM = 1,
  28. NETDATA_FILESYSTEM_FLAG_HAS_PARTITION = 2,
  29. NETDATA_FILESYSTEM_FLAG_CHART_CREATED = 4,
  30. NETDATA_FILESYSTEM_FILL_ADDRESS_TABLE = 8,
  31. NETDATA_FILESYSTEM_REMOVE_CHARTS = 16,
  32. NETDATA_FILESYSTEM_ATTR_CHARTS = 32
  33. };
  34. enum netdata_filesystem_table {
  35. NETDATA_MAIN_FS_TABLE,
  36. NETDATA_ADDR_FS_TABLE
  37. };
  38. enum netdata_filesystem_localfs_idx {
  39. NETDATA_FS_LOCALFS_EXT4,
  40. NETDATA_FS_LOCALFS_XFS,
  41. NETDATA_FS_LOCALFS_NFS,
  42. NETDATA_FS_LOCALFS_ZFS,
  43. NETDATA_FS_LOCALFS_BTRFS,
  44. NETDATA_FS_LOCALFS_END,
  45. };
  46. void *ebpf_filesystem_thread(void *ptr);
  47. extern struct config fs_config;
  48. #endif /* NETDATA_EBPF_FILESYSTEM_H */