Browse Source

API stats - include pool network bytes + in miner.php

nfactor-troky
Kano 12 years ago
parent
commit
c1eae36f7b
  1. 2
      api.c
  2. 2
      miner.h
  3. 16
      miner.php
  4. 35
      util.c

2
api.c

@ -2915,6 +2915,8 @@ static int itemstats(struct io_data *io_data, int i, char *id, struct cgminer_st
root = api_add_uint64(root, "Bytes Sent", &(pool_stats->bytes_sent), false); root = api_add_uint64(root, "Bytes Sent", &(pool_stats->bytes_sent), false);
root = api_add_uint64(root, "Times Recv", &(pool_stats->times_received), false); root = api_add_uint64(root, "Times Recv", &(pool_stats->times_received), false);
root = api_add_uint64(root, "Bytes Recv", &(pool_stats->bytes_received), false); root = api_add_uint64(root, "Bytes Recv", &(pool_stats->bytes_received), false);
root = api_add_uint64(root, "Net Bytes Sent", &(pool_stats->net_bytes_sent), false);
root = api_add_uint64(root, "Net Bytes Recv", &(pool_stats->net_bytes_received), false);
} }
if (extra) if (extra)

2
miner.h

@ -375,8 +375,10 @@ struct cgminer_pool_stats {
uint32_t max_diff_count; uint32_t max_diff_count;
uint64_t times_sent; uint64_t times_sent;
uint64_t bytes_sent; uint64_t bytes_sent;
uint64_t net_bytes_sent;
uint64_t times_received; uint64_t times_received;
uint64_t bytes_received; uint64_t bytes_received;
uint64_t net_bytes_received;
}; };
struct cgpu_info { struct cgpu_info {

16
miner.php

@ -116,16 +116,17 @@ $poolspage = array(
'POOL.Difficulty Rejected=Diff Rej', 'POOL.Difficulty Rejected=Diff Rej',
'POOL.Has Stratum=Stratum', 'POOL.Stratum Active=StrAct', 'POOL.Has Stratum=Stratum', 'POOL.Stratum Active=StrAct',
'POOL.Has GBT=GBT', 'STATS.Times Sent=TSent', 'POOL.Has GBT=GBT', 'STATS.Times Sent=TSent',
'STATS.Bytes Sent=BSent', 'STATS.Times Recv=TRecv', 'STATS.Bytes Sent=BSent', 'STATS.Net Bytes Sent=NSent',
'STATS.Bytes Recv=BRecv')); 'STATS.Times Recv=TRecv', 'STATS.Bytes Recv=BRecv',
'STATS.Net Bytes Recv=NRecv'));
# #
$poolssum = array( $poolssum = array(
'SUMMARY' => array('MHS av', 'Found Blocks', 'Accepted', 'SUMMARY' => array('MHS av', 'Found Blocks', 'Accepted',
'Rejected', 'Utility', 'Hardware Errors', 'Rejected', 'Utility', 'Hardware Errors',
'Work Utility'), 'Work Utility'),
'POOL+STATS' => array('POOL.Difficulty Accepted', 'POOL.Difficulty Rejected', 'POOL+STATS' => array('POOL.Difficulty Accepted', 'POOL.Difficulty Rejected',
'STATS.Times Sent', 'STATS.Bytes Sent', 'STATS.Times Sent', 'STATS.Bytes Sent', 'STATS.Net Bytes Sent',
'STATS.Times Recv', 'STATS.Bytes Recv')); 'STATS.Times Recv', 'STATS.Bytes Recv', 'STATS.Net Bytes Recv'));
# #
$poolsext = array( $poolsext = array(
'POOL+STATS' => array( 'POOL+STATS' => array(
@ -133,7 +134,8 @@ $poolsext = array(
'group' => array('POOL.URL', 'POOL.Has Stratum', 'POOL.Stratum Active', 'POOL.Has GBT'), 'group' => array('POOL.URL', 'POOL.Has Stratum', 'POOL.Stratum Active', 'POOL.Has GBT'),
'calc' => array('POOL.Difficulty Accepted' => 'sum', 'POOL.Difficulty Rejected' => 'sum', 'calc' => array('POOL.Difficulty Accepted' => 'sum', 'POOL.Difficulty Rejected' => 'sum',
'STATS.Times Sent' => 'sum', 'STATS.Bytes Sent' => 'sum', 'STATS.Times Sent' => 'sum', 'STATS.Bytes Sent' => 'sum',
'STATS.Times Recv' => 'sum', 'STATS.Bytes Recv' => 'sum'), 'STATS.Net Bytes Sent' => 'sum', 'STATS.Times Recv' => 'sum',
'STATS.Bytes Recv' => 'sum', 'STATS.Net Bytes Recv' => 'sum'),
'having' => array(array('STATS.Bytes Recv', '>', 0))) 'having' => array(array('STATS.Bytes Recv', '>', 0)))
); );
@ -850,12 +852,16 @@ function fmt($section, $name, $value, $when, $alldata)
case 'total.Diff1 Work': case 'total.Diff1 Work':
case 'STATS.Times Sent': case 'STATS.Times Sent':
case 'STATS.Bytes Sent': case 'STATS.Bytes Sent':
case 'STATS.Net Bytes Sent':
case 'STATS.Times Recv': case 'STATS.Times Recv':
case 'STATS.Bytes Recv': case 'STATS.Bytes Recv':
case 'STATS.Net Bytes Recv':
case 'total.Times Sent': case 'total.Times Sent':
case 'total.Bytes Sent': case 'total.Bytes Sent':
case 'total.Net Bytes Sent':
case 'total.Times Recv': case 'total.Times Recv':
case 'total.Bytes Recv': case 'total.Bytes Recv':
case 'total.Net Bytes Recv':
$parts = explode('.', $value, 2); $parts = explode('.', $value, 2);
if (count($parts) == 1) if (count($parts) == 1)
$dec = ''; $dec = '';

35
util.c

@ -261,6 +261,30 @@ static void set_nettime(void)
wr_unlock(&netacc_lock); wr_unlock(&netacc_lock);
} }
static int curl_debug_cb(__maybe_unused CURL *handle, curl_infotype type,
__maybe_unused unsigned char *data, size_t size,
void *userdata)
{
struct pool *pool = (struct pool *)userdata;
switch(type) {
case CURLINFO_HEADER_IN:
case CURLINFO_DATA_IN:
case CURLINFO_SSL_DATA_IN:
pool->cgminer_pool_stats.net_bytes_received += size;
break;
case CURLINFO_HEADER_OUT:
case CURLINFO_DATA_OUT:
case CURLINFO_SSL_DATA_OUT:
pool->cgminer_pool_stats.net_bytes_sent += size;
break;
case CURLINFO_TEXT:
default:
break;
}
return 0;
}
json_t *json_rpc_call(CURL *curl, const char *url, json_t *json_rpc_call(CURL *curl, const char *url,
const char *userpass, const char *rpc_req, const char *userpass, const char *rpc_req,
bool probe, bool longpoll, int *rolltime, bool probe, bool longpoll, int *rolltime,
@ -287,10 +311,11 @@ json_t *json_rpc_call(CURL *curl, const char *url,
probing = !pool->probed; probing = !pool->probed;
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
#if 0 /* Disable curl debugging since it spews to stderr */ // CURLOPT_VERBOSE won't write to stderr if we use CURLOPT_DEBUGFUNCTION
if (opt_protocol) curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, curl_debug_cb);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); curl_easy_setopt(curl, CURLOPT_DEBUGDATA, (void *)pool);
#endif curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_ENCODING, ""); curl_easy_setopt(curl, CURLOPT_ENCODING, "");
@ -912,6 +937,7 @@ static bool __stratum_send(struct pool *pool, char *s, ssize_t len)
pool->cgminer_pool_stats.times_sent++; pool->cgminer_pool_stats.times_sent++;
pool->cgminer_pool_stats.bytes_sent += ssent; pool->cgminer_pool_stats.bytes_sent += ssent;
pool->cgminer_pool_stats.net_bytes_sent += ssent;
return true; return true;
} }
@ -1041,6 +1067,7 @@ char *recv_line(struct pool *pool)
pool->cgminer_pool_stats.times_received++; pool->cgminer_pool_stats.times_received++;
pool->cgminer_pool_stats.bytes_received += len; pool->cgminer_pool_stats.bytes_received += len;
pool->cgminer_pool_stats.net_bytes_received += len;
out: out:
if (!sret) if (!sret)
clear_sock(pool); clear_sock(pool);

Loading…
Cancel
Save