Trait ProvideMeter

pub trait ProvideMeter:
    Send
    + Sync
    + Debug
    + 'static {
    // Required methods
    fn get_meter(
        &self,
        scope: &'static str,
        attributes: Option<&Attributes>,
    ) -> Meter;
    fn as_any(&self) -> &(dyn Any + 'static);
}
Expand description

Provides named instances of Meter.

Required Methods§

fn get_meter( &self, scope: &'static str, attributes: Option<&Attributes>, ) -> Meter

Get or create a named Meter.

fn as_any(&self) -> &(dyn Any + 'static)

Downcast to Any for type inspection.

This method enables runtime type checking via downcasting to concrete types.

Implementations must return self to enable proper downcasting:

impl ProvideMeter for MyProvider {
    fn as_any(&self) -> &dyn std::any::Any {
        self
    }
}
§Example Usage
use aws_smithy_observability::meter::ProvideMeter;
use aws_smithy_observability_otel::meter::OtelMeterProvider;

fn check_provider_type(provider: &dyn ProvideMeter) {
    // Downcast to check if this is an OpenTelemetry provider
    if provider.as_any().downcast_ref::<OtelMeterProvider>().is_some() {
        println!("This is an OpenTelemetry provider");
    }
}

Implementors§