From: rousskov <> Date: Sun, 18 Oct 1998 07:30:09 +0000 (+0000) Subject: - added missing case counters to refreshCheck() X-Git-Tag: SQUID_3_0_PRE1~2557 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc7cfa8ef22b2b8682b34f895ecf51783636c115;p=thirdparty%2Fsquid.git - added missing case counters to refreshCheck() request_reload2ims_stale, request_reload_stale, min_age_override_exp_fresh, min_age_override_lmt_fresh - display only non-zero stats - hack to double check that all cases are counted ("total" line will not display 100% if not) --- diff --git a/src/refresh.cc b/src/refresh.cc index 565e57002e..a69b78a14b 100644 --- a/src/refresh.cc +++ b/src/refresh.cc @@ -1,7 +1,7 @@ /* - * $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 @@ -47,6 +47,10 @@ static struct RefreshCounts { 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; @@ -160,11 +164,13 @@ refreshCheck(const StoreEntry * entry, request_t * request, time_t delta, struct } 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; } } @@ -180,6 +186,7 @@ refreshCheck(const StoreEntry * entry, request_t * request, time_t delta, struct #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 @@ -202,6 +209,7 @@ refreshCheck(const StoreEntry * entry, request_t * request, time_t delta, struct #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 @@ -219,7 +227,7 @@ refreshCheck(const StoreEntry * entry, request_t * request, time_t delta, struct } } 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; } @@ -260,29 +268,33 @@ getMaxAge(const char *url) 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