From: Michael Tremer Date: Fri, 28 Nov 2025 14:20:04 +0000 (+0000) Subject: unbound: Use the new metrics parser X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=56abd49222f1f16090a138dba3433f89f74971a8;p=collecty.git unbound: Use the new metrics parser Signed-off-by: Michael Tremer --- diff --git a/src/daemon/sources/unbound.c b/src/daemon/sources/unbound.c index 33d2229..4d418d8 100644 --- a/src/daemon/sources/unbound.c +++ b/src/daemon/sources/unbound.c @@ -28,84 +28,35 @@ static int unbound_on_success(td_ctx* ctx, int rc, td_file* stdout, void* data) { td_source* source = data; - unsigned long rec_replies = 0; - unsigned long cachehits = 0; - unsigned long cachemiss = 0; - unsigned long prefetch = 0; - unsigned long queries = 0; - unsigned long msg_cache_count = 0; - unsigned long rrset_cache_count = 0; - unsigned long infra_cache_count = 0; - unsigned long key_cache_count = 0; - unsigned long mem_cache_rrset = 0; - unsigned long mem_cache_message = 0; - unsigned long mem_mod_iterator = 0; - unsigned long mem_mod_validator = 0; - unsigned long mem_mod_respip = 0; - double rec_time_median = 0; - double rec_time_avg = 0; - int r; - - td_file_parser parser[] = { - PARSE1("total.num.queries=%lu", &queries), - PARSE1("total.num.cachehits=%lu", &cachehits), - PARSE1("total.num.cachemiss=%lu", &cachemiss), - PARSE1("total.num.prefetch=%lu", &prefetch), - PARSE1("total.num.recursivereplies=%lu", &rec_replies), - // Recursion Performance - PARSE1("total.recursion.time.avg=%lf", &rec_time_avg), - PARSE1("total.recursion.time.median=%lf", &rec_time_median), - - // Cache Usage - PARSE1("msg.cache.count=%ld", &msg_cache_count), - PARSE1("rrset.cache.count=%ld", &rrset_cache_count), - PARSE1("infra.cache.count=%ld", &infra_cache_count), - PARSE1("key.cache.count=%ld", &key_cache_count), - - // Cache Memory Usage - PARSE1("mem.cache.rrset=%ld", &mem_cache_rrset), - PARSE1("mem.cache.message=%ld", &mem_cache_message), - - // Module Memory Usage - PARSE1("mem.mod.iterator=%ld", &mem_mod_iterator), - PARSE1("mem.mod.validator=%ld", &mem_mod_validator), - PARSE1("mem.mod.respip=%ld", &mem_mod_respip), - - { NULL }, - }; - - // Parse the output - r = td_file_parse(stdout, parser); - if (r < 0) - return r; + return td_source_parse_metrics(source, NULL, stdout, METRICS( + // Total Queries + METRIC_UINT64("queries", "total.num.queries=%lu"), - // Submit values - 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), + // Cache Performance + METRIC_UINT64("cachehits", "total.num.cachehits=%lu"), + METRIC_UINT64("cachemiss", "total.num.cachemiss=%lu"), + METRIC_UINT64("prefetch", "total.num.prefetch=%lu"), + METRIC_UINT64("rec_replies", "total.num.recursivereplies=%lu"), // Recursion Performance - VALUE_FLOAT ("rec_time_avg", &rec_time_avg), - VALUE_FLOAT ("rec_time_median", &rec_time_median), + METRIC_FLOAT("rec_time_avg", "total.recursion.time.avg=%lf"), + METRIC_FLOAT("rec_time_median", "total.recursion.time.median=%lf"), // Cache Usage - VALUE_UINT64("cache_msg_objects", &msg_cache_count), - VALUE_UINT64("cache_rrset_objects", &rrset_cache_count), - VALUE_UINT64("cache_infra_objects", &infra_cache_count), - VALUE_UINT64("cache_key_objects", &key_cache_count), + METRIC_UINT64("cache_msg_objects", "msg.cache.count=%ld"), + METRIC_UINT64("cache_rrset_objects", "rrset.cache.count=%ld"), + METRIC_UINT64("cache_infra_objects", "infra.cache.count=%ld"), + METRIC_UINT64("cache_key_objects", "key.cache.count=%ld"), // Cache Memory Usage - VALUE_UINT64("mem_cache_rrset", &mem_cache_rrset), - VALUE_UINT64("mem_cache_message", &mem_cache_message), + METRIC_UINT64("mem_cache_rrset", "mem.cache.rrset=%ld"), + METRIC_UINT64("mem_cache_message", "mem.cache.message=%ld"), // Module Memory Usage - VALUE_UINT64("mem_mod_iterator", &mem_mod_iterator), - VALUE_UINT64("mem_mod_validator", &mem_mod_validator), - VALUE_UINT64("mem_mod_respip", &mem_mod_respip) + METRIC_UINT64("mem_mod_iterator", "mem.mod.iterator=%ld"), + METRIC_UINT64("mem_mod_validator", "mem.mod.validator=%ld"), + METRIC_UINT64("mem_mod_respip", "mem.mod.respip=%ld"), )); }