}
// 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 = {
}
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;
}
// 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 = {
// 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;
}
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)
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 = {
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 = {
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 = {
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 = {
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 = {
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 = {
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) {
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 = {
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) {