mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-06 21:51:30 +00:00
added avg metrics collector
This commit is contained in:
@@ -970,6 +970,22 @@ static int64_t uwsgi_metric_collector_sum(struct uwsgi_metric *um) {
|
||||
return total;
|
||||
}
|
||||
|
||||
static int64_t uwsgi_metric_collector_avg(struct uwsgi_metric *um) {
|
||||
int64_t total = 0;
|
||||
int64_t count = 0;
|
||||
struct uwsgi_metric_child *umc = um->children;
|
||||
while(umc) {
|
||||
struct uwsgi_metric *c = umc->um;
|
||||
total += *c->value;
|
||||
count++;
|
||||
umc = umc->next;
|
||||
}
|
||||
|
||||
if (count == 0) return 0;
|
||||
|
||||
return total/count;
|
||||
}
|
||||
|
||||
static int64_t uwsgi_metric_collector_func(struct uwsgi_metric *um) {
|
||||
if (!um->arg1) return 0;
|
||||
int64_t (*func)(struct uwsgi_metric *) = (int64_t (*)(struct uwsgi_metric *)) um->custom;
|
||||
@@ -985,5 +1001,6 @@ void uwsgi_metrics_collectors_setup() {
|
||||
uwsgi_register_metric_collector("ptr", uwsgi_metric_collector_ptr);
|
||||
uwsgi_register_metric_collector("file", uwsgi_metric_collector_file);
|
||||
uwsgi_register_metric_collector("sum", uwsgi_metric_collector_sum);
|
||||
uwsgi_register_metric_collector("avg", uwsgi_metric_collector_avg);
|
||||
uwsgi_register_metric_collector("func", uwsgi_metric_collector_func);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user