diff options
Diffstat (limited to 'crates/tor-config-shared/src/metrics.rs')
| -rw-r--r-- | crates/tor-config-shared/src/metrics.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/crates/tor-config-shared/src/metrics.rs b/crates/tor-config-shared/src/metrics.rs new file mode 100644 index 000000000..f8d05c7ab --- /dev/null +++ b/crates/tor-config-shared/src/metrics.rs @@ -0,0 +1,33 @@ +//! Configuration for metrics reporting via Prometheus / etc + +use derive_deftly::Deftly; + +use tor_config::Listen; +use tor_config::derive::prelude::*; + +/// Configuration for exporting metrics (eg, perf data) +#[derive(Debug, Clone, Deftly, Eq, PartialEq)] +#[derive_deftly(TorConfig)] +#[non_exhaustive] +pub struct MetricsConfig { + /// Where to listen for incoming HTTP connections. + #[deftly(tor_config(sub_builder))] + pub prometheus: PrometheusConfig, +} + +/// Configuration for one or more proxy listeners. +#[derive(Debug, Clone, Deftly, Eq, PartialEq)] +#[derive_deftly(TorConfig)] +#[non_exhaustive] +pub struct PrometheusConfig { + /// Port on which to establish a Prometheus scrape endpoint + /// + /// We listen here for incoming HTTP connections. + /// + /// If just a port is provided, we don't support IPv6. + /// Alternatively, (only) a single address and port can be specified. + /// These restrictions are due to upstream limitations: + /// <https://github.com/metrics-rs/metrics/issues/567>. + #[deftly(tor_config(default))] + pub listen: Listen, +} |
