From dc8e88979777a662c76e010a3f90df1c382aae9a Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Wed, 31 Oct 2007 15:39:41 +0000 Subject: Add more full scrape stats --- opentracker.c | 17 +++++++++++++++++ trackerlogic.h | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/opentracker.c b/opentracker.c index bf9db89..9c36361 100644 --- a/opentracker.c +++ b/opentracker.c @@ -35,6 +35,8 @@ static unsigned long long ot_overall_tcp_connections = 0; static unsigned long long ot_overall_udp_connections = 0; static unsigned long long ot_overall_tcp_successfulannounces = 0; static unsigned long long ot_overall_udp_successfulannounces = 0; +static unsigned long long ot_full_scrape_count = 0; +static unsigned long long ot_full_scrape_size = 0; static time_t ot_start_time; static const size_t SUCCESS_HTTP_HEADER_LENGTH = 80; static const size_t SUCCESS_HTTP_SIZE_OFF = 17; @@ -325,6 +327,8 @@ LOG_TO_STDERR( "sync: %d.%d.%d.%d\n", h->ip[0], h->ip[1], h->ip[2], h->ip[3] ); mode = STATS_MRTG; else if( !byte_diff(data,4,"top5")) mode = STATS_TOP5; + else if( !byte_diff(data,4,"fscr")) + mode = STATS_FULLSCRAPE; else if( !byte_diff(data,4,"dmem")) mode = STATS_DMEM; else if( !byte_diff(data,4,"tcp4")) @@ -367,6 +371,14 @@ LOG_TO_STDERR( "stats: %d.%d.%d.%d - mode: dmem\n", h->ip[0], h->ip[1], h->ip[2] /* Enough for http header + whole scrape string */ if( !( reply_size = return_stats_for_tracker( SUCCESS_HTTP_HEADER_LENGTH + static_outbuf, mode ) ) ) HTTPERROR_500; break; + + case STATS_FULLSCRAPE: + t = time( NULL ) - ot_start_time; + reply_size = sprintf( static_outbuf + SUCCESS_HTTP_HEADER_LENGTH, + "%llu\n%llu\n%i seconds (%i hours)\nopentracker full scrape stats.", + ot_full_scrape_count * 1000, ot_full_scrape_size, (int)t, (int)(t / 3600) ); + break; + case STATS_SLASH24S: { LOG_TO_STDERR( "stats: %d.%d.%d.%d - mode: s24s\n", h->ip[0], h->ip[1], h->ip[2], h->ip[3] ); @@ -405,7 +417,12 @@ LOG_TO_STDERR( "[%08d] scrp: %d.%d.%d.%d - FULL SCRAPE\n", (unsigned int)(g_now write( 2, debug_request, l ); #endif if( !( reply_size = return_fullscrape_for_tracker( &reply ) ) ) HTTPERROR_500; + + /* Stat keeping */ ot_overall_tcp_successfulannounces++; + ot_full_scrape_count++; + ot_full_scrape_size += reply_size; + return sendmmapdata( s, reply, reply_size ); } diff --git a/trackerlogic.h b/trackerlogic.h index fc6c884..ccd3465 100644 --- a/trackerlogic.h +++ b/trackerlogic.h @@ -98,7 +98,7 @@ typedef struct { int init_logic( const char * const serverdir ); void deinit_logic( void ); -enum { STATS_MRTG, STATS_TOP5, STATS_DMEM, STATS_TCP, STATS_UDP, STATS_SLASH24S, STATS_SLASH24S_OLD, SYNC_IN, SYNC_OUT }; +enum { STATS_MRTG, STATS_TOP5, STATS_DMEM, STATS_TCP, STATS_UDP, STATS_SLASH24S, STATS_SLASH24S_OLD, SYNC_IN, SYNC_OUT, STATS_FULLSCRAPE }; #ifdef WANT_TRACKER_SYNC ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer, int from_changeset ); -- cgit v1.2.3