Tor 0.4.9.2-alpha-dev
|
Relay metrics exposed through the MetricsPort. More...
#include "orconfig.h"
#include "core/or/or.h"
#include "core/mainloop/connection.h"
#include "core/mainloop/mainloop.h"
#include "core/or/command.h"
#include "core/or/congestion_control_common.h"
#include "core/or/congestion_control_vegas.h"
#include "core/or/congestion_control_flow.h"
#include "core/or/circuitlist.h"
#include "core/or/dos.h"
#include "core/or/relay.h"
#include "app/config/config.h"
#include "lib/container/smartlist.h"
#include "lib/log/util_bug.h"
#include "lib/malloc/malloc.h"
#include "lib/math/fp.h"
#include "lib/metrics/metrics_store.h"
#include "feature/hs/hs_dos.h"
#include "feature/nodelist/nodelist.h"
#include "feature/nodelist/node_st.h"
#include "feature/nodelist/routerstatus_st.h"
#include "feature/nodelist/torcert.h"
#include "feature/relay/relay_metrics.h"
#include "feature/relay/router.h"
#include "feature/relay/routerkeys.h"
#include "feature/stats/rephist.h"
#include <event2/dns.h>
Go to the source code of this file.
Functions | |
static void | fill_cc_counters_values (void) |
static void | fill_cc_gauges_values (void) |
static void | fill_circuits_values (void) |
static void | fill_conn_counter_values (void) |
static void | fill_conn_gauge_values (void) |
static void | fill_dns_error_values (void) |
static void | fill_dns_query_values (void) |
static void | fill_dos_values (void) |
static void | fill_global_bw_limit_values (void) |
static void | fill_socket_values (void) |
static void | fill_onionskins_values (void) |
static void | fill_oom_values (void) |
static void | fill_streams_values (void) |
static void | fill_relay_circ_proto_violation (void) |
static void | fill_relay_destroy_cell (void) |
static void | fill_relay_drop_cell (void) |
static void | fill_relay_flags (void) |
static void | fill_tcp_exhaustion_values (void) |
static void | fill_traffic_values (void) |
static void | fill_signing_cert_expiry (void) |
static void | fill_est_intro_cells (void) |
static void | fill_est_rend_cells (void) |
static void | fill_intro1_cells (void) |
static void | fill_rend1_cells (void) |
static const char * | handshake_type_to_str (const uint16_t type) |
static const char * | af_to_string (const int af) |
static void | fill_single_stream_value (metrics_store_entry_t *sentry, uint8_t cmd) |
static void | fill_single_connection_value (metrics_store_entry_t *sentry, unsigned int conn_type, const char *direction, const char *state, int socket_family, uint64_t value) |
void | relay_increment_est_intro_action (est_intro_action_t action) |
void | relay_increment_est_rend_action (est_rend_action_t action) |
void | relay_increment_intro1_action (intro1_action_t action) |
void | relay_increment_rend1_action (rend1_action_t action) |
static void | fill_store (void) |
const smartlist_t * | relay_metrics_get_stores (void) |
void | relay_metrics_init (void) |
void | relay_metrics_free (void) |
Variables | |
static const relay_metrics_entry_t | base_metrics [] |
static const size_t | num_base_metrics = ARRAY_LENGTH(base_metrics) |
static metrics_store_t * | the_store |
static uint64_t | est_intro_actions [EST_INTRO_ACTION_COUNT] = {0} |
static uint64_t | est_rend_actions [EST_REND_ACTION_COUNT] = {0} |
static uint64_t | intro1_actions [INTRO1_ACTION_COUNT] = {0} |
static uint64_t | rend1_actions [REND1_ACTION_COUNT] = {0} |
Relay metrics exposed through the MetricsPort.
Definition in file relay_metrics.c.
#define RELAY_METRICS_ENTRY_PRIVATE |
Definition at line 9 of file relay_metrics.c.
|
inlinestatic |
Helper function to convert a socket family type into a string.
Definition at line 273 of file relay_metrics.c.
Referenced by fill_single_connection_value().
|
static |
Declarations of each fill function for metrics defined in base_metrics.
Fill function for the RELAY_METRICS_CC_COUNTERS metric.
Definition at line 471 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_CC_GAUGES metric.
Definition at line 562 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_CIRCUITS metric.
Definition at line 289 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_CONN_COUNTERS metric.
Definition at line 771 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_CONN_GAUGES metric.
Definition at line 815 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_DNS_ERRORS metrics.
Definition at line 875 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_DNS metrics.
Definition at line 936 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_DOS metric.
Definition at line 404 of file relay_metrics.c.
|
static |
Definition at line 1096 of file relay_metrics.c.
|
static |
Definition at line 1132 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_GLOBAL_RW_LIMIT metrics.
Definition at line 965 of file relay_metrics.c.
|
static |
Definition at line 1169 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_ONIONSKINS metrics.
Definition at line 1005 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_OOM_BYTES metrics.
Definition at line 1037 of file relay_metrics.c.
|
static |
Fill the metrics store for the RELAY_METRICS_CIRC_PROTO_VIOLATION.
Definition at line 1263 of file relay_metrics.c.
|
static |
Fill the metrics store for the RELAY_METRICS_CIRC_DESTROY_CELL counter.
Definition at line 1236 of file relay_metrics.c.
|
static |
Fill the metrics store for the RELAY_METRICS_CIRC_DROP_CELL counter.
Definition at line 1250 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_RELAY_FLAGS metric.
Definition at line 304 of file relay_metrics.c.
|
static |
Definition at line 1207 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_SIGNING_CERT_EXPIRY metrics.
Definition at line 1070 of file relay_metrics.c.
|
static |
Helper: Fill in single connection metrics output.
Definition at line 751 of file relay_metrics.c.
|
static |
Helper: Fill in single stream metrics output.
Definition at line 723 of file relay_metrics.c.
Referenced by fill_streams_values().
|
static |
Fill function for the RELAY_METRICS_NUM_SOCKETS metrics.
Definition at line 986 of file relay_metrics.c.
|
static |
Reset the global store and fill it with all the metrics from base_metrics and their associated values.
To pull this off, every metrics has a "fill" function that is called and in charge of adding the metrics to the store, appropriate labels and finally updating the value to report.
Definition at line 1281 of file relay_metrics.c.
Referenced by relay_metrics_get_stores().
|
static |
Fill function for the RELAY_METRICS_NUM_STREAMS metric.
Definition at line 732 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_DNS metrics.
Definition at line 847 of file relay_metrics.c.
|
static |
Fill function for the RELAY_METRICS_NUM_TRAFFIC metric.
Definition at line 384 of file relay_metrics.c.
|
inlinestatic |
Helper function to convert an handshake type into a string.
Definition at line 253 of file relay_metrics.c.
void relay_increment_est_intro_action | ( | est_intro_action_t | action | ) |
Definition at line 1090 of file relay_metrics.c.
void relay_increment_est_rend_action | ( | est_rend_action_t | action | ) |
Definition at line 1126 of file relay_metrics.c.
void relay_increment_intro1_action | ( | intro1_action_t | action | ) |
Definition at line 1163 of file relay_metrics.c.
void relay_increment_rend1_action | ( | rend1_action_t | action | ) |
Definition at line 1201 of file relay_metrics.c.
void relay_metrics_free | ( | void | ) |
Free the relay metrics.
Definition at line 1331 of file relay_metrics.c.
const smartlist_t * relay_metrics_get_stores | ( | void | ) |
Return a list of all the relay metrics stores. This is the function attached to the .get_metrics() member of the subsys_t.
Definition at line 1298 of file relay_metrics.c.
void relay_metrics_init | ( | void | ) |
Initialize the relay metrics.
Definition at line 1321 of file relay_metrics.c.
|
static |
The base metrics that is a static array of metrics added to the metrics store.
The key member MUST be also the index of the entry in the array.
Definition at line 75 of file relay_metrics.c.
Referenced by fill_cc_counters_values(), fill_cc_gauges_values(), fill_circuits_values(), fill_conn_counter_values(), fill_conn_gauge_values(), fill_dns_error_values(), fill_dns_query_values(), fill_dos_values(), fill_global_bw_limit_values(), fill_onionskins_values(), fill_oom_values(), fill_relay_circ_proto_violation(), fill_relay_destroy_cell(), fill_relay_drop_cell(), fill_relay_flags(), fill_signing_cert_expiry(), fill_socket_values(), fill_streams_values(), fill_tcp_exhaustion_values(), and fill_traffic_values().
|
static |
Definition at line 1087 of file relay_metrics.c.
|
static |
Definition at line 1123 of file relay_metrics.c.
|
static |
Definition at line 1160 of file relay_metrics.c.
|
static |
Definition at line 246 of file relay_metrics.c.
|
static |
Definition at line 1198 of file relay_metrics.c.
|
static |
The only and single store of all the relay metrics.
Definition at line 249 of file relay_metrics.c.
Referenced by fill_cc_counters_values(), fill_cc_gauges_values(), fill_circuits_values(), fill_dos_values(), fill_global_bw_limit_values(), fill_oom_values(), fill_relay_circ_proto_violation(), fill_relay_destroy_cell(), fill_relay_drop_cell(), fill_relay_flags(), fill_socket_values(), fill_store(), fill_streams_values(), fill_tcp_exhaustion_values(), fill_traffic_values(), relay_metrics_free(), and relay_metrics_get_stores().