Tor  0.4.7.0-alpha-dev
Data Structures | Macros | Typedefs | Functions
metrics_store.c File Reference

Metrics interface to store them based on specific store type and get their MetricsPort output. More...

#include "orconfig.h"
#include "lib/container/map.h"
#include "lib/log/util_bug.h"
#include "lib/malloc/malloc.h"
#include "lib/metrics/metrics_store.h"
#include "lib/metrics/metrics_store_entry.h"
#include "lib/metrics/prometheus.h"
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  metrics_store_t
 

Typedefs

typedef void() fmt_driver_fn_t(const metrics_store_entry_t *, buf_t *, bool no_comment)
 

Functions

static void metrics_store_free_void (void *p)
 
static void get_output (const metrics_store_t *store, buf_t *data, fmt_driver_fn_t fmt)
 
metrics_store_tmetrics_store_new (void)
 
void metrics_store_free_ (metrics_store_t *store)
 
smartlist_tmetrics_store_get_all (const metrics_store_t *store, const char *name)
 
metrics_store_entry_t * metrics_store_add (metrics_store_t *store, metrics_type_t type, const char *name, const char *help)
 
void metrics_store_get_output (const metrics_format_t fmt, const metrics_store_t *store, buf_t *data)
 
void metrics_store_reset (metrics_store_t *store)
 

Detailed Description

Metrics interface to store them based on specific store type and get their MetricsPort output.

Definition in file metrics_store.c.

Typedef Documentation

◆ fmt_driver_fn_t

typedef void() fmt_driver_fn_t(const metrics_store_entry_t *, buf_t *, bool no_comment)

Function pointer to the format function of a specific driver.

Definition at line 37 of file metrics_store.c.

Function Documentation

◆ get_output()

static void get_output ( const metrics_store_t store,
buf_t *  data,
fmt_driver_fn_t  fmt 
)
static

Put the given store output in the buffer data and use the format function given in fmt to get it for each entry.

Definition at line 56 of file metrics_store.c.

Referenced by metrics_store_get_output().

◆ metrics_store_add()

metrics_store_entry_t* metrics_store_add ( metrics_store_t store,
metrics_type_t  type,
const char *  name,
const char *  help 
)

Add a new metrics entry to the given store and type. The name MUST be the unique identifier. The help string can be omitted.

Definition at line 109 of file metrics_store.c.

Referenced by fill_global_bw_limit_values(), fill_oom_values(), fill_socket_values(), fill_tcp_exhaustion_values(), and init_store().

◆ metrics_store_free_()

void metrics_store_free_ ( metrics_store_t store)

Free the given store including all its entries.

Definition at line 85 of file metrics_store.c.

◆ metrics_store_free_void()

static void metrics_store_free_void ( void *  p)
static

Helper: Free a single entry in a metrics_store_t taking a void pointer parameter.

Definition at line 43 of file metrics_store.c.

◆ metrics_store_get_all()

smartlist_t* metrics_store_get_all ( const metrics_store_t store,
const char *  name 
)

Find all metrics entry in the given store identified by name. If not found, NULL is returned.

Definition at line 98 of file metrics_store.c.

Referenced by hs_metrics_update_by_service().

◆ metrics_store_get_output()

void metrics_store_get_output ( const metrics_format_t  fmt,
const metrics_store_t store,
buf_t *  data 
)

Set the output of the given store of the format fmt into the given buffer data.

Definition at line 132 of file metrics_store.c.

◆ metrics_store_new()

metrics_store_t* metrics_store_new ( void  )

Return a newly allocated and initialized store of the given type.

Definition at line 74 of file metrics_store.c.

Referenced by hs_metrics_service_init().

◆ metrics_store_reset()

void metrics_store_reset ( metrics_store_t store)

Reset a store as in free its content.

Definition at line 150 of file metrics_store.c.

Referenced by fill_store().