From: Michael Tremer Date: Tue, 7 Oct 2025 08:11:24 +0000 (+0000) Subject: loadavg: Make the graph make sense X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1392afad58fa2cee35229c52e69d2bfa18b8237e;p=telemetry.git loadavg: Make the graph make sense Signed-off-by: Michael Tremer --- diff --git a/src/daemon/graphs/loadavg.c b/src/daemon/graphs/loadavg.c index ffc691b..7bf1534 100644 --- a/src/daemon/graphs/loadavg.c +++ b/src/daemon/graphs/loadavg.c @@ -42,22 +42,32 @@ static int loadavg_render(collecty_ctx* ctx, if (r < 0) return r; - // Add 15-minute load average - DRAW_AREA_WITH_LABEL(args, "load15", COLOR_LOAD15, _("15 Minutes")); + // Compute the difference + COMPUTE_CDEF(args, "delta5=load5,load15,-"); + COMPUTE_CDEF(args, "delta1=load1,load5,-"); + + // Compute the area where load1/load5 is larger than load5/load15 respectively + COMPUTE_CDEF(args, "delta5+=delta5,0,delta5,LIMIT"); + COMPUTE_CDEF(args, "delta1+=delta1,0,delta1,LIMIT"); + + // Draw the area backgrouns + DRAW_AREA_BACKGROUND(args, "load15", COLOR_LOAD15); + DRAW_AREA_BACKGROUND(args, "delta5+", COLOR_LOAD5, STACK); + DRAW_AREA_BACKGROUND(args, "delta1+", COLOR_LOAD1, STACK); + + DRAW_AREA_OUTLINE_WITH_LABEL(args, "load15", COLOR_LOAD15, _("15 Minutes")); PRINT_FLOAT(args, "load15_cur"); PRINT_FLOAT(args, "load15_avg"); PRINT_FLOAT(args, "load15_min"); PRINT_FLOAT(args, "load15_max", EOL); - // Add 5-minute load average - DRAW_AREA_WITH_LABEL(args, "load5", COLOR_LOAD5, _("5 Minutes")); + DRAW_AREA_OUTLINE_WITH_LABEL(args, "load5", COLOR_LOAD5, _("5 Minutes")); PRINT_FLOAT(args, "load5_cur"); PRINT_FLOAT(args, "load5_avg"); PRINT_FLOAT(args, "load5_min"); PRINT_FLOAT(args, "load5_max", EOL); - // Add 1-minute load average - DRAW_AREA_WITH_LABEL(args, "load1", COLOR_LOAD1, _("1 Minute")); + DRAW_AREA_OUTLINE_WITH_LABEL(args, "load1", COLOR_LOAD1, _("1 Minute")); PRINT_FLOAT(args, "load1_cur"); PRINT_FLOAT(args, "load1_avg"); PRINT_FLOAT(args, "load1_min");