/* Write to a buffer the average of the average time served meta data * object. */ static void pmeta_data_avgts (GJSON * json, GModule module, int sp) { int isp = 0; uint64_t avg = 0, hits = 0, cumts = 0; if (!conf.serve_usecs) return; /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; cumts = ht_get_meta_data (module, "cumts"); hits = ht_get_meta_data (module, "hits"); if (hits > 0) avg = cumts / hits; popen_obj_attr (json, "avgts", sp); pskeyu64val (json, "avg", avg, isp, 1); pclose_obj (json, sp, 0); }
/* Output the average of the average time served meta data object. * * If no metadata found, it simply returns. * On success, meta data is outputted. */ static void pmeta_data_avgts (FILE * fp, GModule module, int sp) { int isp = 0; uint64_t avg = 0, hits = 0, cumts = 0; if (!conf.serve_usecs) return; /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; cumts = ht_get_meta_data (module, "cumts"); hits = ht_get_meta_data (module, "hits"); if (hits > 0) avg = cumts / hits; pjson (fp, "%.*s\"avgts\": {%.*s", sp, TAB, nlines, NL); pjson (fp, "%.*s\"avg\": %lld%.*s", isp, TAB, (long long) avg, nlines, NL); pjson (fp, "%.*s},%.*s", sp, TAB, nlines, NL); }
/* Output the visitors meta data object. * * If no metadata found, it simply returns. * On success, meta data is outputted. */ static void pmeta_data_visitors (FILE * fp, GModule module, int sp) { int isp = 0; uint64_t count = ht_get_meta_data (module, "visitors"); /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; pjson (fp, "%.*s\"visitors\": {%.*s", sp, TAB, nlines, NL); pjson (fp, "%.*s\"count\": %lld%.*s", isp, TAB, (long long) count, nlines, NL); pjson (fp, "%.*s},%.*s", sp, TAB, nlines, NL); }
/* Write to a buffer the visitors meta data object. */ static void pmeta_data_visitors (GJSON * json, GModule module, int sp) { int isp = 0; int max = 0, min = 0; ht_get_visitors_min_max (module, &min, &max); /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; popen_obj_attr (json, "visitors", sp); pskeyu64val (json, "count", ht_get_meta_data (module, "visitors"), isp, 0); pskeyival (json, "max", max, isp, 0); pskeyival (json, "min", min, isp, 1); pclose_obj (json, sp, 0); }
/* Output the maximum time served meta data object. * * If no metadata found, it simply returns. * On success, meta data is outputted. */ static void pmeta_data_maxts (FILE * fp, GModule module, int sp) { int isp = 0; uint64_t count = 0; if (!conf.serve_usecs) return; /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; count = ht_get_meta_data (module, "maxts"); pjson (fp, "%.*s\"maxts\": {%.*s", sp, TAB, nlines, NL); pjson (fp, "%.*s\"count\": %lld%.*s", isp, TAB, (long long) count, nlines, NL); pjson (fp, "%.*s},%.*s", sp, TAB, nlines, NL); }
/* Write to a buffer the maximum time served meta data object. */ static void pmeta_data_maxts (GJSON * json, GModule module, int sp) { int isp = 0; uint64_t max = 0, min = 0; if (!conf.serve_usecs) return; ht_get_maxts_min_max (module, &min, &max); /* use tabs to prettify output */ if (conf.json_pretty_print) isp = sp + 1; popen_obj_attr (json, "maxts", sp); pskeyu64val (json, "count", ht_get_meta_data (module, "maxts"), isp, 0); pskeyu64val (json, "max", max, isp, 0); pskeyu64val (json, "min", min, isp, 1); pclose_obj (json, sp, 0); }