diff --git a/trunk/src/app/srs_app_listener.cpp b/trunk/src/app/srs_app_listener.cpp index affc5f2fe..b65281be1 100755 --- a/trunk/src/app/srs_app_listener.cpp +++ b/trunk/src/app/srs_app_listener.cpp @@ -43,6 +43,12 @@ using namespace std; #include #include +#include + +SrsPps* _srs_pps_pkts = new SrsPps(_srs_clock); +SrsPps* _srs_pps_addrs = new SrsPps(_srs_clock); +SrsPps* _srs_pps_fast_addrs = new SrsPps(_srs_clock); + // set the max packet size. #define SRS_UDP_MAX_PACKET_SIZE 65535 @@ -332,6 +338,9 @@ int SrsUdpMuxSocket::recvfrom(srs_utime_t timeout) // We will regenerate the peer_ip, peer_port and peer_id. address_changed_ = true; + // Update the stat. + ++_srs_pps_pkts->sugar; + return nread; } @@ -429,6 +438,9 @@ std::string SrsUdpMuxSocket::peer_id() static char id_buf[128]; int len = snprintf(id_buf, sizeof(id_buf), "%s:%d", peer_ip.c_str(), peer_port); peer_id_ = string(id_buf, len); + + // Update the stat. + ++_srs_pps_addrs->sugar; } return peer_id_; @@ -436,6 +448,7 @@ std::string SrsUdpMuxSocket::peer_id() uint64_t SrsUdpMuxSocket::fast_id() { + ++_srs_pps_fast_addrs->sugar; return fast_id_; } diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index 3f1b225c9..5b4a7faf6 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -45,6 +45,10 @@ using namespace std; #include #include +extern SrsPps* _srs_pps_pkts; +extern SrsPps* _srs_pps_addrs; +extern SrsPps* _srs_pps_fast_addrs; + SrsRtcBlackhole::SrsRtcBlackhole() { blackhole = false; @@ -637,8 +641,15 @@ srs_error_t SrsRtcServer::notify(int type, srs_utime_t interval, srs_utime_t tic SrsProcSelfStat* u = srs_get_self_proc_stat(); // Resident Set Size: number of pages the process has in real memory. int memory = (int)(u->rss * 4 / 1024); + + // Update the pps stat for UDP socket and adddresses. + _srs_pps_pkts->update(); _srs_pps_addrs->update(); _srs_pps_fast_addrs->update(); + // TODO: FIXME: Show more data for RTC server. - srs_trace("RTC: Server conns=%u, cpu=%.2f%%, rss=%dMB", nn_rtc_conns, u->percent * 100, memory); + srs_trace("RTC: Server conns=%u, cpu=%.2f%%, rss=%dMB, pkts=%d, addrs=%d,%d", + nn_rtc_conns, u->percent * 100, memory, + _srs_pps_pkts->r10s(), _srs_pps_addrs->r10s(), _srs_pps_fast_addrs->r10s() + ); return err; }