9#define HS_METRICS_ENTRY_PRIVATE
39 bool port_as_label, uint16_t port)
42 const char **error_reasons = NULL;
43 size_t num_error_reasons = 0;
55 case HS_METRICS_NUM_REJECTED_INTRO_REQ:
59 case HS_METRICS_NUM_FAILED_RDV:
65 case HS_METRICS_NUM_INTRODUCTIONS: FALLTHROUGH;
66 case HS_METRICS_APP_WRITE_BYTES: FALLTHROUGH;
67 case HS_METRICS_APP_READ_BYTES: FALLTHROUGH;
68 case HS_METRICS_NUM_ESTABLISHED_RDV: FALLTHROUGH;
69 case HS_METRICS_NUM_RDV: FALLTHROUGH;
70 case HS_METRICS_NUM_ESTABLISHED_INTRO: FALLTHROUGH;
71 case HS_METRICS_POW_NUM_PQUEUE_RDV: FALLTHROUGH;
72 case HS_METRICS_POW_SUGGESTED_EFFORT: FALLTHROUGH;
73 case HS_METRICS_INTRO_CIRC_BUILD_TIME: FALLTHROUGH;
74 case HS_METRICS_REND_CIRC_BUILD_TIME: FALLTHROUGH;
80 if (!num_error_reasons) {
101 for (
size_t i = 0; i < num_error_reasons; ++i) {
102 metrics_store_entry_t *entry =
137 } SMARTLIST_FOREACH_END(p);
150 uint16_t port,
const char *reason,
151 int64_t n, int64_t obs,
bool reset)
184 } SMARTLIST_FOREACH_END(entry);
197 const uint16_t port,
const char *reason,
198 int64_t n, int64_t obs,
bool reset)
229 smartlist_free(stores_list);
const smartlist_t * hs_metrics_get_stores(void)
void hs_metrics_update_by_service(const hs_metrics_key_t key, const hs_service_t *service, uint16_t port, const char *reason, int64_t n, int64_t obs, bool reset)
void hs_metrics_service_free(hs_service_t *service)
void hs_metrics_service_init(hs_service_t *service)
static const char * port_to_str(const uint16_t port)
static void add_metric_with_labels(hs_service_t *service, hs_metrics_key_t metric, bool port_as_label, uint16_t port)
static void init_store(hs_service_t *service)
void hs_metrics_update_by_ident(const hs_metrics_key_t key, const ed25519_public_key_t *ident_pk, const uint16_t port, const char *reason, int64_t n, int64_t obs, bool reset)
Header for feature/hs/hs_metrics.c.
const char * hs_metrics_rend_error_reasons[]
const hs_metrics_entry_t base_metrics[]
const size_t hs_metrics_intro_req_error_reasons_size
const size_t base_metrics_size
const char * hs_metrics_intro_req_error_reasons[]
const size_t hs_metrics_rend_error_reasons_size
Header for feature/hs/hs_metrics_entry.c.
smartlist_t * hs_service_get_metrics_stores(void)
hs_service_t * hs_service_find(const ed25519_public_key_t *identity_pk)
Header file containing service data for the HS subsystem.
Headers for util_malloc.c.
const char * metrics_format_label(const char *key, const char *value)
metrics_store_t * metrics_store_new(void)
smartlist_t * metrics_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)
Header for lib/metrics/metrics_store.c.
void metrics_store_entry_update(metrics_store_entry_t *entry, const int64_t value)
bool metrics_store_entry_is_histogram(const metrics_store_entry_t *entry)
void metrics_store_entry_add_label(metrics_store_entry_t *entry, const char *label)
void metrics_store_hist_entry_update(metrics_store_entry_t *entry, const int64_t value, const int64_t obs)
void metrics_store_entry_reset(metrics_store_entry_t *entry)
bool metrics_store_entry_has_label(const metrics_store_entry_t *entry, const char *label)
int tor_snprintf(char *str, size_t size, const char *format,...)
#define SMARTLIST_FOREACH_BEGIN(sl, type, var)
char onion_address[HS_SERVICE_ADDR_LEN_BASE32+1]
hs_service_config_t config
hs_service_metrics_t metrics
Macros to manage assertions, fatal and non-fatal.