libosmovty  0.9.6.20171026
Osmocom VTY library
stats_vty.c File Reference

VTY interface for statsd / statistic items. More...

#include <stdlib.h>
#include <string.h>
#include "../../config.h"
#include <osmocom/vty/command.h>
#include <osmocom/vty/buffer.h>
#include <osmocom/vty/vty.h>
#include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h>
#include <osmocom/core/stats.h>
#include <osmocom/core/counter.h>
#include <osmocom/core/rate_ctr.h>

Macros

#define CFG_STATS_STR   "Configure stats sub-system\n"
 
#define CFG_REPORTER_STR   "Configure a stats reporter\n"
 
#define SHOW_STATS_STR   "Show statistical values\n"
 

Functions

static struct osmo_stats_reporterosmo_stats_vty2srep (struct vty *vty)
 
static int set_srep_parameter_str (struct vty *vty, int(*fun)(struct osmo_stats_reporter *, const char *), const char *val, const char *param_name)
 
static int set_srep_parameter_int (struct vty *vty, int(*fun)(struct osmo_stats_reporter *, int), const char *val, const char *param_name)
 
 DEFUN (cfg_stats_reporter_local_ip, cfg_stats_reporter_local_ip_cmd,"local-ip ADDR","Set the IP address to which we bind locally\n""IP Address\n")
 
 DEFUN (cfg_no_stats_reporter_local_ip, cfg_no_stats_reporter_local_ip_cmd,"no local-ip", NO_STR"Set the IP address to which we bind locally\n")
 
 DEFUN (cfg_stats_reporter_remote_ip, cfg_stats_reporter_remote_ip_cmd,"remote-ip ADDR","Set the remote IP address to which we connect\n""IP Address\n")
 
 DEFUN (cfg_stats_reporter_remote_port, cfg_stats_reporter_remote_port_cmd,"remote-port <1-65535>","Set the remote port to which we connect\n""Remote port number\n")
 
 DEFUN (cfg_stats_reporter_mtu, cfg_stats_reporter_mtu_cmd,"mtu <100-65535>","Set the maximum packet size\n""Size in byte\n")
 
 DEFUN (cfg_no_stats_reporter_mtu, cfg_no_stats_reporter_mtu_cmd,"no mtu", NO_STR"Set the maximum packet size\n")
 
 DEFUN (cfg_stats_reporter_prefix, cfg_stats_reporter_prefix_cmd,"prefix PREFIX","Set the item name prefix\n""The prefix string\n")
 
 DEFUN (cfg_no_stats_reporter_prefix, cfg_no_stats_reporter_prefix_cmd,"no prefix", NO_STR"Set the item name prefix\n")
 
 DEFUN (cfg_stats_reporter_level, cfg_stats_reporter_level_cmd,"level (global|peer|subscriber)","Set the maximum group level\n""Report global groups only\n""Report global and network peer related groups\n""Report global, peer, and subscriber groups\n")
 
 DEFUN (cfg_stats_reporter_enable, cfg_stats_reporter_enable_cmd,"enable","Enable the reporter\n")
 
 DEFUN (cfg_stats_reporter_disable, cfg_stats_reporter_disable_cmd,"disable","Disable the reporter\n")
 
 DEFUN (cfg_stats_reporter_statsd, cfg_stats_reporter_statsd_cmd,"stats reporter statsd", CFG_STATS_STR CFG_REPORTER_STR"Report to a STATSD server\n")
 
 DEFUN (cfg_stats_interval, cfg_stats_interval_cmd,"stats interval <1-65535>", CFG_STATS_STR"Set the reporting interval\n""Interval in seconds\n")
 
 DEFUN (cfg_no_stats_reporter_statsd, cfg_no_stats_reporter_statsd_cmd,"no stats reporter statsd", NO_STR CFG_STATS_STR CFG_REPORTER_STR"Report to a STATSD server\n")
 
 DEFUN (cfg_stats_reporter_log, cfg_stats_reporter_log_cmd,"stats reporter log", CFG_STATS_STR CFG_REPORTER_STR"Report to the logger\n")
 
 DEFUN (cfg_no_stats_reporter_log, cfg_no_stats_reporter_log_cmd,"no stats reporter log", NO_STR CFG_STATS_STR CFG_REPORTER_STR"Report to the logger\n")
 
 DEFUN (show_stats, show_stats_cmd,"show stats", SHOW_STR SHOW_STATS_STR)
 
 DEFUN (show_stats_level, show_stats_level_cmd,"show stats level (global|peer|subscriber)", SHOW_STR SHOW_STATS_STR"Set the maximum group level\n""Show global groups only\n""Show global and network peer related groups\n""Show global, peer, and subscriber groups\n")
 
