pub struct TelemetryConfig {
pub service_name: String,
pub service_version: String,
pub environment: String,
pub otlp_traces_endpoint: Option<String>,
pub otlp_logs_endpoint: Option<String>,
pub otlp_metrics_endpoint: Option<String>,
pub log_to_stderr: bool,
pub use_metrics_interval: Option<Duration>,
pub metrics_flush_interval: Option<Duration>,
pub sampling_rate: Option<f64>,
pub backpressure_strategy: BackpressureStrategy,
pub resource_attributes: Vec<(String, String)>,
}Expand description
Configuration for the telemetry stack.
Construct with struct literal + ..Default::default() to be forward-compatible
when new fields are added:
let config = TelemetryConfig {
service_name: "my-service".into(),
service_version: "0.1.0".into(),
otlp_traces_endpoint: Some("http://collector:4318".into()),
..Default::default()
};Fields§
§service_name: String§service_version: String§environment: String§otlp_traces_endpoint: Option<String>OTLP HTTP endpoint for traces (e.g. “http://jaeger:4318”). If None, trace export is disabled.
otlp_logs_endpoint: Option<String>OTLP HTTP endpoint for logs (e.g. “http://vector:4318”). If None, log export is disabled. Can differ from traces endpoint.
otlp_metrics_endpoint: Option<String>OTLP HTTP endpoint for metrics (e.g. “http://vector:4318”). If None, metrics export is disabled.
log_to_stderr: boolWhether to emit JSON-formatted logs to stderr.
use_metrics_interval: Option<Duration>Polling interval for USE metrics (cpu, memory) from /proc/self/stat.
If None, USE metrics collection is disabled.
Only active on Linux; no-op on other platforms.
metrics_flush_interval: Option<Duration>How often to flush aggregated metrics to the OTLP endpoint. Defaults to 10 seconds if None.
sampling_rate: Option<f64>Probabilistic trace sampling rate: 1.0 = export all traces, 0.01 = export 1%. Sampling is deterministic based on trace_id, so the same trace always gets the same decision across services. Metrics are never sampled. Defaults to 1.0 (no sampling) if None.
backpressure_strategy: BackpressureStrategyWhat to do when the export channel is full.
Defaults to BackpressureStrategy::Drop.
resource_attributes: Vec<(String, String)>Custom OTel resource attributes appended after the standard three (service.name, service.version, deployment.environment).
Trait Implementations§
Source§impl Clone for TelemetryConfig
impl Clone for TelemetryConfig
Source§fn clone(&self) -> TelemetryConfig
fn clone(&self) -> TelemetryConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more