]> git.ipfire.org Git - telemetry.git/commitdiff
sources: Convert all sources to submit metrics the new way
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Oct 2025 17:17:02 +0000 (17:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Oct 2025 17:17:02 +0000 (17:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 files changed:
src/daemon/sources/conntrack.c
src/daemon/sources/contextswitches.c
src/daemon/sources/df.c
src/daemon/sources/ipfrag4.c
src/daemon/sources/loadavg.c
src/daemon/sources/memory.c
src/daemon/sources/pressure-cpu.c
src/daemon/sources/pressure-io.c
src/daemon/sources/pressure-memory.c
src/daemon/sources/processor.c
src/daemon/sources/softirq.c
src/daemon/sources/test-flapping.c
src/daemon/sources/unbound.c

index 19ddfdc9dd35ab83a5f5cdeee6fb4f0b06c9c489..8a8b470df8f9d547f26ad77fd8b73cf5bc5d22c9 100644 (file)
@@ -47,7 +47,10 @@ static int conntrack_heartbeat(td_ctx* ctx, td_source* source) {
        }
 
        // Submit the values
-       return td_source_submit(source, NULL, "%" PRIu64 ":%" PRIu64, count, max);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("count", &count),
+               VALUE_UINT64("max",   &max)
+       ));
 }
 
 const td_source_impl conntrack_source = {
index 8b3e86f048fc00429ec5b44a2633322059afba85..9053ce18e879705afda7867c6c9cf08c5d34f88b 100644 (file)
@@ -89,7 +89,7 @@ static int contextswitches_free(td_ctx* ctx) {
 }
 
 static int contextswitches_heartbeat(td_ctx* ctx, td_source* source) {
-       long long total = 0;
+       uint64_t total = 0;
        uint64_t count = 0;
        int fd = -EBADF;
        int r;
@@ -114,7 +114,9 @@ static int contextswitches_heartbeat(td_ctx* ctx, td_source* source) {
        }
 
        // Submit the values
-       return td_source_submit(source, NULL, "%lld", total);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("ctxt", &total)
+       ));
 }
 
 const td_source_impl contextswitches_source = {
index 5ccb2ad2f0760e18fd5b41c7ea571f0a79fb09d3..d57b5f92c0140132124998987351e0d2ee371ce0 100644 (file)
@@ -62,17 +62,19 @@ static int df_heartbeat(td_ctx* ctx, td_source* source) {
                // Determine the block size
                size_t block_size = (stat.f_frsize) ? stat.f_frsize : stat.f_bsize;
 
+               size_t bytes_used = (stat.f_blocks - stat.f_bfree) * block_size;
+               size_t bytes_free = stat.f_bfree * block_size;
+
+               size_t inodes_used = stat.f_files - stat.f_ffree;
+               size_t inodes_free = stat.f_ffree;
+
                // Submit stats
-               r = td_source_submit(source, mountpoint->mnt_dir, "%lu:%lu:%lu:%lu",
-                       // used
-                       (stat.f_blocks - stat.f_bfree) * block_size,
-                       // free
-                       stat.f_bfree * block_size,
-                       // inodes used
-                       stat.f_files - stat.f_ffree,
-                       // inodes free
-                       stat.f_ffree
-               );
+               r = td_source_submit_values(source, mountpoint->mnt_dir, VALUES(
+                       VALUE_UINT64("bytes_used",  &bytes_used),
+                       VALUE_UINT64("bytes_free",  &bytes_free),
+                       VALUE_UINT64("inodes_used", &inodes_used),
+                       VALUE_UINT64("inodes_free", &inodes_free)
+               ));
                if (r < 0)
                        goto ERROR;
        }
index e838b2f87cf80a8db99bb1854dd7ed5f9238c159..e1a3e3a444fd30c3292ff2b1b4c671751245361a 100644 (file)
@@ -85,9 +85,15 @@ static int ipfrag4_heartbeat(td_ctx* ctx, td_source* source) {
                goto ERROR;
 
        // Submit the values
-       r = td_source_submit(source, NULL,
-               "%lu:%lu:%lu:%lu:%lu:%lu:%lu", frags_oks, frags_fails, frags_creates,
-               reasm_timeout, reasm_reqds, reasm_oks, reasm_fails);
+       r = td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("ip4_frags_oks",     &frags_oks),
+               VALUE_UINT64("ip4_frags_fails",   &frags_fails),
+               VALUE_UINT64("ip4_frags_creates", &frags_creates),
+               VALUE_UINT64("ip4_reasm_timeout", &reasm_timeout),
+               VALUE_UINT64("ip4_reasm_reqds",   &reasm_reqds),
+               VALUE_UINT64("ip4_reasm_oks",     &reasm_oks),
+               VALUE_UINT64("ip4_reasm_fails",   &reasm_fails)
+       ));
 
 ERROR:
        if (proto)
