1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

add udp stat to nb_conn_sys as nb_conn_sys_udp

This commit is contained in:
winlin 2014-07-27 15:43:43 +08:00
parent abef029610
commit f53bfcea54
2 changed files with 92 additions and 6 deletions

View file

@ -680,6 +680,7 @@ SrsNetworkRtmpServer::SrsNetworkRtmpServer()
sample_time = rbytes = sbytes = 0;
nb_conn_sys = nb_conn_srs = 0;
nb_conn_sys_et = nb_conn_sys_tw = nb_conn_sys_ls = 0;
nb_conn_sys_udp = 0;
}
static SrsNetworkRtmpServer _srs_network_rtmp_server;
@ -710,6 +711,9 @@ void srs_update_rtmp_server(int nb_conn, SrsKbps* kbps)
{
SrsNetworkRtmpServer& r = _srs_network_rtmp_server;
// reset total.
r.nb_conn_sys = 0;
if (true) {
FILE* f = fopen("/proc/net/tcp", "r");
if (f == NULL) {
@ -725,13 +729,12 @@ void srs_update_rtmp_server(int nb_conn, SrsKbps* kbps)
int nb_conn_sys_time_wait = 0;
int nb_conn_sys_listen = 0;
int nb_conn_sys_other = 0;
for (;;) {
// @see: http://tester-higkoo.googlecode.com/svn-history/r14/trunk/Tools/iostat/iostat.c
while (fgets(buf, sizeof(buf), f)) {
int st = 0;
int ret = fscanf(f, "%*s %*s %*s %2x\n", &st);
// ignore to end.
fgets(buf, sizeof(buf), f);
int ret = sscanf(buf, "%*s %*s %*s %2x\n", &st);
if (ret == 1) {
if (st == SYS_TCP_ESTABLISHED) {
nb_conn_sys_established++;
@ -757,6 +760,38 @@ void srs_update_rtmp_server(int nb_conn, SrsKbps* kbps)
fclose(f);
}
if (true) {
FILE* f = fopen("/proc/net/udp", "r");
if (f == NULL) {
srs_warn("open proc network udp failed, ignore");
return;
}
// ignore title.
static char buf[1024];
fgets(buf, sizeof(buf), f);
// all udp is close state.
int nb_conn_sys_close = 0;
// @see: http://tester-higkoo.googlecode.com/svn-history/r14/trunk/Tools/iostat/iostat.c
while (fgets(buf, sizeof(buf), f)) {
int st = 0;
int ret = sscanf(buf, "%*s %*s %*s %2x\n", &st);
if (ret == EOF) {
break;
}
nb_conn_sys_close++;
}
r.nb_conn_sys += nb_conn_sys_close;
r.nb_conn_sys_udp = nb_conn_sys_close;
fclose(f);
}
if (true) {
r.ok = true;
@ -973,6 +1008,7 @@ void srs_api_dump_summaries(std::stringstream& ss)
<< __SRS_JFIELD_ORG("conn_sys_et", nrs->nb_conn_sys_et) << __SRS_JFIELD_CONT
<< __SRS_JFIELD_ORG("conn_sys_tw", nrs->nb_conn_sys_tw) << __SRS_JFIELD_CONT
<< __SRS_JFIELD_ORG("conn_sys_ls", nrs->nb_conn_sys_ls) << __SRS_JFIELD_CONT
<< __SRS_JFIELD_ORG("conn_sys_udp", nrs->nb_conn_sys_udp) << __SRS_JFIELD_CONT
<< __SRS_JFIELD_ORG("conn_srs", nrs->nb_conn_srs)
<< __SRS_JOBJECT_END
<< __SRS_JOBJECT_END