ebpf_process.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_EBPF_PROCESS_H
  3. #define NETDATA_EBPF_PROCESS_H 1
  4. // Module name & description
  5. #define NETDATA_EBPF_MODULE_NAME_PROCESS "process"
  6. #define NETDATA_EBPF_MODULE_PROCESS_DESC "Monitor information about process life. This thread is integrated with apps and cgroup."
  7. // Groups used on Dashboard
  8. #define NETDATA_PROCESS_GROUP "processes"
  9. #define NETDATA_PROCESS_CGROUP_GROUP "processes (eBPF)"
  10. // Global chart name
  11. #define NETDATA_EXIT_SYSCALL "exit"
  12. #define NETDATA_PROCESS_SYSCALL "process_thread"
  13. #define NETDATA_PROCESS_ERROR_NAME "task_error"
  14. #define NETDATA_PROCESS_STATUS_NAME "process_status"
  15. // Charts created on Apps submenu
  16. #define NETDATA_SYSCALL_APPS_TASK_PROCESS "process_create"
  17. #define NETDATA_SYSCALL_APPS_TASK_THREAD "thread_create"
  18. #define NETDATA_SYSCALL_APPS_TASK_EXIT "task_exit"
  19. #define NETDATA_SYSCALL_APPS_TASK_CLOSE "task_close"
  20. #define NETDATA_SYSCALL_APPS_TASK_ERROR "task_error"
  21. // Process configuration name
  22. #define NETDATA_PROCESS_CONFIG_FILE "process.conf"
  23. // Contexts
  24. #define NETDATA_CGROUP_PROCESS_CREATE_CONTEXT "cgroup.process_create"
  25. #define NETDATA_CGROUP_THREAD_CREATE_CONTEXT "cgroup.thread_create"
  26. #define NETDATA_CGROUP_PROCESS_CLOSE_CONTEXT "cgroup.task_close"
  27. #define NETDATA_CGROUP_PROCESS_EXIT_CONTEXT "cgroup.task_exit"
  28. #define NETDATA_CGROUP_PROCESS_ERROR_CONTEXT "cgroup.task_error"
  29. #define NETDATA_SYSTEMD_PROCESS_CREATE_CONTEXT "services.process_create"
  30. #define NETDATA_SYSTEMD_THREAD_CREATE_CONTEXT "services.thread_create"
  31. #define NETDATA_SYSTEMD_PROCESS_CLOSE_CONTEXT "services.task_close"
  32. #define NETDATA_SYSTEMD_PROCESS_EXIT_CONTEXT "services.task_exit"
  33. #define NETDATA_SYSTEMD_PROCESS_ERROR_CONTEXT "services.task_error"
  34. #define NETDATA_EBPF_CGROUP_UPDATE 30
  35. enum netdata_ebpf_stats_order {
  36. NETDATA_EBPF_ORDER_STAT_THREADS = 140000,
  37. NETDATA_EBPF_ORDER_STAT_LIFE_TIME,
  38. NETDATA_EBPF_ORDER_STAT_LOAD_METHOD,
  39. NETDATA_EBPF_ORDER_STAT_KERNEL_MEMORY,
  40. NETDATA_EBPF_ORDER_STAT_HASH_TABLES,
  41. NETDATA_EBPF_ORDER_STAT_HASH_CORE
  42. };
  43. enum netdata_ebpf_load_mode_stats{
  44. NETDATA_EBPF_LOAD_STAT_LEGACY,
  45. NETDATA_EBPF_LOAD_STAT_CORE,
  46. NETDATA_EBPF_LOAD_STAT_END
  47. };
  48. enum netdata_ebpf_thread_per_core{
  49. NETDATA_EBPF_THREAD_PER_CORE,
  50. NETDATA_EBPF_THREAD_UNIQUE,
  51. NETDATA_EBPF_PER_CORE_END
  52. };
  53. // Index from kernel
  54. typedef enum ebpf_process_index {
  55. NETDATA_KEY_CALLS_DO_EXIT,
  56. NETDATA_KEY_CALLS_RELEASE_TASK,
  57. NETDATA_KEY_CALLS_DO_FORK,
  58. NETDATA_KEY_ERROR_DO_FORK,
  59. NETDATA_KEY_CALLS_SYS_CLONE,
  60. NETDATA_KEY_ERROR_SYS_CLONE,
  61. NETDATA_KEY_END_VECTOR
  62. } ebpf_process_index_t;
  63. // This enum acts as an index for publish vector.
  64. // Do not change the enum order because we use
  65. // different algorithms to make charts with incremental
  66. // values (the three initial positions) and absolute values
  67. // (the remaining charts).
  68. typedef enum netdata_publish_process {
  69. NETDATA_KEY_PUBLISH_PROCESS_EXIT,
  70. NETDATA_KEY_PUBLISH_PROCESS_RELEASE_TASK,
  71. NETDATA_KEY_PUBLISH_PROCESS_FORK,
  72. NETDATA_KEY_PUBLISH_PROCESS_CLONE,
  73. NETDATA_KEY_PUBLISH_PROCESS_END
  74. } netdata_publish_process_t;
  75. enum ebpf_process_tables {
  76. NETDATA_PROCESS_PID_TABLE,
  77. NETDATA_PROCESS_GLOBAL_TABLE,
  78. NETDATA_PROCESS_CTRL_TABLE
  79. };
  80. extern struct config process_config;
  81. #endif /* NETDATA_EBPF_PROCESS_H */