]> git.ipfire.org Git - telemetry.git/commitdiff
sources: Take VDEFs from the graphs macros
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Oct 2025 10:41:20 +0000 (10:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Oct 2025 10:41:20 +0000 (10:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/daemon/source.c

index 450e2387478431154793decf942248fdd01e866b..27ae1e8574526345c207ade2b998958ce5026486 100644 (file)
@@ -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;
 }