syslog-ng source
stats-registry.c File Reference
#include "stats/stats-registry.h"
#include "stats/stats-query.h"
#include "cfg.h"
#include <string.h>
Include dependency graph for stats-registry.c:

Classes

struct  StatsClusterContainer
 

Functions

void stats_lock (void)
 
void stats_unlock (void)
 
StatsClusterstats_register_counter (gint stats_level, const StatsClusterKey *sc_key, gint type, StatsCounterItem **counter)
 
StatsClusterstats_register_external_counter (gint stats_level, const StatsClusterKey *sc_key, gint type, atomic_gssize *external_counter)
 
StatsClusterstats_register_alias_counter (gint level, const StatsClusterKey *sc_key, gint type, StatsCounterItem *aliased_counter)
 
StatsClusterstats_register_dynamic_counter (gint stats_level, const StatsClusterKey *sc_key, gint type, StatsCounterItem **counter)
 
void stats_register_and_increment_dynamic_counter (gint stats_level, const StatsClusterKey *sc_key, time_t timestamp)
 
void stats_register_associated_counter (StatsCluster *sc, gint type, StatsCounterItem **counter)
 
void stats_unregister_counter (const StatsClusterKey *sc_key, gint type, StatsCounterItem **counter)
 
void stats_unregister_external_counter (const StatsClusterKey *sc_key, gint type, atomic_gssize *external_counter)
 
void stats_unregister_alias_counter (const StatsClusterKey *sc_key, gint type, StatsCounterItem *aliased_counter)
 
void stats_unregister_dynamic_counter (StatsCluster *sc, gint type, StatsCounterItem **counter)
 
StatsClusterstats_get_cluster (const StatsClusterKey *sc_key)
 
gboolean stats_remove_cluster (const StatsClusterKey *sc_key)
 
gboolean stats_contains_counter (const StatsClusterKey *sc_key, gint type)
 
StatsCounterItemstats_get_counter (const StatsClusterKey *sc_key, gint type)
 
void stats_foreach_cluster (StatsForeachClusterFunc func, gpointer user_data, gboolean *cancelled)
 
void stats_foreach_cluster_remove (StatsForeachClusterRemoveFunc func, gpointer user_data)
 
void stats_foreach_counter (StatsForeachCounterFunc func, gpointer user_data, gboolean *cancelled)
 
void stats_foreach_legacy_counter (StatsForeachCounterFunc func, gpointer user_data, gboolean *cancelled)
 
void stats_registry_init (void)
 
void stats_registry_deinit (void)
 

Variables

gboolean stats_locked
 

Function Documentation

◆ stats_contains_counter()

gboolean stats_contains_counter ( const StatsClusterKey *  sc_key,
gint  type 
)

◆ stats_foreach_cluster()

void stats_foreach_cluster ( StatsForeachClusterFunc  func,
gpointer  user_data,
gboolean *  cancelled 
)

◆ stats_foreach_cluster_remove()

void stats_foreach_cluster_remove ( StatsForeachClusterRemoveFunc  func,
gpointer  user_data 
)

◆ stats_foreach_counter()

void stats_foreach_counter ( StatsForeachCounterFunc  func,
gpointer  user_data,
gboolean *  cancelled 
)

◆ stats_foreach_legacy_counter()

void stats_foreach_legacy_counter ( StatsForeachCounterFunc  func,
gpointer  user_data,
gboolean *  cancelled 
)

◆ stats_get_cluster()

StatsCluster* stats_get_cluster ( const StatsClusterKey *  sc_key)

◆ stats_get_counter()

StatsCounterItem* stats_get_counter ( const StatsClusterKey *  sc_key,
gint  type 
)

◆ stats_lock()

void stats_lock ( void  )

◆ stats_register_alias_counter()

StatsCluster* stats_register_alias_counter ( gint  level,
const StatsClusterKey *  sc_key,
gint  type,
StatsCounterItem aliased_counter 
)

◆ stats_register_and_increment_dynamic_counter()

void stats_register_and_increment_dynamic_counter ( gint  stats_level,
const StatsClusterKey *  sc_key,
time_t  timestamp 
)

◆ stats_register_associated_counter()

void stats_register_associated_counter ( StatsCluster sc,
gint  type,
StatsCounterItem **  counter 
)

stats_register_associated_counter: @sc: the dynamic counter that was registered with stats_register_dynamic_counter @type: the type that we want to use in the same StatsCluster instance @counter: the returned pointer to the counter itself

This function registers another counter type in the same StatsCounter instance in order to avoid an unnecessary lookup.

◆ stats_register_counter()

StatsCluster* stats_register_counter ( gint  stats_level,
const StatsClusterKey *  sc_key,
gint  type,
StatsCounterItem **  counter 
)

stats_register_counter: @stats_level: the required statistics level to make this counter available @component: a reference to the syslog-ng component that this counter belongs to (SCS_*) @id: the unique identifier of the configuration item that this counter belongs to @instance: if a given configuration item manages multiple similar counters this makes those unique (like destination filename in case macros are used) @type: the counter type (processed, dropped, etc) @counter: returned pointer to the counter

This function registers a general purpose counter. Whenever multiple objects touch the same counter all of these should register the counter with the same name. Internally the stats subsystem counts the number of users of the same counter in this case, thus the counter will only be freed when all of these uses are unregistered.

◆ stats_register_dynamic_counter()

StatsCluster* stats_register_dynamic_counter ( gint  stats_level,
const StatsClusterKey *  sc_key,
gint  type,
StatsCounterItem **  counter 
)

◆ stats_register_external_counter()

StatsCluster* stats_register_external_counter ( gint  stats_level,
const StatsClusterKey *  sc_key,
gint  type,
atomic_gssize external_counter 
)

◆ stats_registry_deinit()

void stats_registry_deinit ( void  )

◆ stats_registry_init()

void stats_registry_init ( void  )

◆ stats_remove_cluster()

gboolean stats_remove_cluster ( const StatsClusterKey *  sc_key)

◆ stats_unlock()

void stats_unlock ( void  )

◆ stats_unregister_alias_counter()

void stats_unregister_alias_counter ( const StatsClusterKey *  sc_key,
gint  type,
StatsCounterItem aliased_counter 
)

◆ stats_unregister_counter()

void stats_unregister_counter ( const StatsClusterKey *  sc_key,
gint  type,
StatsCounterItem **  counter 
)

◆ stats_unregister_dynamic_counter()

void stats_unregister_dynamic_counter ( StatsCluster sc,
gint  type,
StatsCounterItem **  counter 
)

◆ stats_unregister_external_counter()

void stats_unregister_external_counter ( const StatsClusterKey *  sc_key,
gint  type,
atomic_gssize external_counter 
)

Variable Documentation

◆ stats_locked

gboolean stats_locked