pub struct TelemetryProviderConfig {Show 18 fields
pub export_mode: String,
pub endpoint: Option<String>,
pub headers: HashMap<String, String>,
pub sampling_ratio: f64,
pub compression: Option<String>,
pub service_name: Option<String>,
pub resource_attributes: HashMap<String, String>,
pub redaction_patterns: Vec<String>,
pub preset: Option<String>,
pub enable_operation_subs: bool,
pub operation_subs_mode: Option<String>,
pub include_denied_ops: bool,
pub payload_policy: Option<String>,
pub min_log_level: Option<String>,
pub tls_config: Option<TlsConfig>,
pub exclude_ops: Vec<String>,
pub drop_payloads: bool,
pub tenant_attribution: Option<TenantAttribution>,
}Expand description
Configuration returned by a telemetry provider component.
This is the canonical config model for pack-based telemetry setup.
A provider WASM component returns this as JSON; the host (operator)
passes it to init_from_provider_config to configure OTel.
Fields§
§export_mode: StringExport mode: “otlp-grpc” | “otlp-http” | “json-stdout” | “none”
endpoint: Option<String>OTLP endpoint (e.g. “http://localhost:4317”)
headers: HashMap<String, String>Auth/metadata headers (typically from secrets)
sampling_ratio: f64Sampling ratio: 0.0..=1.0
compression: Option<String>Optional compression: “gzip” | null
service_name: Option<String>Service name (default: “greentic-operator”)
resource_attributes: HashMap<String, String>Additional OTel resource attributes
redaction_patterns: Vec<String>Regex patterns for PII redaction
preset: Option<String>Backend preset name: “honeycomb”, “datadog”, “newrelic”, “zipkin”, etc.
enable_operation_subs: boolEnable operation subscription telemetry
operation_subs_mode: Option<String>Operation subs mode: “metrics_only” | “traces_only” | “metrics_and_traces”
include_denied_ops: boolInclude denied operations in telemetry
payload_policy: Option<String>Payload policy: “none” | “hash_only”
min_log_level: Option<String>Minimum log level: “trace” | “debug” | “info” | “warn” | “error” Applied via RUST_LOG before OTel init (env var takes precedence).
tls_config: Option<TlsConfig>TLS configuration for mTLS connections to OTLP endpoints.
exclude_ops: Vec<String>Operation names to skip in telemetry emission.
drop_payloads: boolHard-drop all payload content from telemetry.
tenant_attribution: Option<TenantAttribution>Multi-tenant attribution controls.
Trait Implementations§
Source§impl Clone for TelemetryProviderConfig
impl Clone for TelemetryProviderConfig
Source§fn clone(&self) -> TelemetryProviderConfig
fn clone(&self) -> TelemetryProviderConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TelemetryProviderConfig
impl Debug for TelemetryProviderConfig
Source§impl Default for TelemetryProviderConfig
impl Default for TelemetryProviderConfig
Source§impl<'de> Deserialize<'de> for TelemetryProviderConfig
impl<'de> Deserialize<'de> for TelemetryProviderConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TelemetryProviderConfig
impl RefUnwindSafe for TelemetryProviderConfig
impl Send for TelemetryProviderConfig
impl Sync for TelemetryProviderConfig
impl Unpin for TelemetryProviderConfig
impl UnsafeUnpin for TelemetryProviderConfig
impl UnwindSafe for TelemetryProviderConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request