static int asciidoc_handle_counter (struct osmo_counter *counter, void *sctx_)
 
static void asciidoc_counter_generate (struct vty *vty)
 
static int asciidoc_rate_ctr_handler (struct rate_ctr_group *ctrg, struct rate_ctr *ctr, const struct rate_ctr_desc *desc, void *sctx_)
 
static int asciidoc_rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *sctx_)
 
static int asciidoc_osmo_stat_item_handler (struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_)
 
static int asciidoc_osmo_stat_item_group_handler (struct osmo_stat_item_group *statg, void *sctx_)
 
 DEFUN (show_stats_asciidoc_table, show_stats_asciidoc_table_cmd,"show asciidoc counters", SHOW_STR"Asciidoc generation\n""Generate table of all registered counters\n")
 
static int config_write_stats_reporter (struct vty *vty, struct osmo_stats_reporter *srep)
 
static int config_write_stats (struct vty *vty)
 
void osmo_stats_vty_add_cmds ()
 Add stats related commands to the VTY Call this once during your application initialization if you would like to have stats VTY commands enabled. More...
 

Variables

struct host host
 
struct cmd_node cfg_stats_node
 
static const struct value_string stats_class_strs []
 

Detailed Description

VTY interface for statsd / statistic items.

This code allows you to register a couple of VTY commands that permit configuration of the Statistics reporting functionality from the VTY.

Use osmo_stats_vty_add_cmds once at application start-up to enable related commands.

Macro Definition Documentation

#define CFG_REPORTER_STR   "Configure a stats reporter\n"
#define CFG_STATS_STR   "Configure stats sub-system\n"
#define SHOW_STATS_STR   "Show statistical values\n"

Function Documentation

