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"
#define | STATS_STR "Stats related commands\n"

## Functions

static struct osmo_stats_reporter * | osmo_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_flush_period, cfg_stats_reporter_flush_period_cmd, "flush-period <0-65535>", CFG_STATS_STR "Send all stats even if they have not changed (i.e. force the flush)" "every N-th reporting interval. Set to 0 to disable regular flush (default).\n" "0 to disable regular flush (default), 1 to flush every time, 2 to flush every 2nd time, etc\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_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 (cfg_stats_interval, cfg_stats_interval_cmd, "stats interval <0-65535>", CFG_STATS_STR "Set the reporting interval\n" "Interval in seconds (0 disables the reporting interval)\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 | rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *sctx_)
| DEFUN (show_rate_counters, show_rate_counters_cmd, "show rate-counters", SHOW_STR "Show all rate counters\n")
| DEFUN (stats_report, stats_report_cmd, "stats report", STATS_STR "Manurally trigger reporting of stats\n")
static int | reset_rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *sctx_)
static int | reset_osmo_stat_item_group_handler (struct osmo_stat_item_group *statg, void *sctx_)
| DEFUN (stats_reset, stats_reset_cmd, "stats reset", STATS_STR "Reset all stats\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

## CFG_REPORTER_STR

#define CFG_REPORTER_STR "Configure a stats reporter\n"

## CFG_STATS_STR

#define CFG_STATS_STR "Configure stats sub-system\n"

## SHOW_STATS_STR

#define SHOW_STATS_STR "Show statistical values\n"

## STATS_STR

#define STATS_STR "Stats related commands\n"

## Function Documentation

## asciidoc_counter_generate()

static void asciidoc_counter_generate | ( | struct vty * | vty | ) |

static

References asciidoc_handle_counter(), osmo_counters_count(), osmo_counters_for_each(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN().

## asciidoc_handle_counter()

static int asciidoc_handle_counter | ( | struct osmo_counter * | counter,
|  | void * | sctx_
| ) |  |

static

References osmo_counter::description, osmo_counter::name, name, osmo_asciidoc_escape(), VTY_NEWLINE, and vty_out().

Referenced by asciidoc_counter_generate().

## asciidoc_osmo_stat_item_group_handler()

static int asciidoc_osmo_stat_item_group_handler | ( | struct osmo_stat_item_group * | statg,
|  | void * | sctx_
| ) |  |

static

References asciidoc_osmo_stat_item_handler(), osmo_stat_item_group::desc, osmo_stat_item_group_desc::group_description, osmo_stat_item_group_desc::group_name_prefix, osmo_asciidoc_escape(), osmo_stat_item_for_each_item(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN().

## asciidoc_osmo_stat_item_handler()

static int asciidoc_osmo_stat_item_handler | ( | struct osmo_stat_item_group * | statg,
|  | struct osmo_stat_item * | item,
|  | void * | sctx_
| ) |  |

static

References osmo_stat_item::desc, osmo_stat_item_group::desc, osmo_stat_item_desc::description, osmo_stat_item_group_desc::group_name_prefix, osmo_stat_item_desc::name, name, osmo_asciidoc_escape(), osmo_stat_item_desc::unit, VTY_NEWLINE, and vty_out().

Referenced by asciidoc_osmo_stat_item_group_handler().

## asciidoc_rate_ctr_group_handler()

static int asciidoc_rate_ctr_group_handler | ( | struct rate_ctr_group * | ctrg,
|  | void * | sctx_
| ) |  |

static

References asciidoc_rate_ctr_handler(), rate_ctr_group::desc, rate_ctr_group_desc::group_description, rate_ctr_group_desc::group_name_prefix, osmo_asciidoc_escape(), rate_ctr_for_each_counter(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN().

## asciidoc_rate_ctr_handler()

static int asciidoc_rate_ctr_handler | ( | struct rate_ctr_group * | ctrg,
|  | struct rate_ctr * | ctr,
|  | const struct rate_ctr_desc * | desc,
|  | void * | sctx_
| ) |  |

static

References rate_ctr_group::desc, rate_ctr_group_desc::group_name_prefix, name, osmo_asciidoc_escape(), VTY_NEWLINE, and vty_out().

Referenced by asciidoc_rate_ctr_group_handler().

## config_write_stats()

static int config_write_stats | ( | struct vty * | vty | ) |

static

References config_write_stats_reporter(), osmo_stats_config::interval, osmo_stats_reporter_find(), OSMO_STATS_REPORTER_LOG, OSMO_STATS_REPORTER_STATSD, VTY_NEWLINE, and vty_out().

Referenced by osmo_stats_vty_add_cmds().

## config_write_stats_reporter()

static int config_write_stats_reporter | ( | struct vty * | vty,
|  | struct osmo_stats_reporter * | srep
| ) |  |

static

References osmo_stats_reporter::bind_addr_str, osmo_stats_reporter::dest_addr_str, osmo_stats_reporter::dest_port, osmo_stats_reporter::enabled, osmo_stats_reporter::flush_period, get_value_string(), osmo_stats_reporter::have_net_config, osmo_stats_reporter::max_class, osmo_stats_reporter::mtu, osmo_stats_reporter::name_prefix, OSMO_STATS_REPORTER_LOG, OSMO_STATS_REPORTER_STATSD, stats_class_strs, osmo_stats_reporter::type, VTY_NEWLINE, and vty_out().

Referenced by config_write_stats().

## DEFUN() [1/23]

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" |
| ) |  |

References osmo_stats_reporter_set_local_addr(), and set_srep_parameter_str().

## DEFUN() [2/23]

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" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, osmo_stats_reporter_find(), osmo_stats_reporter_free(), OSMO_STATS_REPORTER_LOG, VTY_NEWLINE, and vty_out().

## DEFUN() [3/23]

DEFUN | ( | cfg_no_stats_reporter_mtu | ,
|  | cfg_no_stats_reporter_mtu_cmd | ,
|  | "no mtu" | ,
|  | NO_STR "Set the maximum packet size\n" |
| ) |  |

References osmo_stats_reporter_set_mtu(), and set_srep_parameter_int().

## DEFUN() [4/23]

DEFUN | ( | cfg_no_stats_reporter_prefix | ,
|  | cfg_no_stats_reporter_prefix_cmd | ,
|  | "no prefix" | ,
|  | NO_STR "Set the item name prefix\n" |
| ) |  |

References osmo_stats_reporter_set_name_prefix(), and set_srep_parameter_str().

## DEFUN() [5/23]

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" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, osmo_stats_reporter_find(), osmo_stats_reporter_free(), OSMO_STATS_REPORTER_STATSD, VTY_NEWLINE, and vty_out().

## DEFUN() [6/23]

DEFUN | ( | cfg_stats_interval | ,
|  | cfg_stats_interval_cmd | ,
|  | "stats interval <0-65535>" | ,
|  | CFG_STATS_STR "Set the reporting interval\n" "Interval in seconds (0 disables the reporting interval)\n" |
| ) |  |

References argv, CMD_SUCCESS, CMD_WARNING, osmo_stats_set_interval(), VTY_NEWLINE, and vty_out().

## DEFUN() [7/23]

DEFUN | ( | cfg_stats_reporter_disable | ,
|  | cfg_stats_reporter_disable_cmd | ,
|  | "disable" | ,
|  | "Disable the reporter\n" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, OSMO_ASSERT, osmo_stats_reporter_disable(), osmo_stats_vty2srep(), VTY_NEWLINE, and vty_out().

## DEFUN() [8/23]

DEFUN | ( | cfg_stats_reporter_enable | ,
|  | cfg_stats_reporter_enable_cmd | ,
|  | "enable" | ,
|  | "Enable the reporter\n" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, OSMO_ASSERT, osmo_stats_reporter_enable(), osmo_stats_vty2srep(), VTY_NEWLINE, and vty_out().

## DEFUN() [9/23]

DEFUN | ( | cfg_stats_reporter_flush_period | ,
|  | cfg_stats_reporter_flush_period_cmd | ,
|  | "flush-period <0-65535>" | ,
|  | CFG_STATS_STR "Send all stats even if they have not changed | i.e. force the flush)" "every N-th reporting interval. Set to 0 to disable regular flush (default).\n" "0 to disable regular flush (default,
|  | 1 to flush every | time,
|  | 2 to flush every 2nd | time,
|  | etc\n" |
| ) |  |

References argv, CMD_SUCCESS, CMD_WARNING, OSMO_ASSERT, osmo_stats_reporter_set_flush_period(), osmo_stats_vty2srep(), VTY_NEWLINE, and vty_out().

## DEFUN() [10/23]

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" |
| ) |  |

References argv, CMD_WARNING, get_string_value(), level, OSMO_ASSERT, osmo_stats_reporter_set_max_class(), osmo_stats_vty2srep(), stats_class_strs, VTY_NEWLINE, and vty_out().

## DEFUN() [11/23]

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" |
| ) |  |

References argv, osmo_stats_reporter_set_local_addr(), and set_srep_parameter_str().

## DEFUN() [12/23]

DEFUN | ( | cfg_stats_reporter_log | ,
|  | cfg_stats_reporter_log_cmd | ,
|  | "stats reporter log" | ,
|  | CFG_STATS_STR CFG_REPORTER_STR "Report to the logger\n" |
| ) |  |

References CFG_STATS_NODE, CMD_SUCCESS, CMD_WARNING, vty::index, osmo_stats_reporter::max_class, vty::node, OSMO_STATS_CLASS_GLOBAL, osmo_stats_reporter_create_log(), osmo_stats_reporter_find(), OSMO_STATS_REPORTER_LOG, VTY_NEWLINE, and vty_out().

## DEFUN() [13/23]

DEFUN | ( | cfg_stats_reporter_mtu | ,
|  | cfg_stats_reporter_mtu_cmd | ,
|  | "mtu <100-65535>" | ,
|  | "Set the maximum packet size\n" "Size in byte\n" |
| ) |  |

References argv, osmo_stats_reporter_set_mtu(), and set_srep_parameter_int().

## DEFUN() [14/23]

DEFUN | ( | cfg_stats_reporter_prefix | ,
|  | cfg_stats_reporter_prefix_cmd | ,
|  | "prefix PREFIX" | ,
|  | "Set the item name prefix\n" "The prefix string\n" |
| ) |  |

References argv, osmo_stats_reporter_set_name_prefix(), and set_srep_parameter_str().

## DEFUN() [15/23]

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" |
| ) |  |

References argv, osmo_stats_reporter_set_remote_addr(), and set_srep_parameter_str().

## DEFUN() [16/23]

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" |
| ) |  |

References argv, osmo_stats_reporter_set_remote_port(), and set_srep_parameter_int().

## DEFUN() [17/23]

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" |
| ) |  |

