]> git.ipfire.org Git - people/ms/telemetry.git/commitdiff
unbound: Use the new metrics parser
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 28 Nov 2025 14:20:04 +0000 (14:20 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 28 Nov 2025 14:20:04 +0000 (14:20 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/daemon/sources/unbound.c

index 33d2229187a876a4066ea94b26911407891c1dbc..4d418d82191d8e48249dd1acd609a577da9acf7a 100644 (file)
 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"),
        ));
 }