12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- #ifndef NETDATA_SYS_FS_CGROUP_H
- #define NETDATA_SYS_FS_CGROUP_H 1
- #include "daemon/common.h"
- #if (TARGET_OS == OS_LINUX)
- #define NETDATA_PLUGIN_HOOK_LINUX_CGROUPS \
- { \
- .name = "PLUGIN[cgroups]", \
- .config_section = CONFIG_SECTION_PLUGINS, \
- .config_name = "cgroups", \
- .enabled = 1, \
- .thread = NULL, \
- .init_routine = NULL, \
- .start_routine = cgroups_main \
- },
- extern void *cgroups_main(void *ptr);
- #define CGROUP_OPTIONS_DISABLED_DUPLICATE 0x00000001
- #define CGROUP_OPTIONS_SYSTEM_SLICE_SERVICE 0x00000002
- #define CGROUP_OPTIONS_IS_UNIFIED 0x00000004
- typedef struct netdata_ebpf_cgroup_shm_header {
- int cgroup_root_count;
- int cgroup_max;
- int systemd_enabled;
- size_t body_length;
- } netdata_ebpf_cgroup_shm_header_t;
- #define CGROUP_EBPF_NAME_SHARED_LENGTH 256
- typedef struct netdata_ebpf_cgroup_shm_body {
- // Considering what is exposed in this link https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
- // this length is enough to store what we want.
- char name[CGROUP_EBPF_NAME_SHARED_LENGTH];
- uint32_t hash;
- uint32_t options;
- int enabled;
- char path[FILENAME_MAX + 1];
- } netdata_ebpf_cgroup_shm_body_t;
- typedef struct netdata_ebpf_cgroup_shm {
- netdata_ebpf_cgroup_shm_header_t *header;
- netdata_ebpf_cgroup_shm_body_t *body;
- } netdata_ebpf_cgroup_shm_t;
- #define NETDATA_SHARED_MEMORY_EBPF_CGROUP_NAME "netdata_shm_cgroup_ebpf"
- #define NETDATA_NAMED_SEMAPHORE_EBPF_CGROUP_NAME "/netdata_sem_cgroup_ebpf"
- #include "../proc.plugin/plugin_proc.h"
- #else // (TARGET_OS == OS_LINUX)
- #define NETDATA_PLUGIN_HOOK_LINUX_CGROUPS
- #endif // (TARGET_OS == OS_LINUX)
- extern char *parse_k8s_data(struct label **labels, char *data);
- #endif //NETDATA_SYS_FS_CGROUP_H
|