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"),
));
}