libosmocore  0.9.6.311-c977
Osmocom core library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
stats.c File Reference
#include "config.h"
#include <osmocom/core/byteswap.h>
#include <osmocom/core/stats.h>
#include <unistd.h>
#include <string.h>
#include <stdint.h>
#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/rate_ctr.h>
#include <osmocom/core/stat_item.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/statistics.h>
#include <osmocom/core/msgb.h>

Macros

#define STATS_DEFAULT_INTERVAL   5 /* secs */
 
#define STATS_DEFAULT_BUFLEN   256
 

Functions

static LLIST_HEAD (osmo_stats_reporter_list)
 
static int osmo_stats_reporter_log_send_counter (struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)
 
static int osmo_stats_reporter_log_send_item (struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)
 
static int update_srep_config (struct osmo_stats_reporter *srep)
 
static void osmo_stats_timer_cb (void *data)
 
static int start_timer ()
 
struct osmo_stats_reporter * osmo_stats_reporter_alloc (enum osmo_stats_reporter_type type, const char *name)
 
void osmo_stats_reporter_free (struct osmo_stats_reporter *srep)
 
void osmo_stats_init (void *ctx)
 
struct osmo_stats_reporter * osmo_stats_reporter_find (enum osmo_stats_reporter_type type, const char *name)
 
int osmo_stats_reporter_set_max_class (struct osmo_stats_reporter *srep, enum osmo_stats_class class_id)
 
int osmo_stats_set_interval (int interval)
 
int osmo_stats_reporter_set_name_prefix (struct osmo_stats_reporter *srep, const char *prefix)
 
int osmo_stats_reporter_enable (struct osmo_stats_reporter *srep)
 
int osmo_stats_reporter_disable (struct osmo_stats_reporter *srep)
 
struct osmo_stats_reporter * osmo_stats_reporter_create_log (const char *name)
 
static int osmo_stats_reporter_log_send (struct osmo_stats_reporter *srep, const char *type, const char *name1, unsigned int index1, const char *name2, int value, const char *unit)
 
static int osmo_stats_reporter_check_config (struct osmo_stats_reporter *srep, unsigned int index, int class_id)
 
static int osmo_stats_reporter_send_counter (struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)
 
static int rate_ctr_handler (struct rate_ctr_group *ctrg, struct rate_ctr *ctr, const struct rate_ctr_desc *desc, void *sctx_)
 
static int rate_ctr_group_handler (struct rate_ctr_group *ctrg, void *sctx_)
 
static int osmo_stats_reporter_send_item (struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int32_t value)
 
static int osmo_stat_item_handler (struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_)
 
static int osmo_stat_item_group_handler (struct osmo_stat_item_group *statg, void *sctx_)
 
static int handle_counter (struct osmo_counter *counter, void *sctx_)
 
static void flush_all_reporters ()
 
int osmo_stats_report ()
 

Variables

static void * osmo_stats_ctx = NULL
 
static int is_initialised = 0
 
static int32_t current_stat_item_index = 0
 
static struct osmo_stats_config s_stats_config
 
struct osmo_stats_config * osmo_stats_config = &s_stats_config
 
static struct osmo_timer_list osmo_stats_timer
 

Macro Definition Documentation

#define STATS_DEFAULT_BUFLEN   256
#define STATS_DEFAULT_INTERVAL   5 /* secs */

Function Documentation

static void flush_all_reporters ( )
static

References llist_for_each_entry.

Referenced by osmo_stats_report().

static LLIST_HEAD ( osmo_stats_reporter_list  )
static
static int osmo_stat_item_group_handler ( struct osmo_stat_item_group statg,
void *  sctx_ 
)
static
void osmo_stats_init ( void *  ctx)
struct osmo_stats_reporter* osmo_stats_reporter_alloc ( enum osmo_stats_reporter_type  type,
const char *  name 
)
static int osmo_stats_reporter_check_config ( struct osmo_stats_reporter *  srep,
unsigned int  index,
int  class_id 
)
static
struct osmo_stats_reporter* osmo_stats_reporter_create_log ( const char *  name)
int osmo_stats_reporter_disable ( struct osmo_stats_reporter *  srep)
int osmo_stats_reporter_enable ( struct osmo_stats_reporter *  srep)

References update_srep_config().

struct osmo_stats_reporter* osmo_stats_reporter_find ( enum osmo_stats_reporter_type  type,
const char *  name 
)

References llist_for_each_entry.

void osmo_stats_reporter_free ( struct osmo_stats_reporter *  srep)
static int osmo_stats_reporter_log_send ( struct osmo_stats_reporter *  srep,
const char *  type,
const char *  name1,
unsigned int  index1,
const char *  name2,
int  value,
const char *  unit 
)
static
static int osmo_stats_reporter_log_send_counter ( struct osmo_stats_reporter *  srep,
const struct rate_ctr_group ctrg,
const struct rate_ctr_desc desc,
int64_t  value,
int64_t  delta 
)
static
static int osmo_stats_reporter_log_send_item ( struct osmo_stats_reporter *  srep,
const struct osmo_stat_item_group statg,
const struct osmo_stat_item_desc desc,
int64_t  value 
)
static
static int osmo_stats_reporter_send_counter ( struct osmo_stats_reporter *  srep,
const struct rate_ctr_group ctrg,
const struct rate_ctr_desc desc,
int64_t  value,
int64_t  delta 
)
static

Referenced by handle_counter(), and rate_ctr_handler().

static int osmo_stats_reporter_send_item ( struct osmo_stats_reporter *  srep,
const struct osmo_stat_item_group statg,
const struct osmo_stat_item_desc desc,
int32_t  value 
)
static

Referenced by osmo_stat_item_handler().

int osmo_stats_reporter_set_max_class ( struct osmo_stats_reporter *  srep,
enum osmo_stats_class  class_id 
)
int osmo_stats_reporter_set_name_prefix ( struct osmo_stats_reporter *  srep,
const char *  prefix 
)

References update_srep_config().

int osmo_stats_set_interval ( int  interval)
static void osmo_stats_timer_cb ( void *  data)
static
static int rate_ctr_group_handler ( struct rate_ctr_group ctrg,
void *  sctx_ 
)
static
static int update_srep_config ( struct osmo_stats_reporter *  srep)
static

Variable Documentation

int32_t current_stat_item_index = 0
static
int is_initialised = 0
static
struct osmo_stats_config* osmo_stats_config = &s_stats_config
void* osmo_stats_ctx = NULL
static
struct osmo_timer_list osmo_stats_timer
static

Referenced by osmo_stats_timer_cb(), and start_timer().

struct osmo_stats_config s_stats_config
static
Initial value:
= {
}
#define STATS_DEFAULT_INTERVAL
Definition: stats.c:52