From c5dc3484aed55d6594bd1e530729c23a3ffd692a Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 22 Sep 2021 11:28:02 -0400 Subject: [PATCH] TT#131402 split up relay stats between kernel and userspace Change-Id: I9e5a82e5817829d8a1b17e6828bb0594fbc8df08 --- daemon/call.c | 2 +- daemon/call_interfaces.c | 5 +- daemon/cli.c | 27 +- daemon/graphite.c | 14 +- daemon/media_socket.c | 10 +- daemon/statistics.c | 59 +++- include/counter_stats_fields.inc | 9 +- t/test-stats.c | 469 +++++++++++++++++++++++++++++-- 8 files changed, 549 insertions(+), 46 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index f74ce2152..ab986833a 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -515,7 +515,7 @@ destroy: else \ diff_ ## x = ke->stats.x - ks_val; \ atomic64_add(&ps->stats.x, diff_ ## x); \ - RTPE_STATS_ADD(x, diff_ ## x); \ + RTPE_STATS_ADD(x ## _kernel, diff_ ## x); \ } while (0) void call_timer(void *ptr) { diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index ae2149675..a42866711 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -456,7 +456,7 @@ void calls_status_tcp(struct streambuf_stream *s) { rwlock_lock_r(&rtpe_callhash_lock); streambuf_printf(s->outbuf, "proxy %u "UINT64F"/%i/%i\n", g_hash_table_size(rtpe_callhash), - atomic64_get(&rtpe_stats.intv.bytes), 0, 0); + atomic64_get(&rtpe_stats.intv.bytes_user) + atomic64_get(&rtpe_stats.intv.bytes_kernel), 0, 0); rwlock_unlock_r(&rtpe_callhash_lock); ITERATE_CALL_LIST_START(CALL_ITERATOR_MAIN, c); @@ -1263,7 +1263,8 @@ static enum load_limit_reasons call_offer_session_limit(void) { } if (ret == LOAD_LIMIT_NONE && rtpe_config.bw_limit) { - uint64_t bw = atomic64_get(&rtpe_stats.intv.bytes); + uint64_t bw = atomic64_get(&rtpe_stats.intv.bytes_user) + + atomic64_get(&rtpe_stats.intv.bytes_kernel); if (bw >= rtpe_config.bw_limit) { ilog(LOG_WARN, "Bandwidth limit exceeded (%" PRIu64 " > %" PRIu64 ")", bw, rtpe_config.bw_limit); diff --git a/daemon/cli.c b/daemon/cli.c index 5d1ef9bf3..f335773cd 100644 --- a/daemon/cli.c +++ b/daemon/cli.c @@ -406,12 +406,27 @@ static void cli_incoming_params_revert(str *instr, struct cli_writer *cw) { static void cli_incoming_list_counters(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "\nCurrent per-second counters:\n\n"); - cw->cw_printf(cw, " Packets per second :%" PRIu64 "\n", - atomic64_get(&rtpe_stats.intv.packets)); - cw->cw_printf(cw, " Bytes per second :%" PRIu64 "\n", - atomic64_get(&rtpe_stats.intv.bytes)); - cw->cw_printf(cw, " Errors per second :%" PRIu64 "\n", - atomic64_get(&rtpe_stats.intv.errors)); + cw->cw_printf(cw, " Packets per second (userspace) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.packets_user)); + cw->cw_printf(cw, " Bytes per second (userspace) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.bytes_user)); + cw->cw_printf(cw, " Errors per second (userspace) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.errors_user)); + cw->cw_printf(cw, " Packets per second (kernel) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.packets_kernel)); + cw->cw_printf(cw, " Bytes per second (kernel) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.bytes_kernel)); + cw->cw_printf(cw, " Errors per second (kernel) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.errors_kernel)); + cw->cw_printf(cw, " Packets per second (total) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.packets_user) + + atomic64_get(&rtpe_stats.intv.packets_kernel)); + cw->cw_printf(cw, " Bytes per second (total) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.bytes_user) + + atomic64_get(&rtpe_stats.intv.bytes_kernel)); + cw->cw_printf(cw, " Errors per second (total) :%" PRIu64 "\n", + atomic64_get(&rtpe_stats.intv.errors_user) + + atomic64_get(&rtpe_stats.intv.errors_kernel)); } static void cli_incoming_list_totals(str *instr, struct cli_writer *cw) { diff --git a/daemon/graphite.c b/daemon/graphite.c index eaaf94d9d..b7d5e662e 100644 --- a/daemon/graphite.c +++ b/daemon/graphite.c @@ -116,8 +116,18 @@ GString *print_graphite_data(void) { GPF("nopacket_relayed_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.nopacket_relayed_sess)); GPF("oneway_stream_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.oneway_stream_sess)); GPF("regular_term_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.regular_term_sess)); - GPF("relayed_errors "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.errors)); - GPF("relayed_packets "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.packets)); + GPF("relayed_errors_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.errors_user)); + GPF("relayed_packets_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.packets_user)); + GPF("relayed_bytes_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.bytes_user)); + GPF("relayed_errors_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.errors_kernel)); + GPF("relayed_packets_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.packets_kernel)); + GPF("relayed_bytes_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.bytes_kernel)); + GPF("relayed_errors "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.errors_user) + + atomic64_get_na(&rtpe_stats_graphite_interval.errors_kernel)); + GPF("relayed_packets "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.packets_user) + + atomic64_get_na(&rtpe_stats_graphite_interval.packets_kernel)); + GPF("relayed_bytes "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.bytes_user) + + atomic64_get_na(&rtpe_stats_graphite_interval.bytes_kernel)); GPF("silent_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.silent_timeout_sess)); GPF("final_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.final_timeout_sess)); GPF("offer_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_interval.offer_timeout_sess)); diff --git a/daemon/media_socket.c b/daemon/media_socket.c index ed74dde4d..c78333eba 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -1798,7 +1798,7 @@ static void media_packet_rtp_in(struct packet_handler_ctx *phc) phc->payload_type, FMT_M(endpoint_print_buf(&phc->mp.fsin))); atomic64_inc(&phc->mp.stream->stats.errors); - RTPE_STATS_INC(errors); + RTPE_STATS_INC(errors_user); } else { atomic64_inc(&rtp_s->packets); @@ -2292,8 +2292,8 @@ static int stream_packet(struct packet_handler_ctx *phc) { } atomic64_add(&phc->mp.stream->stats.bytes, phc->s.len); atomic64_set(&phc->mp.stream->last_packet, rtpe_now.tv_sec); - RTPE_STATS_INC(packets); - RTPE_STATS_ADD(bytes, phc->s.len); + RTPE_STATS_INC(packets_user); + RTPE_STATS_ADD(bytes_user, phc->s.len); int address_check = media_packet_address_check(phc); if (address_check) @@ -2400,7 +2400,7 @@ static int stream_packet(struct packet_handler_ctx *phc) { err_next: ilog(LOG_DEBUG,"Error when sending message. Error: %s", strerror(errno)); atomic64_inc(&sh->sink->stats.errors); - RTPE_STATS_INC(errors); + RTPE_STATS_INC(errors_user); goto next; next: @@ -2442,7 +2442,7 @@ out: if (handler_ret < 0) { atomic64_inc(&phc->mp.stream->stats.errors); - RTPE_STATS_INC(errors); + RTPE_STATS_INC(errors_user); } rwlock_unlock_r(&phc->mp.call->master_lock); diff --git a/daemon/statistics.c b/daemon/statistics.c index 8721a0573..46a51770b 100644 --- a/daemon/statistics.c +++ b/daemon/statistics.c @@ -349,9 +349,27 @@ GQueue *statistics_gather_metrics(void) { METRIC("transcodedmedia", "Transcoded media", UINT64F, UINT64F, atomic64_get(&rtpe_stats_gauge.transcoded_media)); PROM("transcoded_media", "gauge"); - METRIC("packetrate", "Packets per second", UINT64F, UINT64F, atomic64_get(&rtpe_stats.intv.packets)); - METRIC("byterate", "Bytes per second", UINT64F, UINT64F, atomic64_get(&rtpe_stats.intv.bytes)); - METRIC("errorrate", "Errors per second", UINT64F, UINT64F, atomic64_get(&rtpe_stats.intv.errors)); + METRIC("packetrate_user", "Packets per second (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.packets_user)); + METRIC("byterate_user", "Bytes per second (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.bytes_user)); + METRIC("errorrate_user", "Errors per second (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.errors_user)); + METRIC("packetrate_kernel", "Packets per second (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.packets_kernel)); + METRIC("byterate_kernel", "Bytes per second (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.bytes_kernel)); + METRIC("errorrate_kernel", "Errors per second (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.errors_kernel)); + METRIC("packetrate", "Packets per second (total)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.packets_user) + + atomic64_get(&rtpe_stats.intv.packets_kernel)); + METRIC("byterate", "Bytes per second (total)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.bytes_user) + + atomic64_get(&rtpe_stats.intv.bytes_kernel)); + METRIC("errorrate", "Errors per second (total)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats.intv.errors_user) + + atomic64_get(&rtpe_stats.intv.errors_kernel)); num_sessions = atomic64_get(&rtpe_stats.ax.managed_sess); long long avg_us = num_sessions ? atomic64_get(&rtpe_stats.ax.call_duration) / num_sessions : 0; @@ -388,12 +406,41 @@ GQueue *statistics_gather_metrics(void) { PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"force_terminated\""); - METRIC("relayedpackets", "Total relayed packets", UINT64F, UINT64F, atomic64_get(&rtpe_stats_cumulative.packets)); + METRIC("relayedpackets_user", "Total relayed packets (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.packets_user)); PROM("packets_total", "counter"); - METRIC("relayedpacketerrors", "Total relayed packet errors", UINT64F, UINT64F, atomic64_get(&rtpe_stats_cumulative.errors)); + PROMLAB("type=\"userspace\""); + METRIC("relayedpacketerrors_user", "Total relayed packet errors (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.errors_user)); PROM("packet_errors_total", "counter"); - METRIC("relayedbytes", "Total relayed bytes", UINT64F, UINT64F, atomic64_get(&rtpe_stats_cumulative.bytes)); + PROMLAB("type=\"userspace\""); + METRIC("relayedbytes_user", "Total relayed bytes (userspace)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.bytes_user)); PROM("bytes_total", "counter"); + PROMLAB("type=\"userspace\""); + + METRIC("relayedpackets_kernel", "Total relayed packets (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.packets_kernel)); + PROM("packets_total", "counter"); + PROMLAB("type=\"kernel\""); + METRIC("relayedpacketerrors_kernel", "Total relayed packet errors (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.errors_kernel)); + PROM("packet_errors_total", "counter"); + PROMLAB("type=\"kernel\""); + METRIC("relayedbytes_kernel", "Total relayed bytes (kernel)", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.bytes_kernel)); + PROM("bytes_total", "counter"); + PROMLAB("type=\"kernel\""); + + METRIC("relayedpackets", "Total relayed packets", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.packets_kernel) + + atomic64_get(&rtpe_stats_cumulative.packets_user)); + METRIC("relayedpacketerrors", "Total relayed packet errors", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.errors_kernel) + + atomic64_get(&rtpe_stats_cumulative.errors_user)); + METRIC("relayedbytes", "Total relayed bytes", UINT64F, UINT64F, + atomic64_get(&rtpe_stats_cumulative.bytes_kernel) + + atomic64_get(&rtpe_stats_cumulative.bytes_user)); METRIC("zerowaystreams", "Total number of streams with no relayed packets", UINT64F, UINT64F, atomic64_get(&rtpe_stats_cumulative.nopacket_relayed_sess)); PROM("zero_packet_streams_total", "counter"); diff --git a/include/counter_stats_fields.inc b/include/counter_stats_fields.inc index 06343c6dc..985294bf4 100644 --- a/include/counter_stats_fields.inc +++ b/include/counter_stats_fields.inc @@ -1,6 +1,9 @@ -F(packets) -F(bytes) -F(errors) +F(packets_user) +F(bytes_user) +F(errors_user) +F(packets_kernel) +F(bytes_kernel) +F(errors_kernel) FA(ng_commands, NGC_COUNT) F(timeout_sess) F(managed_sess) diff --git a/t/test-stats.c b/t/test-stats.c index 68da88fab..8d43681ab 100644 --- a/t/test-stats.c +++ b/t/test-stats.c @@ -163,8 +163,15 @@ int main(void) { "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" + "relayed_errors_user 0 150\n" + "relayed_packets_user 0 150\n" + "relayed_bytes_user 0 150\n" + "relayed_errors_kernel 0 150\n" + "relayed_packets_kernel 0 150\n" + "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" + "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" @@ -269,15 +276,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -330,6 +361,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -925,8 +986,15 @@ int main(void) { "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" + "relayed_errors_user 0 150\n" + "relayed_packets_user 0 150\n" + "relayed_bytes_user 0 150\n" + "relayed_errors_kernel 0 150\n" + "relayed_packets_kernel 0 150\n" + "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" + "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" @@ -1031,15 +1099,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -1092,6 +1184,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -1684,8 +1806,15 @@ int main(void) { "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" + "relayed_errors_user 0 150\n" + "relayed_packets_user 0 150\n" + "relayed_bytes_user 0 150\n" + "relayed_errors_kernel 0 150\n" + "relayed_packets_kernel 0 150\n" + "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" + "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" @@ -1790,15 +1919,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -1851,6 +2004,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -2456,8 +2639,15 @@ int main(void) { "nopacket_relayed_sess 0 157\n" "oneway_stream_sess 0 157\n" "regular_term_sess 0 157\n" + "relayed_errors_user 0 157\n" + "relayed_packets_user 0 157\n" + "relayed_bytes_user 0 157\n" + "relayed_errors_kernel 0 157\n" + "relayed_packets_kernel 0 157\n" + "relayed_bytes_kernel 0 157\n" "relayed_errors 0 157\n" "relayed_packets 0 157\n" + "relayed_bytes 0 157\n" "silent_timeout_sess 0 157\n" "final_timeout_sess 0 157\n" "offer_timeout_sess 0 157\n" @@ -2562,15 +2752,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -2623,6 +2837,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -3223,8 +3467,15 @@ int main(void) { "nopacket_relayed_sess 0 157\n" "oneway_stream_sess 0 157\n" "regular_term_sess 0 157\n" + "relayed_errors_user 0 157\n" + "relayed_packets_user 0 157\n" + "relayed_bytes_user 0 157\n" + "relayed_errors_kernel 0 157\n" + "relayed_packets_kernel 0 157\n" + "relayed_bytes_kernel 0 157\n" "relayed_errors 0 157\n" "relayed_packets 0 157\n" + "relayed_bytes 0 157\n" "silent_timeout_sess 0 157\n" "final_timeout_sess 0 157\n" "offer_timeout_sess 0 157\n" @@ -3329,15 +3580,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -3390,6 +3665,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -3985,8 +4290,15 @@ int main(void) { "nopacket_relayed_sess 0 200\n" "oneway_stream_sess 0 200\n" "regular_term_sess 0 200\n" + "relayed_errors_user 0 200\n" + "relayed_packets_user 0 200\n" + "relayed_bytes_user 0 200\n" + "relayed_errors_kernel 0 200\n" + "relayed_packets_kernel 0 200\n" + "relayed_bytes_kernel 0 200\n" "relayed_errors 0 200\n" "relayed_packets 0 200\n" + "relayed_bytes 0 200\n" "silent_timeout_sess 0 200\n" "final_timeout_sess 0 200\n" "offer_timeout_sess 0 200\n" @@ -4091,15 +4403,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -4152,6 +4488,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" @@ -4749,8 +5115,15 @@ int main(void) { "nopacket_relayed_sess 2 200\n" "oneway_stream_sess 0 200\n" "regular_term_sess 0 200\n" + "relayed_errors_user 0 200\n" + "relayed_packets_user 0 200\n" + "relayed_bytes_user 0 200\n" + "relayed_errors_kernel 0 200\n" + "relayed_packets_kernel 0 200\n" + "relayed_bytes_kernel 0 200\n" "relayed_errors 0 200\n" "relayed_packets 0 200\n" + "relayed_bytes 0 200\n" "silent_timeout_sess 0 200\n" "final_timeout_sess 0 200\n" "offer_timeout_sess 0 200\n" @@ -4855,15 +5228,39 @@ int main(void) { "transcodedmedia\n" "0\n" "0\n" - "Packets per second\n" + "Packets per second (userspace)\n" + "packetrate_user\n" + "0\n" + "0\n" + "Bytes per second (userspace)\n" + "byterate_user\n" + "0\n" + "0\n" + "Errors per second (userspace)\n" + "errorrate_user\n" + "0\n" + "0\n" + "Packets per second (kernel)\n" + "packetrate_kernel\n" + "0\n" + "0\n" + "Bytes per second (kernel)\n" + "byterate_kernel\n" + "0\n" + "0\n" + "Errors per second (kernel)\n" + "errorrate_kernel\n" + "0\n" + "0\n" + "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" - "Bytes per second\n" + "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" - "Errors per second\n" + "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" @@ -4916,6 +5313,36 @@ int main(void) { "0\n" "0\n" "reason=\"force_terminated\"\n" + "Total relayed packets (userspace)\n" + "relayedpackets_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packet errors (userspace)\n" + "relayedpacketerrors_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed bytes (userspace)\n" + "relayedbytes_user\n" + "0\n" + "0\n" + "type=\"userspace\"\n" + "Total relayed packets (kernel)\n" + "relayedpackets_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed packet errors (kernel)\n" + "relayedpacketerrors_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" + "Total relayed bytes (kernel)\n" + "relayedbytes_kernel\n" + "0\n" + "0\n" + "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n"