diff options
Diffstat (limited to 'collectors/ebpf.plugin/ebpf_process.h')
-rw-r--r-- | collectors/ebpf.plugin/ebpf_process.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/collectors/ebpf.plugin/ebpf_process.h b/collectors/ebpf.plugin/ebpf_process.h new file mode 100644 index 0000000..aa6ed66 --- /dev/null +++ b/collectors/ebpf.plugin/ebpf_process.h @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef NETDATA_EBPF_PROCESS_H +#define NETDATA_EBPF_PROCESS_H 1 + +// Groups used on Dashboard +#define NETDATA_FILE_GROUP "File" +#define NETDATA_VFS_GROUP "VFS" +#define NETDATA_PROCESS_GROUP "Process" + +// Internal constants +#define NETDATA_GLOBAL_VECTOR 24 +#define NETDATA_MAX_MONITOR_VECTOR 9 +#define NETDATA_VFS_ERRORS 3 + +// Map index +#define NETDATA_DEL_START 2 +#define NETDATA_IN_START_BYTE 3 +#define NETDATA_EXIT_START 5 +#define NETDATA_PROCESS_START 7 + +// Global chart name +#define NETDATA_FILE_OPEN_CLOSE_COUNT "file_descriptor" +#define NETDATA_FILE_OPEN_ERR_COUNT "file_error" +#define NETDATA_VFS_FILE_CLEAN_COUNT "deleted_objects" +#define NETDATA_VFS_FILE_IO_COUNT "io" +#define NETDATA_VFS_FILE_ERR_COUNT "io_error" + +#define NETDATA_EXIT_SYSCALL "exit" +#define NETDATA_PROCESS_SYSCALL "process_thread" +#define NETDATA_PROCESS_ERROR_NAME "task_error" +#define NETDATA_PROCESS_STATUS_NAME "process_status" + +#define NETDATA_VFS_IO_FILE_BYTES "io_bytes" + +// Charts created on Apps submenu +#define NETDATA_SYSCALL_APPS_FILE_OPEN "file_open" +#define NETDATA_SYSCALL_APPS_FILE_CLOSED "file_closed" +#define NETDATA_SYSCALL_APPS_FILE_DELETED "file_deleted" +#define NETDATA_SYSCALL_APPS_VFS_WRITE_CALLS "vfs_write_call" +#define NETDATA_SYSCALL_APPS_VFS_READ_CALLS "vfs_read_call" +#define NETDATA_SYSCALL_APPS_VFS_WRITE_BYTES "vfs_write_bytes" +#define NETDATA_SYSCALL_APPS_VFS_READ_BYTES "vfs_read_bytes" +#define NETDATA_SYSCALL_APPS_TASK_PROCESS "process_create" +#define NETDATA_SYSCALL_APPS_TASK_THREAD "thread_create" +#define NETDATA_SYSCALL_APPS_TASK_CLOSE "task_close" + +// Charts created on Apps submenu, if and only if, the return mode is active + +#define NETDATA_SYSCALL_APPS_FILE_OPEN_ERROR "file_open_error" +#define NETDATA_SYSCALL_APPS_FILE_CLOSE_ERROR "file_close_error" +#define NETDATA_SYSCALL_APPS_VFS_WRITE_CALLS_ERROR "vfs_write_error" +#define NETDATA_SYSCALL_APPS_VFS_READ_CALLS_ERROR "vfs_read_error" + +// Index from kernel +typedef enum ebpf_process_index { + NETDATA_KEY_CALLS_DO_SYS_OPEN, + NETDATA_KEY_ERROR_DO_SYS_OPEN, + + NETDATA_KEY_CALLS_VFS_WRITE, + NETDATA_KEY_ERROR_VFS_WRITE, + NETDATA_KEY_BYTES_VFS_WRITE, + + NETDATA_KEY_CALLS_VFS_READ, + NETDATA_KEY_ERROR_VFS_READ, + NETDATA_KEY_BYTES_VFS_READ, + + NETDATA_KEY_CALLS_VFS_UNLINK, + NETDATA_KEY_ERROR_VFS_UNLINK, + + NETDATA_KEY_CALLS_DO_EXIT, + + NETDATA_KEY_CALLS_RELEASE_TASK, + + NETDATA_KEY_CALLS_DO_FORK, + NETDATA_KEY_ERROR_DO_FORK, + + NETDATA_KEY_CALLS_CLOSE_FD, + NETDATA_KEY_ERROR_CLOSE_FD, + + NETDATA_KEY_CALLS_SYS_CLONE, + NETDATA_KEY_ERROR_SYS_CLONE, + + NETDATA_KEY_CALLS_VFS_WRITEV, + NETDATA_KEY_ERROR_VFS_WRITEV, + NETDATA_KEY_BYTES_VFS_WRITEV, + + NETDATA_KEY_CALLS_VFS_READV, + NETDATA_KEY_ERROR_VFS_READV, + NETDATA_KEY_BYTES_VFS_READV + +} ebpf_process_index_t; + +// This enum acts as an index for publish vector. +// Do not change the enum order because we use +// different algorithms to make charts with incremental +// values (the three initial positions) and absolute values +// (the remaining charts). +typedef enum netdata_publish_process { + NETDATA_KEY_PUBLISH_PROCESS_OPEN, + NETDATA_KEY_PUBLISH_PROCESS_CLOSE, + NETDATA_KEY_PUBLISH_PROCESS_UNLINK, + NETDATA_KEY_PUBLISH_PROCESS_READ, + NETDATA_KEY_PUBLISH_PROCESS_WRITE, + NETDATA_KEY_PUBLISH_PROCESS_EXIT, + NETDATA_KEY_PUBLISH_PROCESS_RELEASE_TASK, + NETDATA_KEY_PUBLISH_PROCESS_FORK, + NETDATA_KEY_PUBLISH_PROCESS_CLONE, + + NETDATA_KEY_PUBLISH_PROCESS_END +} netdata_publish_process_t; + +typedef struct ebpf_process_publish_apps { + // Number of calls during the last read + uint64_t call_sys_open; + uint64_t call_close_fd; + uint64_t call_vfs_unlink; + uint64_t call_read; + uint64_t call_write; + uint64_t call_do_exit; + uint64_t call_release_task; + uint64_t call_do_fork; + uint64_t call_sys_clone; + + // Number of errors during the last read + uint64_t ecall_sys_open; + uint64_t ecall_close_fd; + uint64_t ecall_vfs_unlink; + uint64_t ecall_read; + uint64_t ecall_write; + uint64_t ecall_do_fork; + uint64_t ecall_sys_clone; + + // Number of bytes during the last read + uint64_t bytes_written; + uint64_t bytes_read; +} ebpf_process_publish_apps_t; + +#endif /* NETDATA_EBPF_PROCESS_H */ |