References CFG_STATS_NODE, CMD_SUCCESS, CMD_WARNING, vty::index, osmo_stats_reporter::max_class, vty::node, OSMO_STATS_CLASS_GLOBAL, osmo_stats_reporter_create_statsd(), osmo_stats_reporter_find(), OSMO_STATS_REPORTER_STATSD, VTY_NEWLINE, and vty_out().

## DEFUN() [18/23]

DEFUN | ( | show_rate_counters | ,
|  | show_rate_counters_cmd | ,
|  | "show rate-counters" | ,
|  | SHOW_STR "Show all rate counters\n" |
| ) |  |

References CMD_SUCCESS, rate_ctr_for_each_group(), and rate_ctr_group_handler().

## DEFUN() [19/23]

DEFUN | ( | show_stats | ,
|  | show_stats_cmd | ,
|  | "show stats" | ,
|  | SHOW_STR | SHOW_STATS_STR
| ) |  |

References CMD_SUCCESS, and vty_out_statistics_full().

## DEFUN() [20/23]

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" |
| ) |  |

References host::app_info, asciidoc_counter_generate(), asciidoc_osmo_stat_item_group_handler(), asciidoc_rate_ctr_group_handler(), CMD_SUCCESS, vty_app_info::name, osmo_stat_item_for_each_group(), rate_ctr_for_each_group(), vty_app_info::version, VTY_NEWLINE, and vty_out().

