pub async fn register_extension(
tracer_provider: Arc<TracerProvider>,
processor_mode: ProcessorMode,
) -> Result<UnboundedSender<()>, Error>Expand description
Register an internal extension for handling OpenTelemetry span processing.
Note: This function is called automatically by init_telemetry
and should not be called directly in your code. Use init_telemetry
instead to set up telemetry for your Lambda function.
This function:
- Creates an internal extension that listens for Lambda events
- Sets up a SIGTERM signal handler for graceful shutdown
- Returns a sender for signaling handler completion
The extension’s behavior depends on the processor mode:
- In
Asyncmode: Registers for INVOKE events and flushes after each invocation - In other modes: Registers for no events, letting the processor handle exports
§Arguments
tracer_provider- The TracerProvider to use for span managementprocessor_mode- The mode determining how spans are processed
§Returns
Returns a channel sender for signaling completion, or an Error if registration fails
§Example
Instead of calling this function directly, use init_telemetry:
use lambda_otel_lite::{init_telemetry, TelemetryConfig};
use lambda_extension::Error;
#[tokio::main]
async fn main() -> Result<(), Error> {
let completion_handler = init_telemetry(TelemetryConfig::default()).await?;
Ok(())
}