index 377284aad7ea11d53d46ca67db3fa3fedf571047..c50623437882f573189767f7b2c12b8ed96cb25f 100644 (file)
@@ -34,8 +34,11 @@ static int loadavg_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL,
-               "%f:%f:%f", loadavg[0], loadavg[1], loadavg[2]);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_FLOAT("load1",  &loadavg[0]),
+               VALUE_FLOAT("load5",  &loadavg[1]),
+               VALUE_FLOAT("load15", &loadavg[2])
+       ));
 }
 
 const td_source_impl loadavg_source = {
index 73ece41dc5d6e31b0f5dc2333b504ed2c905c13d..85f663013659902c88a5023faf12a9136a5b7e0a 100644 (file)
@@ -33,13 +33,25 @@ static int memory_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL,
-               "%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu",
-               meminfo.mem_total, meminfo.mem_free, meminfo.mem_available,
-               meminfo.cached, meminfo.buffers, meminfo.active, meminfo.inactive,
-               meminfo.active_anon, meminfo.inactive_anon, meminfo.active_file,
-               meminfo.inactive_file, meminfo.shmem, meminfo.slab, meminfo.sreclaimable,
-               meminfo.sunreclaim, meminfo.swap_total, meminfo.swap_free);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("mem_total",      &meminfo.mem_total),
+               VALUE_UINT64("mem_free",       &meminfo.mem_free),
+               VALUE_UINT64("mem_available",  &meminfo.mem_available),
+               VALUE_UINT64("cached",         &meminfo.cached),
+               VALUE_UINT64("buffers",        &meminfo.buffers),
+               VALUE_UINT64("active",         &meminfo.active),
+               VALUE_UINT64("inactive",       &meminfo.inactive),
+               VALUE_UINT64("active_anon",    &meminfo.active_anon),
+               VALUE_UINT64("inactive_anon",  &meminfo.inactive_anon),
+               VALUE_UINT64("active_file",    &meminfo.active_file),
+               VALUE_UINT64("inactive_file",  &meminfo.inactive_file),
+               VALUE_UINT64("shmem",          &meminfo.shmem),
+               VALUE_UINT64("slab",           &meminfo.slab),
+               VALUE_UINT64("sreclaimable",   &meminfo.sreclaimable),
+               VALUE_UINT64("sunreclaimable", &meminfo.sunreclaim),
+               VALUE_UINT64("swap_total",     &meminfo.swap_total),
+               VALUE_UINT64("swap_free",      &meminfo.swap_free)
+       ));
 }
 
 const td_source_impl memory_source = {
index e6c49b80930cb35705437e44bc23de1ebc4f1deb..11443920cffd08639a452f4b1910596384249883 100644 (file)
@@ -33,9 +33,16 @@ static int pressure_cpu_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL, "%.2f:%.2f:%.2f:%lu:%.2f:%.2f:%.2f:%lu",
-               stats.some.avg10, stats.some.avg60, stats.some.avg300, stats.some.total,
-               stats.full.avg10, stats.full.avg60, stats.full.avg300, stats.full.total);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_FLOAT("some_avg10",  &stats.some.avg10),
+               VALUE_FLOAT("some_avg60",  &stats.some.avg60),
+               VALUE_FLOAT("some_avg300", &stats.some.avg300),
+               VALUE_UINT64("some_total", &stats.some.total),
+               VALUE_FLOAT("full_avg10",  &stats.full.avg10),
+               VALUE_FLOAT("full_avg60",  &stats.full.avg60),
+               VALUE_FLOAT("full_avg300", &stats.full.avg300),
+               VALUE_UINT64("full_total", &stats.full.total)
+       ));
 }
 
 const td_source_impl pressure_cpu_source = {
index 58f97300b74958fe020b587e54d790986c9d663c..1734d478ca9e0a86fdc03dc3eaddd93d34f6317a 100644 (file)
@@ -33,9 +33,16 @@ static int pressure_io_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL, "%.2f:%.2f:%.2f:%lu:%.2f:%.2f:%.2f:%lu",
-               stats.some.avg10, stats.some.avg60, stats.some.avg300, stats.some.total,
-               stats.full.avg10, stats.full.avg60, stats.full.avg300, stats.full.total);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_FLOAT("some_avg10",  &stats.some.avg10),
+               VALUE_FLOAT("some_avg60",  &stats.some.avg60),
+               VALUE_FLOAT("some_avg300", &stats.some.avg300),
+               VALUE_UINT64("some_total", &stats.some.total),
+               VALUE_FLOAT("full_avg10",  &stats.full.avg10),
+               VALUE_FLOAT("full_avg60",  &stats.full.avg60),
+               VALUE_FLOAT("full_avg300", &stats.full.avg300),
+               VALUE_UINT64("full_total", &stats.full.total)
+       ));
 }
 
 const td_source_impl pressure_io_source = {
index 5e3d233dad2ec31c7eab532893c9698b9932d005..f1f4a585f3d2b8d485008e3ad8eeaaf5a572227a 100644 (file)
@@ -33,9 +33,16 @@ static int pressure_memory_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL, "%.2f:%.2f:%.2f:%lu:%.2f:%.2f:%.2f:%lu",
-               stats.some.avg10, stats.some.avg60, stats.some.avg300, stats.some.total,
-               stats.full.avg10, stats.full.avg60, stats.full.avg300, stats.full.total);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_FLOAT("some_avg10",  &stats.some.avg10),
+               VALUE_FLOAT("some_avg60",  &stats.some.avg60),
+               VALUE_FLOAT("some_avg300", &stats.some.avg300),
+               VALUE_UINT64("some_total", &stats.some.total),
+               VALUE_FLOAT("full_avg10",  &stats.full.avg10),
+               VALUE_FLOAT("full_avg60",  &stats.full.avg60),
+               VALUE_FLOAT("full_avg300", &stats.full.avg300),
+               VALUE_UINT64("full_total", &stats.full.total)
+       ));
 }
 
 const td_source_impl pressure_memory_source = {
index 99a87d78dbc7d93e1f6e9d537fc31be7d95aa1a9..f5d7012b23c82a2893a0ceff576660a22cc866c3 100644 (file)
@@ -36,10 +36,18 @@ static int processor_heartbeat(td_ctx* ctx, td_source* source) {
                return r;
 
        // Submit the values
-       return td_source_submit(source, NULL,
-               "%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu:%lu",
-               usage[0], usage[1], usage[2], usage[3], usage[4],
-               usage[5], usage[6], usage[7], usage[8], usage[9]);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("user",       &usage[0]),
+               VALUE_UINT64("nice",       &usage[1]),
+               VALUE_UINT64("sys",        &usage[2]),
+               VALUE_UINT64("idle",       &usage[3]),
+               VALUE_UINT64("wait",       &usage[4]),
+               VALUE_UINT64("irq",        &usage[5]),
+               VALUE_UINT64("softirq",    &usage[6]),
+               VALUE_UINT64("steal",      &usage[7]),
+               VALUE_UINT64("guest",      &usage[8]),
+               VALUE_UINT64("guest_nice", &usage[9])
+       ));
 }
 
 const td_source_impl processor_source = {
index 37f480b66f29d6028701496135b0180dbb4f1f2f..ad8b2fc3617479b5c78f29abfa1e28f7367be966 100644 (file)
@@ -27,7 +27,9 @@ static int callback(td_ctx* ctx, const char* key, uint64_t value, void* data) {
        td_source* source = data;
 
        // Submit the data
-       return td_source_submit(source, key, "%lu", value);
+       return td_source_submit_values(source, key, VALUES(
+               VALUE_UINT64("interrupts", &value)
+       ));
 }
 
 static int softirq_heartbeat(td_ctx* ctx, td_source* source) {
index b87f879619ec60e4d0105c3837e3c05c3d5084ee..266627e5d5911380371f2be8ee4326e5d95a47b0 100644 (file)
@@ -40,7 +40,9 @@ static int test_flapping_heartbeat(td_ctx* ctx, td_source* source) {
                return -ENOSPC;
 
        // Otherwise return the random number
-       return td_source_submit(source, NULL, "%d", r);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_INT64("random", &r)
+       ));
 }
 
 const td_source_impl test_flapping_source = {
index 35626dba144b7953a08203e80262299ca5ce3260..fb3bc0540724229f3c1330c6425e8deead6b3a4d 100644 (file)
@@ -54,8 +54,15 @@ static int unbound_on_success(td_ctx* ctx,
                return r;
 
        // Submit values
-       return td_source_submit(source, NULL, "%lu:%lu:%lu:%lu:%lu:%lf:%lu",
-               queries, cachehits, cachemiss, prefetch, rec_replies, rec_time_avg, rec_time_median);
+       return td_source_submit_values(source, NULL, VALUES(
+               VALUE_UINT64("queries",         &queries),
+               VALUE_UINT64("cachehits",       &cachehits),
+               VALUE_UINT64("cachemiss",       &cachemiss),
+               VALUE_UINT64("prefetch",        &prefetch),
+               VALUE_UINT64("rec_replies",     &rec_replies),
+               VALUE_FLOAT ("rec_time_avg",    &rec_time_avg),
+               VALUE_UINT64("rec_time_median", &rec_time_median)
+       ));
 }
 
 static int unbound_heartbeat(td_ctx* ctx, td_source* source) {