From: Michael Tremer Date: Tue, 21 Oct 2025 10:41:20 +0000 (+0000) Subject: sources: Take VDEFs from the graphs macros X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5441c631aa5742ebf712e689ea0a5734eba58fb;p=telemetry.git sources: Take VDEFs from the graphs macros Signed-off-by: Michael Tremer --- diff --git a/src/daemon/source.c b/src/daemon/source.c index 450e238..27ae1e8 100644 --- a/src/daemon/source.c +++ b/src/daemon/source.c @@ -37,6 +37,7 @@ #include "string.h" #include "time.h" #include "util.h" +#include "graphs/graph.h" // When the daemon starts up, we should not collect everything straight away to // avoid any usage peaks. Therefore we will stagger all sources randomly across @@ -606,44 +607,16 @@ int td_source_commit(td_source* self, static int td_source_render_add_DEF(td_source* self, td_args* args, const char* path, const td_rrd_ds* ds, const char* object) { - char field[NAME_MAX]; int r; - // Append the object to the field name so that we can load multiple RRD of the same source - if (object) { - r = td_string_format(field, "%s_%s", ds->field, object); - if (r < 0) - return r; - } else { - r = td_string_set(field, ds->field); - if (r < 0) - return r; - } - // Add the classic DEF line - r = td_args_push(args, "DEF:%s=%s:%s:AVERAGE", field, path, ds->field); - if (r < 0) - return r; - - // Add VDEF for LAST - r = td_args_push(args, "VDEF:%s_cur=%s,LAST", field, field); + r = td_args_push(args, "DEF:" FIELD "=%s:%s:AVERAGE", + FIELD_AND_OBJECT(ds->field, object), path, ds->field); if (r < 0) return r; - // Add VDEF for AVERAGE - r = td_args_push(args, "VDEF:%s_avg=%s,AVERAGE", field, field); - if (r < 0) - return r; - - // Add VDEF for MAXIMUM - r = td_args_push(args, "VDEF:%s_max=%s,MAXIMUM", field, field); - if (r < 0) - return r; - - // Add VDEF for MINIMUM - r = td_args_push(args, "VDEF:%s_min=%s,MINIMUM", field, field); - if (r < 0) - return r; + // Add all values + VALUE_ALL(args, ds->field, object); return 0; }