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

use amf0 encode for json encode.

This commit is contained in:
winlin 2015-08-28 15:11:11 +08:00
parent e0219bd7aa
commit 04bea781ca
7 changed files with 226 additions and 214 deletions

View file

@ -45,6 +45,7 @@ using namespace std;
#include <srs_protocol_kbps.hpp>
#include <srs_protocol_json.hpp>
#include <srs_kernel_stream.hpp>
#include <srs_rtmp_amf0.hpp>
// the longest time to wait for a process to quit.
#define SRS_PROCESS_QUIT_TIMEOUT_MS 1000
@ -1354,7 +1355,7 @@ string srs_get_peer_ip(int fd)
return ip;
}
void srs_api_dump_summaries(std::stringstream& ss)
void srs_api_dump_summaries(SrsAmf0Object* obj)
{
SrsRusage* r = srs_get_system_rusage();
SrsProcSelfStat* u = srs_get_self_proc_stat();
@ -1407,57 +1408,61 @@ void srs_api_dump_summaries(std::stringstream& ss)
bool ok = (r->ok && u->ok && s->ok && c->ok
&& d->ok && m->ok && p->ok && nrs->ok);
ss << SRS_JOBJECT_START
<< SRS_JFIELD_ERROR(ERROR_SUCCESS) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("data", SRS_JOBJECT_START)
<< SRS_JFIELD_ORG("ok", (ok? "true":"false")) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("now_ms", now) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("self", SRS_JOBJECT_START)
<< SRS_JFIELD_STR("version", RTMP_SIG_SRS_VERSION) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("pid", getpid()) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("ppid", u->ppid) << SRS_JFIELD_CONT
<< SRS_JFIELD_STR("argv", _srs_config->argv()) << SRS_JFIELD_CONT
<< SRS_JFIELD_STR("cwd", _srs_config->cwd()) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_kbyte", r->r.ru_maxrss) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_percent", self_mem_percent) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("cpu_percent", u->percent) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("srs_uptime", srs_uptime)
<< SRS_JOBJECT_END << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("system", SRS_JOBJECT_START)
<< SRS_JFIELD_ORG("cpu_percent", s->percent) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("disk_read_KBps", d->in_KBps) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("disk_write_KBps", d->out_KBps) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("disk_busy_percent", d->busy) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_ram_kbyte", m->MemTotal) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_ram_percent", m->percent_ram) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_swap_kbyte", m->SwapTotal) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("mem_swap_percent", m->percent_swap) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("cpus", c->nb_processors) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("cpus_online", c->nb_processors_online) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("uptime", p->os_uptime) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("ilde_time", p->os_ilde_time) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("load_1m", p->load_one_minutes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("load_5m", p->load_five_minutes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("load_15m", p->load_fifteen_minutes) << SRS_JFIELD_CONT
// system network bytes stat.
<< SRS_JFIELD_ORG("net_sample_time", n_sample_time) << SRS_JFIELD_CONT
// internet public address network device bytes.
<< SRS_JFIELD_ORG("net_recv_bytes", nr_bytes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("net_send_bytes", ns_bytes) << SRS_JFIELD_CONT
// intranet private address network device bytes.
<< SRS_JFIELD_ORG("net_recvi_bytes", nri_bytes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("net_sendi_bytes", nsi_bytes) << SRS_JFIELD_CONT
// srs network bytes stat.
<< SRS_JFIELD_ORG("srs_sample_time", nrs->sample_time) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("srs_recv_bytes", nrs->rbytes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("srs_send_bytes", nrs->sbytes) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("conn_sys", nrs->nb_conn_sys) << SRS_JFIELD_CONT
<< 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_udp", nrs->nb_conn_sys_udp) << SRS_JFIELD_CONT
<< SRS_JFIELD_ORG("conn_srs", nrs->nb_conn_srs)
<< SRS_JOBJECT_END
<< SRS_JOBJECT_END
<< SRS_JOBJECT_END;
SrsAmf0Object* data = SrsAmf0Any::object();
obj->set("data", data);
data->set("ok", SrsAmf0Any::boolean(ok));
data->set("now_ms", SrsAmf0Any::number(now));
// self
SrsAmf0Object* self = SrsAmf0Any::object();
data->set("self", self);
self->set("version", SrsAmf0Any::str(RTMP_SIG_SRS_VERSION));
self->set("pid", SrsAmf0Any::number(getpid()));
self->set("ppid", SrsAmf0Any::number(u->ppid));
self->set("argv", SrsAmf0Any::str(_srs_config->argv().c_str()));
self->set("cwd", SrsAmf0Any::str(_srs_config->cwd().c_str()));
self->set("mem_kbyte", SrsAmf0Any::number(r->r.ru_maxrss));
self->set("mem_percent", SrsAmf0Any::number(self_mem_percent));
self->set("cpu_percent", SrsAmf0Any::number(u->percent));
self->set("srs_uptime", SrsAmf0Any::number(srs_uptime));
// system
SrsAmf0Object* sys = SrsAmf0Any::object();
data->set("system", sys);
sys->set("cpu_percent", SrsAmf0Any::number(s->percent));
sys->set("disk_read_KBps", SrsAmf0Any::number(d->in_KBps));
sys->set("disk_write_KBps", SrsAmf0Any::number(d->out_KBps));
sys->set("disk_busy_percent", SrsAmf0Any::number(d->busy));
sys->set("mem_ram_kbyte", SrsAmf0Any::number(m->MemTotal));
sys->set("mem_ram_percent", SrsAmf0Any::number(m->percent_ram));
sys->set("mem_swap_kbyte", SrsAmf0Any::number(m->SwapTotal));
sys->set("mem_swap_percent", SrsAmf0Any::number(m->percent_swap));
sys->set("cpus", SrsAmf0Any::number(c->nb_processors));
sys->set("cpus_online", SrsAmf0Any::number(c->nb_processors_online));
sys->set("uptime", SrsAmf0Any::number(p->os_uptime));
sys->set("ilde_time", SrsAmf0Any::number(p->os_ilde_time));
sys->set("load_1m", SrsAmf0Any::number(p->load_one_minutes));
sys->set("load_5m", SrsAmf0Any::number(p->load_five_minutes));
sys->set("load_15m", SrsAmf0Any::number(p->load_fifteen_minutes));
// system network bytes stat.
sys->set("net_sample_time", SrsAmf0Any::number(n_sample_time));
// internet public address network device bytes.
sys->set("net_recv_bytes", SrsAmf0Any::number(nr_bytes));
sys->set("net_send_bytes", SrsAmf0Any::number(ns_bytes));
// intranet private address network device bytes.
sys->set("net_recvi_bytes", SrsAmf0Any::number(nri_bytes));
sys->set("net_sendi_bytes", SrsAmf0Any::number(nsi_bytes));
// srs network bytes stat.
sys->set("srs_sample_time", SrsAmf0Any::number(nrs->sample_time));
sys->set("srs_recv_bytes", SrsAmf0Any::number(nrs->rbytes));
sys->set("srs_send_bytes", SrsAmf0Any::number(nrs->sbytes));
sys->set("conn_sys", SrsAmf0Any::number(nrs->nb_conn_sys));
sys->set("conn_sys_et", SrsAmf0Any::number(nrs->nb_conn_sys_et));
sys->set("conn_sys_tw", SrsAmf0Any::number(nrs->nb_conn_sys_tw));
sys->set("conn_sys_udp", SrsAmf0Any::number(nrs->nb_conn_sys_udp));
sys->set("conn_srs", SrsAmf0Any::number(nrs->nb_conn_srs));
}