## DEFUN() [21/23]

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" |
| ) |  |

References argv, CMD_SUCCESS, get_string_value(), level, stats_class_strs, and vty_out_statistics_partial().

## DEFUN() [22/23]

DEFUN | ( | stats_report | ,
|  | stats_report_cmd | ,
|  | "stats report" | ,
|  | STATS_STR "Manurally trigger reporting of stats\n" |
| ) |  |

References CMD_SUCCESS, and osmo_stats_report().

## DEFUN() [23/23]

DEFUN | ( | stats_reset | ,
|  | stats_reset_cmd | ,
|  | "stats reset" | ,
|  | STATS_STR "Reset all stats\n" |
| ) |  |

References CMD_SUCCESS, osmo_stat_item_for_each_group(), rate_ctr_for_each_group(), reset_osmo_stat_item_group_handler(), and reset_rate_ctr_group_handler().

## osmo_stats_vty2srep()

static struct osmo_stats_reporter* osmo_stats_vty2srep | ( | struct vty * | vty | ) |

static

References CFG_STATS_NODE, vty::index, and vty::node.

Referenced by DEFUN(), set_srep_parameter_int(), and set_srep_parameter_str().

## osmo_stats_vty_add_cmds()

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, cfg_stats_node, CONFIG_NODE, config_write_stats(), ENABLE_NODE, install_element(), install_element_ve(), and install_node().

