diff options
Diffstat (limited to 'ot_stats.c')
| -rw-r--r-- | ot_stats.c | 20 |
1 files changed, 20 insertions, 0 deletions
| @@ -44,6 +44,7 @@ static unsigned long long ot_overall_tcp_successfulscrapes = 0; | |||
| 44 | static unsigned long long ot_overall_udp_successfulscrapes = 0; | 44 | static unsigned long long ot_overall_udp_successfulscrapes = 0; |
| 45 | static unsigned long long ot_overall_tcp_connects = 0; | 45 | static unsigned long long ot_overall_tcp_connects = 0; |
| 46 | static unsigned long long ot_overall_udp_connects = 0; | 46 | static unsigned long long ot_overall_udp_connects = 0; |
| 47 | static unsigned long long ot_overall_completed = 0; | ||
| 47 | static unsigned long long ot_full_scrape_count = 0; | 48 | static unsigned long long ot_full_scrape_count = 0; |
| 48 | static unsigned long long ot_full_scrape_request_count = 0; | 49 | static unsigned long long ot_full_scrape_request_count = 0; |
| 49 | static unsigned long long ot_full_scrape_size = 0; | 50 | static unsigned long long ot_full_scrape_size = 0; |
| @@ -445,6 +446,19 @@ static size_t stats_return_sync_mrtg( char * reply ) { | |||
| 445 | ); | 446 | ); |
| 446 | } | 447 | } |
| 447 | 448 | ||
| 449 | static size_t stats_return_completed_mrtg( char * reply ) { | ||
| 450 | ot_time t = time( NULL ) - ot_start_time; | ||
| 451 | |||
| 452 | return sprintf( reply, | ||
| 453 | "%llu\n%llu\n%i seconds (%i hours)\nopentracker, %lu completed/h.", | ||
| 454 | ot_overall_completed, | ||
| 455 | 0LL, | ||
| 456 | (int)t, | ||
| 457 | (int)(t / 3600), | ||
| 458 | events_per_time( ot_overall_completed, t / 3600 ) | ||
| 459 | ); | ||
| 460 | } | ||
| 461 | |||
| 448 | static size_t stats_return_everything( char * reply ) { | 462 | static size_t stats_return_everything( char * reply ) { |
| 449 | torrent_stats stats = {0,0,0}; | 463 | torrent_stats stats = {0,0,0}; |
| 450 | int i; | 464 | int i; |
| @@ -462,6 +476,7 @@ static size_t stats_return_everything( char * reply ) { | |||
| 462 | r += sprintf( r, " </torrents>\n" ); | 476 | r += sprintf( r, " </torrents>\n" ); |
| 463 | r += sprintf( r, " <peers>\n <count>%llu</count>\n </peers>\n", stats.peer_count ); | 477 | r += sprintf( r, " <peers>\n <count>%llu</count>\n </peers>\n", stats.peer_count ); |
| 464 | r += sprintf( r, " <seeds>\n <count>%llu</count>\n </seeds>\n", stats.seed_count ); | 478 | r += sprintf( r, " <seeds>\n <count>%llu</count>\n </seeds>\n", stats.seed_count ); |
| 479 | r += sprintf( r, " <completed>\n <count>%llu</count>\n </completed", ot_overall_completed ); | ||
| 465 | r += sprintf( r, " <connections>\n" ); | 480 | r += sprintf( r, " <connections>\n" ); |
| 466 | r += sprintf( r, " <tcp>\n <accept>%llu</accept>\n <announce>%llu</announce>\n <scrape>%llu</scrape>\n </tcp>\n", ot_overall_tcp_connections, ot_overall_tcp_successfulannounces, ot_overall_udp_successfulscrapes ); | 481 | r += sprintf( r, " <tcp>\n <accept>%llu</accept>\n <announce>%llu</announce>\n <scrape>%llu</scrape>\n </tcp>\n", ot_overall_tcp_connections, ot_overall_tcp_successfulannounces, ot_overall_udp_successfulscrapes ); |
| 467 | r += sprintf( r, " <udp>\n <overall>%llu</overall>\n <connect>%llu</connect>\n <announce>%llu</announce>\n <scrape>%llu</scrape>\n </udp>\n", ot_overall_udp_connections, ot_overall_udp_connects, ot_overall_udp_successfulannounces, ot_overall_udp_successfulscrapes ); | 482 | r += sprintf( r, " <udp>\n <overall>%llu</overall>\n <connect>%llu</connect>\n <announce>%llu</announce>\n <scrape>%llu</scrape>\n </udp>\n", ot_overall_udp_connections, ot_overall_udp_connects, ot_overall_udp_successfulannounces, ot_overall_udp_successfulscrapes ); |
| @@ -507,6 +522,8 @@ size_t return_stats_for_tracker( char *reply, int mode, int format ) { | |||
| 507 | return stats_tcpconnections_mrtg( reply ); | 522 | return stats_tcpconnections_mrtg( reply ); |
| 508 | case TASK_STATS_FULLSCRAPE: | 523 | case TASK_STATS_FULLSCRAPE: |
| 509 | return stats_fullscrapes_mrtg( reply ); | 524 | return stats_fullscrapes_mrtg( reply ); |
| 525 | case TASK_STATS_COMPLETED: | ||
| 526 | return stats_return_completed_mrtg( reply ); | ||
| 510 | case TASK_STATS_HTTPERRORS: | 527 | case TASK_STATS_HTTPERRORS: |
| 511 | return stats_httperrors_txt( reply ); | 528 | return stats_httperrors_txt( reply ); |
| 512 | case TASK_STATS_VERSION: | 529 | case TASK_STATS_VERSION: |
| @@ -559,6 +576,9 @@ void stats_issue_event( ot_status_event event, PROTO_FLAG proto, uintptr_t event | |||
| 559 | case EVENT_CONNECT: | 576 | case EVENT_CONNECT: |
| 560 | if( proto == FLAG_TCP ) ot_overall_tcp_connects++; else ot_overall_udp_connects++; | 577 | if( proto == FLAG_TCP ) ot_overall_tcp_connects++; else ot_overall_udp_connects++; |
| 561 | break; | 578 | break; |
| 579 | case EVENT_COMPLETED: | ||
| 580 | ot_overall_completed++; | ||
| 581 | break; | ||
| 562 | case EVENT_SCRAPE: | 582 | case EVENT_SCRAPE: |
| 563 | if( proto == FLAG_TCP ) ot_overall_tcp_successfulscrapes++; else ot_overall_udp_successfulscrapes++; | 583 | if( proto == FLAG_TCP ) ot_overall_tcp_successfulscrapes++; else ot_overall_udp_successfulscrapes++; |
| 564 | case EVENT_FULLSCRAPE: | 584 | case EVENT_FULLSCRAPE: |
