Merge commit 'karsten/stats-fixes-master'

This commit is contained in:
Roger Dingledine 2009-09-24 18:54:01 -04:00
commit 180a4b6a74
5 changed files with 14 additions and 6 deletions

View File

@ -12,6 +12,9 @@ Changes in version 0.2.2.4-alpha - 2009-??-??
code, and so on. The unit test code has moved to its own code, and so on. The unit test code has moved to its own
subdirectory, and has been split into multiple modules. subdirectory, and has been split into multiple modules.
o Minor bugfixes:
- Fix a couple of smaller issues with gathering statistics. Bugfixes
on 0.2.2.1-alpha.
Changes in version 0.2.2.3-alpha - 2009-09-23 Changes in version 0.2.2.3-alpha - 2009-09-23
o Major bugfixes: o Major bugfixes:

View File

@ -370,10 +370,12 @@ static void
rotate_request_period(void) rotate_request_period(void)
{ {
SMARTLIST_FOREACH(geoip_countries, geoip_country_t *, c, { SMARTLIST_FOREACH(geoip_countries, geoip_country_t *, c, {
#if REQUEST_HIST_LEN > 1
memmove(&c->n_v2_ns_requests[0], &c->n_v2_ns_requests[1], memmove(&c->n_v2_ns_requests[0], &c->n_v2_ns_requests[1],
sizeof(uint32_t)*(REQUEST_HIST_LEN-1)); sizeof(uint32_t)*(REQUEST_HIST_LEN-1));
memmove(&c->n_v3_ns_requests[0], &c->n_v3_ns_requests[1], memmove(&c->n_v3_ns_requests[0], &c->n_v3_ns_requests[1],
sizeof(uint32_t)*(REQUEST_HIST_LEN-1)); sizeof(uint32_t)*(REQUEST_HIST_LEN-1));
#endif
c->n_v2_ns_requests[REQUEST_HIST_LEN-1] = 0; c->n_v2_ns_requests[REQUEST_HIST_LEN-1] = 0;
c->n_v3_ns_requests[REQUEST_HIST_LEN-1] = 0; c->n_v3_ns_requests[REQUEST_HIST_LEN-1] = 0;
}); });
@ -393,7 +395,7 @@ geoip_note_client_seen(geoip_client_action_t action,
clientmap_entry_t lookup, *ent; clientmap_entry_t lookup, *ent;
if (action == GEOIP_CLIENT_CONNECT) { if (action == GEOIP_CLIENT_CONNECT) {
/* Only remember statistics as entry guard or as bridge. */ /* Only remember statistics as entry guard or as bridge. */
if (!options->EntryStatistics || if (!options->EntryStatistics &&
(!(options->BridgeRelay && options->BridgeRecordUsageByCountry))) (!(options->BridgeRelay && options->BridgeRecordUsageByCountry)))
return; return;
/* Did we recently switch from bridge to relay or back? */ /* Did we recently switch from bridge to relay or back? */
@ -1009,6 +1011,8 @@ geoip_dirreq_stats_write(time_t now)
if (fprintf(out, "dirreq-v3-reqs %s\ndirreq-v2-reqs %s\n", if (fprintf(out, "dirreq-v3-reqs %s\ndirreq-v2-reqs %s\n",
data_v3 ? data_v3 : "", data_v2 ? data_v2 : "") < 0) data_v3 ? data_v3 : "", data_v2 ? data_v2 : "") < 0)
goto done; goto done;
tor_free(data_v2);
tor_free(data_v3);
#define RESPONSE_GRANULARITY 8 #define RESPONSE_GRANULARITY 8
for (i = 0; i < GEOIP_NS_RESPONSE_NUM; i++) { for (i = 0; i < GEOIP_NS_RESPONSE_NUM; i++) {
ns_v2_responses[i] = round_uint32_to_next_multiple_of( ns_v2_responses[i] = round_uint32_to_next_multiple_of(

View File

@ -981,7 +981,6 @@ run_scheduled_events(time_t now)
time_to_write_stats_files = now + WRITE_STATS_INTERVAL; time_to_write_stats_files = now + WRITE_STATS_INTERVAL;
} else { } else {
/* Write stats to disk. */ /* Write stats to disk. */
time_to_write_stats_files += WRITE_STATS_INTERVAL;
if (options->CellStatistics) if (options->CellStatistics)
rep_hist_buffer_stats_write(time_to_write_stats_files); rep_hist_buffer_stats_write(time_to_write_stats_files);
if (options->DirReqStatistics) if (options->DirReqStatistics)
@ -990,6 +989,7 @@ run_scheduled_events(time_t now)
geoip_entry_stats_write(time_to_write_stats_files); geoip_entry_stats_write(time_to_write_stats_files);
if (options->ExitPortStatistics) if (options->ExitPortStatistics)
rep_hist_exit_stats_write(time_to_write_stats_files); rep_hist_exit_stats_write(time_to_write_stats_files);
time_to_write_stats_files += WRITE_STATS_INTERVAL;
} }
} else { } else {
/* Never write stats to disk */ /* Never write stats to disk */

View File

@ -3867,7 +3867,7 @@ int dnsserv_launch_request(const char *name, int is_reverse);
#define DIR_ENTRY_RECORD_USAGE_RETAIN_IPS (24*60*60) #define DIR_ENTRY_RECORD_USAGE_RETAIN_IPS (24*60*60)
/** How long do we have to have observed per-country request history before /** How long do we have to have observed per-country request history before
* we are willing to talk about it? */ * we are willing to talk about it? */
#define DIR_RECORD_USAGE_MIN_OBSERVATION_TIME (24*60*60) #define DIR_RECORD_USAGE_MIN_OBSERVATION_TIME (12*60*60)
#ifdef GEOIP_PRIVATE #ifdef GEOIP_PRIVATE
int geoip_parse_entry(const char *line); int geoip_parse_entry(const char *line);

View File

@ -1461,9 +1461,9 @@ rep_hist_exit_stats_write(time_t now)
comma ? "," : "", other_streams)<0) comma ? "," : "", other_streams)<0)
goto done; goto done;
/* Reset counters */ /* Reset counters */
memset(exit_bytes_read, 0, sizeof(exit_bytes_read)); memset(exit_bytes_read, 0, EXIT_STATS_NUM_PORTS * sizeof(uint64_t));
memset(exit_bytes_written, 0, sizeof(exit_bytes_written)); memset(exit_bytes_written, 0, EXIT_STATS_NUM_PORTS * sizeof(uint64_t));
memset(exit_streams, 0, sizeof(exit_streams)); memset(exit_streams, 0, EXIT_STATS_NUM_PORTS * sizeof(uint32_t));
start_of_exit_stats_interval = now; start_of_exit_stats_interval = now;
if (open_file) if (open_file)
@ -2771,6 +2771,7 @@ rep_hist_buffer_stats_write(time_t now)
goto done; goto done;
finish_writing_to_file(open_file); finish_writing_to_file(open_file);
open_file = NULL; open_file = NULL;
start_of_buffer_stats_interval = now;
done: done:
if (open_file) if (open_file)
abort_writing_to_file(open_file); abort_writing_to_file(open_file);