Tor 0.4.9.8
Loading...
Searching...
No Matches
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, size_t bucket_count, const int64_t *buckets)
 
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.

Macro Definition Documentation

◆ METRICS_STORE_ENTRY_PRIVATE

#define METRICS_STORE_ENTRY_PRIVATE

Definition at line 10 of 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,
size_t bucket_count,
const int64_t * buckets )

◆ 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.

Referenced by metrics_store_free_(), and metrics_store_reset().

◆ 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(), and metrics_store_add().

◆ 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 134 of file metrics_store.c.

Referenced by metrics_get_output().

◆ 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(), and relay_metrics_init().

◆ metrics_store_reset()

void metrics_store_reset ( metrics_store_t * store)

Reset a store as in free its content.

Definition at line 152 of file metrics_store.c.

Referenced by fill_store().