Beispiel #1
0
int ft_needs_stats(ffsb_thread_t *ft, syscall_t sys)
{
	int ret = 0;
	if (ft && ft->fsd.config && !fsc_ignore_sys(ft->fsd.config, sys))
		ret = 1;
	return ret;
}
void ffsb_add_data(ffsb_statsd_t *fsd, syscall_t s, uint32_t value)
{
	unsigned num_buckets, i;
	struct stat_bucket *bucket_defs;

	if (!fsd || fsc_ignore_sys(fsd->config, s))
		return;

	if (value < fsd->mins[s])
		fsd->mins[s] = value;
	if (value > fsd->maxs[s])
		fsd->maxs[s] = value;

	fsd->counts[s]++;
	fsd->totals[s] += value;

	if (fsd->config->num_buckets == 0)
		return;

	num_buckets = fsd->config->num_buckets;
	bucket_defs = fsd->config->buckets;

	for (i = 0; i < num_buckets; i++) {
		struct stat_bucket *b = &bucket_defs[i];

		if (value <= b->max && value >= b->min) {
			fsd->buckets[s][i]++;
			break;
		}
	}
}