From 38bbb09a3eb2bdff39250d059121bb20e9dcb224 Mon Sep 17 00:00:00 2001 From: zhanghan2021 Date: Wed, 21 Jun 2023 16:59:18 +0800 Subject: [PATCH] Add the function of printing probe data in the loads module --- observation/src/loads/loads.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/observation/src/loads/loads.c b/observation/src/loads/loads.c index 37ecf841..8cf142dc 100644 --- a/observation/src/loads/loads.c +++ b/observation/src/loads/loads.c @@ -100,4 +100,37 @@ static int open_and_attach_perf_event(struct bpf_program *prog, struct bpf_link } return 0; +} + +static int libbpf_print_fn(enum libbpf_print_level level, const char *format, + va_list args) +{ + if (level == LIBBPF_DEBUG && !env.verbose) + return 0; + return vfprintf(stderr, format, args); +} + +static void sig_handler(int sig) +{ + exiting = 1; +} + +static void print_loads(struct loads_bpf__bss *bss) +{ + __u64 load1 = __atomic_load_n(&bss->loads[0], __ATOMIC_RELAXED); + __u64 load5 = __atomic_load_n(&bss->loads[1], __ATOMIC_RELAXED); + __u64 load15 = __atomic_load_n(&bss->loads[2], __ATOMIC_RELAXED); + + if (env.timestamp) + { + char ts[32]; + + strftime_now(ts, sizeof(ts), "%H:%M:%S"); + printf("%s ", ts); + } + + printf("load averages: %lld.%03lld %lld.%03lld %lld.%03lld\n", + load1 >> 11, ((load1 & ((1 << 11) - 1)) * 1000) >> 11, + load5 >> 11, ((load5 & ((1 << 11) - 1)) * 1000) >> 11, + load15 >> 11, ((load15 & ((1 << 11) - 1)) * 1000) >> 11); } \ No newline at end of file -- Gitee