switch (m->family->type) {
case METRIC_TYPE_COUNTER: {
counter_t diff = counter_diff(ce->values_raw.counter, m->value.counter);
+ printf("cdtime to double: %lf\n", (CDTIME_T_TO_DOUBLE(m->time - ce->last_time)));
ce->values_gauge =
((double)diff) / (CDTIME_T_TO_DOUBLE(m->time - ce->last_time));
ce->values_raw.counter = m->value.counter;
distribution_destroy(ce->values_distribution);
ce->values_distribution = ce->values_raw.distribution;
- ce->values_raw.distribution = m->value.distribution;
+ ce->values_raw.distribution = distribution_clone(m->value.distribution);
break;
}
#if 0
*ret_values = ce->values_gauge;
} else { /* in case where metric is a distribution, we
assume that the rate is the middle value */
+ pthread_mutex_unlock(&cache_lock);
status = uc_get_percentile_by_name(name, ret_values, 50.0);
}
}