static void asciidoc_counter_generate ( struct vty vty)
static
static int asciidoc_handle_counter ( struct osmo_counter counter,
void *  sctx_ 
)
static
static int asciidoc_rate_ctr_handler ( struct rate_ctr_group ctrg,
struct rate_ctr ctr,
const struct rate_ctr_desc desc,
void *  sctx_ 
)
static
DEFUN ( cfg_stats_reporter_local_ip  ,
cfg_stats_reporter_local_ip_cmd  ,
"local-ip ADDR"  ,
"Set the IP address to which we bind locally\n""IP Address\n  
)
DEFUN ( cfg_no_stats_reporter_local_ip  ,
cfg_no_stats_reporter_local_ip_cmd  ,
"no local-ip"  ,
NO_STR"Set the IP address to which we bind locally\n  
)
DEFUN ( cfg_stats_reporter_remote_ip  ,
cfg_stats_reporter_remote_ip_cmd  ,
"remote-ip ADDR"  ,
"Set the remote IP address to which we connect\n""IP Address\n  
)
DEFUN ( cfg_stats_reporter_remote_port  ,
cfg_stats_reporter_remote_port_cmd  ,
"remote-port <1-65535>"  ,
"Set the remote port to which we connect\n""Remote port number\n  
)
DEFUN ( cfg_stats_reporter_mtu  ,
cfg_stats_reporter_mtu_cmd  ,
"mtu <100-65535>"  ,
"Set the maximum packet size\n""Size in byte\n  
)
DEFUN ( cfg_no_stats_reporter_mtu  ,
cfg_no_stats_reporter_mtu_cmd  ,
"no mtu"  ,
NO_STR"Set the maximum packet size\n  
)
DEFUN ( cfg_stats_reporter_prefix  ,
cfg_stats_reporter_prefix_cmd  ,
"prefix PREFIX"  ,
"Set the item name prefix\n""The prefix string\n  
)
DEFUN ( cfg_no_stats_reporter_prefix  ,
cfg_no_stats_reporter_prefix_cmd  ,
"no prefix"  ,
NO_STR"Set the item name prefix\n  
)
DEFUN ( cfg_stats_reporter_level  ,
cfg_stats_reporter_level_cmd  ,
"level (global|peer|subscriber)"  ,
"Set the maximum group level\n""Report global groups only\n""Report global and network peer related groups\n""Report  global,
peer  ,
and subscriber groups\n  
)
DEFUN ( cfg_stats_reporter_enable  ,
cfg_stats_reporter_enable_cmd  ,
"enable"  ,
"Enable the reporter\n  
)
DEFUN ( cfg_stats_reporter_disable  ,
cfg_stats_reporter_disable_cmd  ,
"disable"  ,
"Disable the reporter\n  
)
DEFUN ( cfg_stats_reporter_statsd  ,
cfg_stats_reporter_statsd_cmd  ,
"stats reporter statsd"  ,
CFG_STATS_STR CFG_REPORTER_STR"Report to a STATSD server\n  
)
DEFUN ( cfg_stats_interval  ,
cfg_stats_interval_cmd  ,
"stats interval <1-65535>"  ,
CFG_STATS_STR"Set the reporting interval\n""Interval in seconds\n  
)
DEFUN ( cfg_no_stats_reporter_statsd  ,
cfg_no_stats_reporter_statsd_cmd  ,
"no stats reporter statsd"  ,
NO_STR CFG_STATS_STR CFG_REPORTER_STR"Report to a STATSD server\n  
)
DEFUN ( cfg_no_stats_reporter_log  ,
cfg_no_stats_reporter_log_cmd  ,
"no stats reporter log"  ,
NO_STR CFG_STATS_STR CFG_REPORTER_STR"Report to the logger\n  
)
DEFUN ( show_stats  ,
show_stats_cmd  ,
"show stats"  ,
SHOW_STR  SHOW_STATS_STR 
)
DEFUN ( show_stats_level  ,
show_stats_level_cmd  ,
"show stats level (global|peer|subscriber)"  ,
SHOW_STR SHOW_STATS_STR"Set the maximum group level\n""Show global groups only\n""Show global and network peer related groups\n""Show  global,
peer  ,
and subscriber groups\n  
)
DEFUN ( show_stats_asciidoc_table  ,
show_stats_asciidoc_table_cmd  ,
"show asciidoc counters"  ,
SHOW_STR"Asciidoc generation\n""Generate table of all registered counters\n  
)
static struct osmo_stats_reporter* osmo_stats_vty2srep ( struct vty vty)
static
void osmo_stats_vty_add_cmds ( )

Add stats related commands to the VTY Call this once during your application initialization if you would like to have stats VTY commands enabled.

References CFG_STATS_NODE, CONFIG_NODE, config_write_stats(), install_element(), install_element_ve(), and install_node().

static int set_srep_parameter_int ( struct vty vty,
int(*)(struct osmo_stats_reporter *, int)  fun,
const char *  val,
const char *  param_name 
)
static
static int set_srep_parameter_str ( struct vty vty,
int(*)(struct osmo_stats_reporter *, const char *)  fun,
const char *  val,
const char *  param_name 
)
static

Variable Documentation

struct cmd_node cfg_stats_node
Initial value:
= {
"%s(config-stats)# ",
1
}
Configure the statistics.
Definition: command.h:80
const struct value_string stats_class_strs[]
static
Initial value:
= {
{ OSMO_STATS_CLASS_GLOBAL, "global" },
{ OSMO_STATS_CLASS_PEER, "peer" },
{ OSMO_STATS_CLASS_SUBSCRIBER, "subscriber" },
{ 0, NULL }
}
OSMO_STATS_CLASS_GLOBAL
OSMO_STATS_CLASS_PEER
OSMO_STATS_CLASS_SUBSCRIBER