## rate_ctr_group_handler()

static int rate_ctr_group_handler | ( | struct rate_ctr_group * | ctrg,
|  | void * | sctx_
| ) |  |

static

References rate_ctr_group::desc, rate_ctr_group_desc::group_description, rate_ctr_group::idx, VTY_NEWLINE, vty_out(), and vty_out_rate_ctr_group_fmt().

Referenced by DEFUN().

## reset_osmo_stat_item_group_handler()

static int reset_osmo_stat_item_group_handler | ( | struct osmo_stat_item_group * | statg,
|  | void * | sctx_
| ) |  |

static

References osmo_stat_item_group_reset().

Referenced by DEFUN().

## reset_rate_ctr_group_handler()

static int reset_rate_ctr_group_handler | ( | struct rate_ctr_group * | ctrg,
|  | void * | sctx_
| ) |  |

static

References rate_ctr_group_reset().

Referenced by DEFUN().

## set_srep_parameter_int()

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

static

References CMD_SUCCESS, CMD_WARNING, OSMO_ASSERT, osmo_stats_vty2srep(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN().

## set_srep_parameter_str()

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

References CMD_SUCCESS, CMD_WARNING, OSMO_ASSERT, osmo_stats_vty2srep(), VTY_NEWLINE, and vty_out().

Referenced by DEFUN().

## Variable Documentation

## cfg_stats_node

struct cmd_node cfg_stats_node

Initial value:
= {
CFG_STATS_NODE,
"%s(config-stats)# ",
1
}
CFG_STATS_NODE
@ CFG_STATS_NODE
Configure the statistics.
Definition: command.h:80

Referenced by osmo_stats_vty_add_cmds().

## stats_class_strs

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_PEER
OSMO_STATS_CLASS_PEER
OSMO_STATS_CLASS_GLOBAL
OSMO_STATS_CLASS_GLOBAL
OSMO_STATS_CLASS_SUBSCRIBER
OSMO_STATS_CLASS_SUBSCRIBER

Referenced by config_write_stats_reporter(), and DEFUN().