/*
- * $Id: refresh.cc,v 1.39 1998/10/17 17:03:42 wessels Exp $
+ * $Id: refresh.cc,v 1.40 1998/10/18 01:30:09 rousskov Exp $
*
* DEBUG: section 22 Refresh Calculation
* AUTHOR: Harvest Derived
int total;
int revalidate_stale;
int request_max_age_stale;
+ int request_reload2ims_stale;
+ int request_reload_stale;
+ int min_age_override_exp_fresh;
+ int min_age_override_lmt_fresh;
int response_expires_stale;
int response_expires_fresh;
int conf_max_age_stale;
} else if (reload_into_ims) {
/* The clients no-cache header is changed into a IMS query */
debug(22, 3) ("refreshCheck: YES: reload-into-ims\n");
+ rc->request_reload2ims_stale++;
return 1;
} else {
/* The clients no-cache header is not overridden on this request */
debug(22, 3) ("refreshCheck: YES: client reload\n");
request->flags.nocache = 1;
+ rc->request_reload_stale++;
return 1;
}
}
#if HTTP_VIOLATIONS
if (override_expire && age <= min) {
debug(22, 3) ("refreshCheck: NO: age < min && override_expire\n");
+ rc->min_age_override_exp_fresh++;
return 0;
}
#endif
#if HTTP_VIOLATIONS
if (override_lastmod && age <= min) {
debug(22, 3) ("refreshCheck: NO: age < min && override_lastmod\n");
+ rc->min_age_override_lmt_fresh++;
return 0;
}
#endif
}
}
if (age <= min) {
- debug(22, 3) ("refreshCheck: NO: age < min\n");
+ debug(22, 3) ("refreshCheck: NO: age <= min\n");
rc->conf_min_age_fresh++;
return 0;
}
static void
refreshCountsStats(StoreEntry * sentry, struct RefreshCounts *rc)
{
+ int sum = 0;
+ int tot = rc->total;
+
storeAppendPrintf(sentry, "\n\n%s histogram:\n", rc->proto);
storeAppendPrintf(sentry, "Category\tCount\t%%Total\n");
- storeAppendPrintf(sentry, "revalidate_stale\t%6d\t%6.2f\n",
- rc->revalidate_stale, xpercent(rc->revalidate_stale, rc->total));
- storeAppendPrintf(sentry, "request_max_age_stale\t%6d\t%6.2f\n",
- rc->request_max_age_stale, xpercent(rc->request_max_age_stale, rc->total));
- storeAppendPrintf(sentry, "response_expires_stale\t%6d\t%6.2f\n",
- rc->response_expires_stale, xpercent(rc->response_expires_stale, rc->total));
- storeAppendPrintf(sentry, "response_expires_fresh\t%6d\t%6.2f\n",
- rc->response_expires_fresh, xpercent(rc->response_expires_fresh, rc->total));
- storeAppendPrintf(sentry, "conf_max_age_stale\t%6d\t%6.2f\n",
- rc->conf_max_age_stale, xpercent(rc->conf_max_age_stale, rc->total));
- storeAppendPrintf(sentry, "last_modified_factor_fresh\t%6d\t%6.2f\n",
- rc->last_modified_factor_fresh, xpercent(rc->last_modified_factor_fresh, rc->total));
- storeAppendPrintf(sentry, "last_modified_factor_stale\t%6d\t%6.2f\n",
- rc->last_modified_factor_stale, xpercent(rc->last_modified_factor_stale, rc->total));
- storeAppendPrintf(sentry, "conf_min_age_fresh\t%6d\t%6.2f\n",
- rc->conf_min_age_fresh, xpercent(rc->conf_min_age_fresh, rc->total));
- storeAppendPrintf(sentry, "default_stale\t%6d\t%6.2f\n",
- rc->default_stale, xpercent(rc->default_stale, rc->total));
- storeAppendPrintf(sentry, "total\t%6d\t%6.2f\n",
- rc->total, xpercent(rc->total, rc->total));
+#define refreshCountsStatsEntry(name) { \
+ if (rc->name || !strcmp(#name, "total")) \
+ storeAppendPrintf(sentry, "%s\t%6d\t%6.2f\n", \
+ #name, rc->name, xpercent(rc->name, tot)); \
+ sum += rc->name; \
+}
+ refreshCountsStatsEntry(revalidate_stale);
+ refreshCountsStatsEntry(request_reload2ims_stale);
+ refreshCountsStatsEntry(request_reload_stale);
+ refreshCountsStatsEntry(request_max_age_stale);
+ refreshCountsStatsEntry(min_age_override_exp_fresh);
+ refreshCountsStatsEntry(response_expires_stale);
+ refreshCountsStatsEntry(response_expires_fresh);
+ refreshCountsStatsEntry(conf_max_age_stale);
+ refreshCountsStatsEntry(min_age_override_lmt_fresh);
+ refreshCountsStatsEntry(last_modified_factor_fresh);
+ refreshCountsStatsEntry(last_modified_factor_stale);
+ refreshCountsStatsEntry(conf_min_age_fresh);
+ refreshCountsStatsEntry(default_stale);
+ tot = sum; /* paranoid: "total" line shows 100% if we forgot nothing */
+ refreshCountsStatsEntry(total);
}
static void