|
Tor 0.4.9.8
|
Metrics subsystem. More...
#include "orconfig.h"#include "core/or/or.h"#include "lib/encoding/confline.h"#include "lib/log/util_bug.h"#include "lib/malloc/malloc.h"#include "lib/metrics/metrics_store.h"#include "lib/net/resolve.h"#include "lib/string/printf.h"#include "lib/net/nettypes.h"#include "lib/net/address.h"#include "core/mainloop/connection.h"#include "core/or/connection_or.h"#include "core/or/connection_st.h"#include "core/or/policies.h"#include "core/or/port_cfg_st.h"#include "core/proto/proto_http.h"#include "feature/dircommon/directory.h"#include "feature/metrics/metrics.h"#include "app/config/config.h"#include "app/main/subsysmgr.h"Go to the source code of this file.
Macros | |
| #define | EXPECTED_URL_PATH "/metrics" |
| #define | EXPECTED_URL_PATH_LEN (sizeof(EXPECTED_URL_PATH) - 1) /* No NUL */ |
Functions | |
| static bool | metrics_request_allowed (const tor_addr_t *peer_addr) |
| static void | write_metrics_http_response (const size_t data_len, connection_t *conn) |
| buf_t * | metrics_get_output (const metrics_format_t fmt) |
| int | metrics_connection_process_inbuf (connection_t *conn) |
| int | metrics_parse_ports (or_options_t *options, smartlist_t *ports, char **err_msg_out) |
| int | metrics_connection_reached_eof (connection_t *conn) |
| int | metrics_connection_finished_flushing (connection_t *conn) |
| void | metrics_init (void) |
| void | metrics_cleanup (void) |
Variables | |
| static metrics_format_t | the_format = METRICS_FORMAT_PROMETHEUS |
Metrics subsystem.
Definition in file metrics.c.
| void metrics_cleanup | ( | void | ) |
| int metrics_connection_finished_flushing | ( | connection_t * | conn | ) |
Called when conn has no more bytes left on its outbuf. Return 0 indicating success.
Definition at line 264 of file metrics.c.
Referenced by connection_finished_flushing().
| int metrics_connection_process_inbuf | ( | connection_t * | conn | ) |
Process what is in the inbuf of this connection of type metrics.
Return 0 on success else -1 on error for which the connection is marked for close.
Definition at line 100 of file metrics.c.
Referenced by connection_process_inbuf().
| int metrics_connection_reached_eof | ( | connection_t * | conn | ) |
Called when conn has gotten its socket closed.
Definition at line 252 of file metrics.c.
Referenced by connection_reached_eof().
| buf_t * metrics_get_output | ( | const metrics_format_t | fmt | ) |
Return newly allocated buffer containing the output of all subsystems having metrics.
This is used to output the content on the MetricsPort.
Definition at line 71 of file metrics.c.
Referenced by metrics_connection_process_inbuf().
| int metrics_parse_ports | ( | or_options_t * | options, |
| smartlist_t * | ports, | ||
| char ** | err_msg_out ) |
Parse metrics ports from options. On success, add the port to the ports list and return 0. On failure, set err_msg_out to a newly allocated string describing the problem and return -1.
Definition at line 175 of file metrics.c.
Referenced by parse_ports().
|
static |
Return true iff the given peer address is allowed by our MetricsPortPolicy option that is is in that list.
Definition at line 41 of file metrics.c.
Referenced by metrics_connection_process_inbuf().
|
static |
Helper: For a metrics port connection, write the HTTP response header using the data length passed.
Definition at line 51 of file metrics.c.
Referenced by metrics_connection_process_inbuf().
|
static |
Metrics format driver set by the MetricsPort option.
Definition at line 36 of file metrics.c.
Referenced by metrics_connection_process_inbuf(), and metrics_parse_ports().