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, "Times Recv", &(pool_stats->times_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)
|
||||
|
2
miner.h
2
miner.h
@ -375,8 +375,10 @@ struct cgminer_pool_stats {
|
||||
uint32_t max_diff_count;
|
||||
uint64_t times_sent;
|
||||
uint64_t bytes_sent;
|
||||
uint64_t net_bytes_sent;
|
||||
uint64_t times_received;
|
||||
uint64_t bytes_received;
|
||||
uint64_t net_bytes_received;
|
||||
};
|
||||
|
||||
struct cgpu_info {
|
||||
|
16
miner.php
16
miner.php
@ -116,16 +116,17 @@ $poolspage = array(
|
||||
'POOL.Difficulty Rejected=Diff Rej',
|
||||
'POOL.Has Stratum=Stratum', 'POOL.Stratum Active=StrAct',
|
||||
'POOL.Has GBT=GBT', 'STATS.Times Sent=TSent',
|
||||
'STATS.Bytes Sent=BSent', 'STATS.Times Recv=TRecv',
|
||||
'STATS.Bytes Recv=BRecv'));
|
||||
'STATS.Bytes Sent=BSent', 'STATS.Net Bytes Sent=NSent',
|
||||
'STATS.Times Recv=TRecv', 'STATS.Bytes Recv=BRecv',
|
||||
'STATS.Net Bytes Recv=NRecv'));
|
||||
#
|
||||
$poolssum = array(
|
||||
'SUMMARY' => array('MHS av', 'Found Blocks', 'Accepted',
|
||||
'Rejected', 'Utility', 'Hardware Errors',
|
||||
'Work Utility'),
|
||||
'POOL+STATS' => array('POOL.Difficulty Accepted', 'POOL.Difficulty Rejected',
|
||||
'STATS.Times Sent', 'STATS.Bytes Sent',
|
||||
'STATS.Times Recv', 'STATS.Bytes Recv'));
|
||||
'STATS.Times Sent', 'STATS.Bytes Sent', 'STATS.Net Bytes Sent',
|
||||
'STATS.Times Recv', 'STATS.Bytes Recv', 'STATS.Net Bytes Recv'));
|
||||
#
|
||||
$poolsext = array(
|
||||
'POOL+STATS' => array(
|
||||
@ -133,7 +134,8 @@ $poolsext = array(
|
||||
'group' => array('POOL.URL', 'POOL.Has Stratum', 'POOL.Stratum Active', 'POOL.Has GBT'),
|
||||
'calc' => array('POOL.Difficulty Accepted' => 'sum', 'POOL.Difficulty Rejected' => '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)))
|
||||
);
|
||||
|
||||
@ -850,12 +852,16 @@ function fmt($section, $name, $value, $when, $alldata)
|
||||
case 'total.Diff1 Work':
|
||||
case 'STATS.Times Sent':
|
||||
case 'STATS.Bytes Sent':
|
||||
case 'STATS.Net Bytes Sent':
|
||||
case 'STATS.Times Recv':
|
||||
case 'STATS.Bytes Recv':
|
||||
case 'STATS.Net Bytes Recv':
|
||||
case 'total.Times Sent':
|
||||
case 'total.Bytes Sent':
|
||||
case 'total.Net Bytes Sent':
|
||||
case 'total.Times Recv':
|
||||
case 'total.Bytes Recv':
|
||||
case 'total.Net Bytes Recv':
|
||||
$parts = explode('.', $value, 2);
|
||||
if (count($parts) == 1)
|
||||
$dec = '';
|
||||
|
35
util.c
35
util.c
@ -261,6 +261,30 @@ static void set_nettime(void)
|
||||
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,
|
||||
const char *userpass, const char *rpc_req,
|
||||
bool probe, bool longpoll, int *rolltime,
|
||||
@ -287,10 +311,11 @@ json_t *json_rpc_call(CURL *curl, const char *url,
|
||||
probing = !pool->probed;
|
||||
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
|
||||
|
||||
#if 0 /* Disable curl debugging since it spews to stderr */
|
||||
if (opt_protocol)
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
|
||||
#endif
|
||||
// CURLOPT_VERBOSE won't write to stderr if we use CURLOPT_DEBUGFUNCTION
|
||||
curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, curl_debug_cb);
|
||||
curl_easy_setopt(curl, CURLOPT_DEBUGDATA, (void *)pool);
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
|
||||
|
||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
|
||||
curl_easy_setopt(curl, CURLOPT_URL, url);
|
||||
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.bytes_sent += ssent;
|
||||
pool->cgminer_pool_stats.net_bytes_sent += ssent;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1041,6 +1067,7 @@ char *recv_line(struct pool *pool)
|
||||
|
||||
pool->cgminer_pool_stats.times_received++;
|
||||
pool->cgminer_pool_stats.bytes_received += len;
|
||||
pool->cgminer_pool_stats.net_bytes_received += len;
|
||||
out:
|
||||
if (!sret)
|
||||
clear_sock(pool);
|
||||
|
Loading…
Reference in New Issue
Block a user