mirror of
git://erdgeist.org/opentracker
synced 2025-02-17 06:31:30 +08:00
stats fuer sync
This commit is contained in:
parent
566e8267e1
commit
bfbb5ecb44
@ -215,6 +215,8 @@ static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d
|
|||||||
mode = TASK_STATS_TOP10;
|
mode = TASK_STATS_TOP10;
|
||||||
else if( !byte_diff(data,5,"renew"))
|
else if( !byte_diff(data,5,"renew"))
|
||||||
mode = TASK_STATS_RENEW;
|
mode = TASK_STATS_RENEW;
|
||||||
|
else if( !byte_diff(data,5,"syncs"))
|
||||||
|
mode = TASK_STATS_SYNCS;
|
||||||
else
|
else
|
||||||
HTTPERROR_400_PARAM;
|
HTTPERROR_400_PARAM;
|
||||||
break;
|
break;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "trackerlogic.h"
|
#include "trackerlogic.h"
|
||||||
#include "ot_livesync.h"
|
#include "ot_livesync.h"
|
||||||
#include "ot_accesslist.h"
|
#include "ot_accesslist.h"
|
||||||
|
#include "ot_stats.h"
|
||||||
|
|
||||||
#ifdef WANT_SYNC_LIVE
|
#ifdef WANT_SYNC_LIVE
|
||||||
|
|
||||||
@ -152,6 +153,8 @@ static void * livesync_worker( void * args ) {
|
|||||||
|
|
||||||
off += sizeof( ot_hash ) + sizeof( ot_peer );
|
off += sizeof( ot_hash ) + sizeof( ot_peer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stats_issue_event(EVENT_SYNC, 0, datalen / ((ssize_t)sizeof( ot_hash ) + (ssize_t)sizeof( ot_peer )));
|
||||||
}
|
}
|
||||||
/* Never returns. */
|
/* Never returns. */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -30,6 +30,7 @@ typedef enum {
|
|||||||
TASK_STATS_VERSION = 0x000a,
|
TASK_STATS_VERSION = 0x000a,
|
||||||
TASK_STATS_BUSY_NETWORKS = 0x000b,
|
TASK_STATS_BUSY_NETWORKS = 0x000b,
|
||||||
TASK_STATS_RENEW = 0x000c,
|
TASK_STATS_RENEW = 0x000c,
|
||||||
|
TASK_STATS_SYNCS = 0x000d,
|
||||||
|
|
||||||
TASK_STATS = 0x0100, /* Mask */
|
TASK_STATS = 0x0100, /* Mask */
|
||||||
TASK_STATS_TORRENTS = 0x0101,
|
TASK_STATS_TORRENTS = 0x0101,
|
||||||
|
20
ot_stats.c
20
ot_stats.c
@ -47,6 +47,7 @@ static unsigned long long ot_full_scrape_request_count = 0;
|
|||||||
static unsigned long long ot_full_scrape_size = 0;
|
static unsigned long long ot_full_scrape_size = 0;
|
||||||
static unsigned long long ot_failed_request_counts[CODE_HTTPERROR_COUNT];
|
static unsigned long long ot_failed_request_counts[CODE_HTTPERROR_COUNT];
|
||||||
static unsigned long long ot_renewed[OT_PEER_TIMEOUT];
|
static unsigned long long ot_renewed[OT_PEER_TIMEOUT];
|
||||||
|
static unsigned long long ot_overall_sync_count;
|
||||||
|
|
||||||
static time_t ot_start_time;
|
static time_t ot_start_time;
|
||||||
|
|
||||||
@ -465,6 +466,20 @@ static size_t stats_return_renew_bucket( char * reply ) {
|
|||||||
return r - reply;
|
return r - reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static size_t stats_return_sync_mrtg( char * reply )
|
||||||
|
{
|
||||||
|
ot_time t = time( NULL ) - ot_start_time;
|
||||||
|
return sprintf( reply,
|
||||||
|
"%llu\n%llu\n%i seconds (%i hours)\nopentracker connections, %lu conns/s :: %lu success/s.",
|
||||||
|
ot_overall_sync_count,
|
||||||
|
0,
|
||||||
|
(int)t,
|
||||||
|
(int)(t / 3600),
|
||||||
|
events_per_time( ot_overall_tcp_connections+ot_overall_udp_connections, t ),
|
||||||
|
events_per_time( ot_overall_tcp_successfulannounces+ot_overall_udp_successfulannounces+ot_overall_udp_connects, t )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
extern const char
|
extern const char
|
||||||
*g_version_opentracker_c, *g_version_accesslist_c, *g_version_clean_c, *g_version_fullscrape_c, *g_version_http_c,
|
*g_version_opentracker_c, *g_version_accesslist_c, *g_version_clean_c, *g_version_fullscrape_c, *g_version_http_c,
|
||||||
*g_version_iovec_c, *g_version_mutex_c, *g_version_stats_c, *g_version_udp_c, *g_version_vector_c,
|
*g_version_iovec_c, *g_version_mutex_c, *g_version_stats_c, *g_version_udp_c, *g_version_vector_c,
|
||||||
@ -500,6 +515,8 @@ size_t return_stats_for_tracker( char *reply, int mode, int format ) {
|
|||||||
return stats_return_tracker_version( reply );
|
return stats_return_tracker_version( reply );
|
||||||
case TASK_STATS_RENEW:
|
case TASK_STATS_RENEW:
|
||||||
return stats_return_renew_bucket( reply );
|
return stats_return_renew_bucket( reply );
|
||||||
|
case TASK_STATS_SYNCS:
|
||||||
|
return stats_return_sync_mrtg( reply );
|
||||||
#ifdef WANT_LOG_NETWORKS
|
#ifdef WANT_LOG_NETWORKS
|
||||||
case TASK_STATS_BUSY_NETWORKS:
|
case TASK_STATS_BUSY_NETWORKS:
|
||||||
return stats_return_busy_networks( reply );
|
return stats_return_busy_networks( reply );
|
||||||
@ -569,6 +586,9 @@ void stats_issue_event( ot_status_event event, PROTO_FLAG proto, uint32_t event_
|
|||||||
case EVENT_RENEW:
|
case EVENT_RENEW:
|
||||||
ot_renewed[event_data]++;
|
ot_renewed[event_data]++;
|
||||||
break;
|
break;
|
||||||
|
case EVENT_SYNC:
|
||||||
|
ot_overall_sync_count+=event_data;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ typedef enum {
|
|||||||
EVENT_CONNECT, /* UDP only */
|
EVENT_CONNECT, /* UDP only */
|
||||||
EVENT_ANNOUNCE,
|
EVENT_ANNOUNCE,
|
||||||
EVENT_RENEW,
|
EVENT_RENEW,
|
||||||
|
EVENT_SYNC,
|
||||||
EVENT_SCRAPE,
|
EVENT_SCRAPE,
|
||||||
EVENT_FULLSCRAPE_REQUEST,
|
EVENT_FULLSCRAPE_REQUEST,
|
||||||
EVENT_FULLSCRAPE_REQUEST_GZIP,
|
EVENT_FULLSCRAPE_REQUEST_GZIP,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user