From: Michael Tremer Date: Wed, 22 Oct 2025 17:17:02 +0000 (+0000) Subject: sources: Convert all sources to submit metrics the new way X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5318d9ceb42029f51030cca6a6009cfe07be3482;p=telemetry.git sources: Convert all sources to submit metrics the new way Signed-off-by: Michael Tremer --- diff --git a/src/daemon/sources/conntrack.c b/src/daemon/sources/conntrack.c index 19ddfdc..8a8b470 100644 --- a/src/daemon/sources/conntrack.c +++ b/src/daemon/sources/conntrack.c @@ -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 = { diff --git a/src/daemon/sources/contextswitches.c b/src/daemon/sources/contextswitches.c index 8b3e86f..9053ce1 100644 --- a/src/daemon/sources/contextswitches.c +++ b/src/daemon/sources/contextswitches.c @@ -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 = { diff --git a/src/daemon/sources/df.c b/src/daemon/sources/df.c index 5ccb2ad..d57b5f9 100644 --- a/src/daemon/sources/df.c +++ b/src/daemon/sources/df.c @@ -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; } diff --git a/src/daemon/sources/ipfrag4.c b/src/daemon/sources/ipfrag4.c index e838b2f..e1a3e3a 100644 --- a/src/daemon/sources/ipfrag4.c +++ b/src/daemon/sources/ipfrag4.c @@ -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) diff --git a/src/daemon/sources/loadavg.c b/src/daemon/sources/loadavg.c index 377284a..c506234 100644 --- a/src/daemon/sources/loadavg.c +++ b/src/daemon/sources/loadavg.c @@ -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 = { diff --git a/src/daemon/sources/memory.c b/src/daemon/sources/memory.c index 73ece41..85f6630 100644 --- a/src/daemon/sources/memory.c +++ b/src/daemon/sources/memory.c @@ -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 = { diff --git a/src/daemon/sources/pressure-cpu.c b/src/daemon/sources/pressure-cpu.c index e6c49b8..1144392 100644 --- a/src/daemon/sources/pressure-cpu.c +++ b/src/daemon/sources/pressure-cpu.c @@ -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 = { diff --git a/src/daemon/sources/pressure-io.c b/src/daemon/sources/pressure-io.c index 58f9730..1734d47 100644 --- a/src/daemon/sources/pressure-io.c +++ b/src/daemon/sources/pressure-io.c @@ -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 = { diff --git a/src/daemon/sources/pressure-memory.c b/src/daemon/sources/pressure-memory.c index 5e3d233..f1f4a58 100644 --- a/src/daemon/sources/pressure-memory.c +++ b/src/daemon/sources/pressure-memory.c @@ -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 = { diff --git a/src/daemon/sources/processor.c b/src/daemon/sources/processor.c index 99a87d7..f5d7012 100644 --- a/src/daemon/sources/processor.c +++ b/src/daemon/sources/processor.c @@ -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 = { diff --git a/src/daemon/sources/softirq.c b/src/daemon/sources/softirq.c index 37f480b..ad8b2fc 100644 --- a/src/daemon/sources/softirq.c +++ b/src/daemon/sources/softirq.c @@ -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) { diff --git a/src/daemon/sources/test-flapping.c b/src/daemon/sources/test-flapping.c index b87f879..266627e 100644 --- a/src/daemon/sources/test-flapping.c +++ b/src/daemon/sources/test-flapping.c @@ -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 = { diff --git a/src/daemon/sources/unbound.c b/src/daemon/sources/unbound.c index 35626db..fb3bc05 100644 --- a/src/daemon/sources/unbound.c +++ b/src/daemon/sources/unbound.c @@ -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) {