mirror of
https://github.com/matrix-construct/construct
synced 2024-06-11 14:38:57 +02:00
ircd::server: Add stats for total bytes up and down to peer and links.
This commit is contained in:
parent
270120c922
commit
47edaed3a6
|
@ -69,6 +69,10 @@ struct ircd::server::link
|
|||
size_t read_completed() const; // see: tag::read_completed() notes
|
||||
size_t read_remaining() const; // see: tag::read_remaining() notes
|
||||
|
||||
// stats accumulated
|
||||
size_t write_total() const;
|
||||
size_t read_total() const;
|
||||
|
||||
// stats for tags
|
||||
size_t tag_count() const;
|
||||
size_t tag_committed() const;
|
||||
|
|
|
@ -32,6 +32,8 @@ struct ircd::server::peer
|
|||
std::list<link> links;
|
||||
std::unique_ptr<err> e;
|
||||
std::string server_name;
|
||||
size_t write_bytes {0};
|
||||
size_t read_bytes {0};
|
||||
bool op_resolve {false};
|
||||
bool op_fini {false};
|
||||
|
||||
|
@ -84,6 +86,10 @@ struct ircd::server::peer
|
|||
size_t read_completed() const;
|
||||
size_t read_remaining() const;
|
||||
|
||||
// stats accumulated over time
|
||||
size_t write_total() const;
|
||||
size_t read_total() const;
|
||||
|
||||
// link control panel
|
||||
link &link_add(const size_t &num = 1);
|
||||
link *link_get(const request &);
|
||||
|
|
|
@ -883,6 +883,20 @@ ircd::server::peer::handle_finished()
|
|||
server::dock.notify_all();
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::peer::read_total()
|
||||
const
|
||||
{
|
||||
return read_bytes;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::peer::write_total()
|
||||
const
|
||||
{
|
||||
return write_bytes;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::peer::read_remaining()
|
||||
const
|
||||
|
@ -1365,6 +1379,8 @@ ircd::server::link::process_write_next(const const_buffer &buffer)
|
|||
data(buffer), bytes
|
||||
};
|
||||
|
||||
assert(peer);
|
||||
peer->write_bytes += bytes;
|
||||
return written;
|
||||
}
|
||||
|
||||
|
@ -1558,6 +1574,9 @@ ircd::server::link::read(const mutable_buffer &buf)
|
|||
read_one(*socket, buf)
|
||||
};
|
||||
|
||||
assert(peer);
|
||||
peer->read_bytes += received;
|
||||
|
||||
return const_buffer
|
||||
{
|
||||
data(buf), received
|
||||
|
@ -1580,6 +1599,9 @@ ircd::server::link::discard_read()
|
|||
discard_any(*socket, size_t(discard))
|
||||
};
|
||||
|
||||
assert(peer);
|
||||
peer->read_bytes += discarded;
|
||||
|
||||
// Shouldn't ever be hit because the read() within discard() throws
|
||||
// the pending error like an eof.
|
||||
log.warning("Link to %s discarded %zu of %zd unexpected bytes",
|
||||
|
@ -1622,6 +1644,20 @@ const
|
|||
return queue.size();
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::link::read_total()
|
||||
const
|
||||
{
|
||||
return socket? socket->in.bytes : 0;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::link::write_total()
|
||||
const
|
||||
{
|
||||
return socket? socket->out.bytes : 0;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::server::link::read_remaining()
|
||||
const
|
||||
|
|
|
@ -613,6 +613,8 @@ html__net__peer(opt &out, const string_view &line)
|
|||
out << "<td> REQS </td>";
|
||||
out << "<td> ▲ BYTES Q</td>";
|
||||
out << "<td> ▼ BYTES Q</td>";
|
||||
out << "<td> ▲ BYTES</td>";
|
||||
out << "<td> ▼ BYTES</td>";
|
||||
out << "<td> ERROR </td>";
|
||||
out << "</tr>";
|
||||
|
||||
|
@ -635,6 +637,8 @@ html__net__peer(opt &out, const string_view &line)
|
|||
out << "<td>" << peer.tag_count() << "</td>";
|
||||
out << "<td>" << peer.write_size() << "</td>";
|
||||
out << "<td>" << peer.read_size() << "</td>";
|
||||
out << "<td>" << peer.write_total() << "</td>";
|
||||
out << "<td>" << peer.read_total() << "</td>";
|
||||
|
||||
out << "<td>";
|
||||
if(peer.err_has() && peer.err_msg())
|
||||
|
@ -675,8 +679,10 @@ console_cmd__net__peer(opt &out, const string_view &line)
|
|||
|
||||
out << " " << setw(2) << right << peer.link_count() << " L"
|
||||
<< " " << setw(2) << right << peer.tag_count() << " T"
|
||||
<< " " << setw(9) << right << peer.write_size() << " UP Q"
|
||||
<< " " << setw(9) << right << peer.read_size() << " DN Q"
|
||||
<< " " << setw(9) << right << peer.write_size() << " UP Q"
|
||||
<< " " << setw(9) << right << peer.read_size() << " DN Q"
|
||||
<< " " << setw(9) << right << peer.write_total() << " UP"
|
||||
<< " " << setw(9) << right << peer.read_total() << " DN"
|
||||
;
|
||||
|
||||
if(peer.err_has() && peer.err_msg())
|
||||
|
|
Loading…
Reference in a new issue