pub struct TelemetryGuardBuilder { /* private fields */ }Implementations§
Source§impl TelemetryGuardBuilder
impl TelemetryGuardBuilder
pub fn add_sink<Sink>(
self,
max_level: LevelFilter,
sink: Sink,
) -> TelemetryGuardBuilderwhere
Sink: EventSink + 'static,
Sourcepub fn with_max_level_override(
self,
level_filter: LevelFilter,
) -> TelemetryGuardBuilder
pub fn with_max_level_override( self, level_filter: LevelFilter, ) -> TelemetryGuardBuilder
Programmatic override
pub fn with_local_sink_enabled(self, enabled: bool) -> TelemetryGuardBuilder
pub fn with_interop_max_level_override( self, level_filter: LevelFilter, ) -> TelemetryGuardBuilder
pub fn with_install_log_capture(self, enabled: bool) -> TelemetryGuardBuilder
pub fn with_install_tracing_capture( self, enabled: bool, ) -> TelemetryGuardBuilder
pub fn with_local_sink_max_level( self, level_filter: LevelFilter, ) -> TelemetryGuardBuilder
pub fn with_ctrlc_handling(self) -> TelemetryGuardBuilder
pub fn with_telemetry_metadata_retry( self, retry_strategy: Take<ExponentialBackoff>, ) -> TelemetryGuardBuilder
pub fn with_telemetry_blocks_retry( self, retry_strategy: Take<ExponentialBackoff>, ) -> TelemetryGuardBuilder
pub fn with_request_decorator( self, make_decorator: Box<dyn FnOnce() -> Arc<dyn RequestDecorator> + Send>, ) -> TelemetryGuardBuilder
Sourcepub fn with_auth_from_env(self) -> TelemetryGuardBuilder
pub fn with_auth_from_env(self) -> TelemetryGuardBuilder
Automatically configure authentication from environment variables.
Checks for authentication configuration in this order:
- API key authentication via
MICROMEGAS_INGESTION_API_KEY - OIDC client credentials via
MICROMEGAS_OIDC_TOKEN_ENDPOINT,MICROMEGAS_OIDC_CLIENT_ID, andMICROMEGAS_OIDC_CLIENT_SECRET - Falls back to no authentication (TrivialRequestDecorator)
§Example
use micromegas_telemetry_sink::TelemetryGuardBuilder;
// Set environment variable
unsafe {
std::env::set_var("MICROMEGAS_INGESTION_API_KEY", "secret-key-123");
}
// Builder automatically configures API key authentication
let _guard = TelemetryGuardBuilder::default()
.with_auth_from_env()
.build()
.expect("Failed to build telemetry guard");pub fn with_system_metrics_enabled(self, enabled: bool) -> TelemetryGuardBuilder
pub fn with_default_system_properties_enabled( self, enabled: bool, ) -> TelemetryGuardBuilder
Sourcepub fn with_telemetry_sink_url(self, url: String) -> TelemetryGuardBuilder
pub fn with_telemetry_sink_url(self, url: String) -> TelemetryGuardBuilder
Set the URL of telemetry sink.
If not explicitly set, the URL will be read from the MICROMEGAS_TELEMETRY_URL environment
variable.
Sourcepub fn with_process_property(
self,
key: String,
value: String,
) -> TelemetryGuardBuilder
pub fn with_process_property( self, key: String, value: String, ) -> TelemetryGuardBuilder
Sourcepub fn with_process_properties(
self,
process_properties: HashMap<String, String>,
) -> TelemetryGuardBuilder
pub fn with_process_properties( self, process_properties: HashMap<String, String>, ) -> TelemetryGuardBuilder
pub fn build(self) -> Result<TelemetryGuard, Error>
Trait Implementations§
Source§impl Default for TelemetryGuardBuilder
impl Default for TelemetryGuardBuilder
Source§fn default() -> TelemetryGuardBuilder
fn default() -> TelemetryGuardBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for TelemetryGuardBuilder
impl !RefUnwindSafe for TelemetryGuardBuilder
impl Send for TelemetryGuardBuilder
impl !Sync for TelemetryGuardBuilder
impl Unpin for TelemetryGuardBuilder
impl !UnwindSafe for TelemetryGuardBuilder
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
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].