mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-10 14:58:01 +00:00
API stats - include pool network bytes + in miner.php
This commit is contained in:
parent
92abe36f12
commit
c1eae36f7b
2
api.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
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
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
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…
Reference in New Issue
Block a user