Lines Matching refs:pub
147 lws_metrics_dump_cb(lws_metric_pub_t *pub, void *user);
150 lws_metrics_report_and_maybe_clear(struct lws_context *ctx, lws_metric_pub_t *pub)
152 if (!pub->us_first || pub->us_last == pub->us_dumped)
155 lws_metrics_dump_cb(pub, ctx);
171 lws_metric_pub_t *pub = lws_metrics_priv_to_pub(mt);
173 lws_metrics_report_and_maybe_clear(ctx, pub);
314 lws_metric_pub_t *pub;
340 pub = lws_metrics_priv_to_pub(mt);
341 pub->name = (char *)pub + sizeof(lws_metric_pub_t);
342 memcpy((char *)pub->name, name, nl + 1);
343 pub->flags = flags;
349 pub->u.agg.min = ~(u_mt_t)0;
350 pub->us_first = lws_now_usecs();
419 lws_metric_pub_t *pub = lws_metrics_priv_to_pub(mt);
421 po = lws_metrics_find_policy(ctx, pub->name);
426 pub->name, po->name);
431 lwsl_debug("%s: no pol for %s\n", __func__, pub->name);
440 lws_metric_pub_t *pub;
445 pub = lws_metrics_priv_to_pub(mt);
455 if (pub->flags & LWSMTFL_REPORT_HIST) {
456 lws_metric_bucket_t *b = pub->u.hist.head, *b1;
458 pub->u.hist.head = NULL;
551 lws_metrics_hist_bump_(lws_metric_pub_t *pub, const char *name)
553 lws_metric_bucket_t *buck = pub->u.hist.head;
557 if (!(pub->flags & LWSMTFL_REPORT_HIST)) {
559 pub->name, pub->flags);
564 pub->us_last = lws_now_usecs();
565 if (!pub->us_first)
566 pub->us_first = pub->us_last;
586 buck->next = pub->u.hist.head;
587 pub->u.hist.head = buck;
589 pub->u.hist.list_size++;
592 pub->u.hist.total_count++;
598 lws_metrics_hist_bump_describe_wsi(struct lws *wsi, lws_metric_pub_t *pub,
640 lws_metrics_hist_bump_(pub, desc);
647 int (*cb)(lws_metric_pub_t *pub, void *user))
683 lws_metrics_dump_cb(lws_metric_pub_t *pub, void *user)
695 n = ctx->system_ops->metric_report(pub);
699 pub->us_first = pub->us_dumped = lws_now_usecs();
700 pub->us_last = 0;
707 if (pub->flags & LWSMTFL_REPORT_HIST) {
708 lws_metric_bucket_t *b = pub->u.hist.head, *b1;
709 pub->u.hist.head = NULL;
716 pub->u.hist.total_count = 0;
717 pub->u.hist.list_size = 0;
719 memset(&pub->u.agg, 0, sizeof(pub->u.agg));
731 _lws_metrics_format(lws_metric_pub_t *pub, lws_usec_t now, int gng,
737 if (pub->flags & LWSMTFL_REPORT_DUTY_WALLCLOCK_US)
740 if (!(pub->flags & LWSMTFL_REPORT_MEAN)) {
742 if (pub->flags & LWSMTFL_REPORT_DUTY_WALLCLOCK_US) {
745 (unsigned int)pub->u.agg.count[gng]);
748 (uint64_t)pub->u.agg.sum[gng],
754 (uint64_t)(now - pub->us_first),
758 " (%d%%)", (int)((100 * pub->u.agg.sum[gng]) /
759 (unsigned long)(now - pub->us_first)));
763 (unsigned int)pub->u.agg.count[gng]);
765 (uint64_t)pub->u.agg.sum[gng],
770 buf += lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), "%u, mean: ", (unsigned int)pub->u.agg.count[gng]);
773 (uint64_t)(pub->u.agg.count[gng] ?
774 pub->u.agg.sum[gng] / pub->u.agg.count[gng] : 0),
782 lws_metrics_format(lws_metric_pub_t *pub, lws_metric_bucket_t **sub, char *buf, size_t len)
788 if (pub->flags & LWSMTFL_REPORT_DUTY_WALLCLOCK_US)
791 if (pub->flags & LWSMTFL_REPORT_HIST) {
798 "%s{%s} %llu", pub->name,
809 pub->name);
811 if (!pub->u.agg.count[METRES_GO] && !pub->u.agg.count[METRES_NOGO])
814 if (pub->u.agg.count[METRES_GO]) {
815 if (!(pub->flags & LWSMTFL_REPORT_ONLY_GO))
818 buf += _lws_metrics_format(pub, t, METRES_GO, buf,
822 if (!(pub->flags & LWSMTFL_REPORT_ONLY_GO) && pub->u.agg.count[METRES_NOGO]) {
824 buf += _lws_metrics_format(pub, t, METRES_NOGO, buf,
828 if (pub->flags & LWSMTFL_REPORT_MEAN) {
830 buf += lws_humanize(buf, lws_ptr_diff_size_t(end, buf), pub->u.agg.min,
833 buf += lws_humanize(buf, lws_ptr_diff_size_t(end, buf), pub->u.agg.max,
838 if (pub->flags & LWSMTFL_REPORT_HIST)
856 lws_metric_pub_t *pub;
863 pub = lws_metrics_priv_to_pub(mt);
864 assert(!(pub->flags & LWSMTFL_REPORT_HIST));
866 pub->us_last = lws_now_usecs();
867 if (!pub->us_first)
868 pub->us_first = pub->us_last;
869 pub->u.agg.count[(int)go_nogo]++;
870 pub->u.agg.sum[(int)go_nogo] += val;
871 if (val > pub->u.agg.max)
872 pub->u.agg.max = val;
873 if (val < pub->u.agg.min)
874 pub->u.agg.min = val;
876 if (pub->flags & LWSMTFL_REPORT_OOB)
877 lws_metrics_report_and_maybe_clear(mt->ctx, pub);