instrumented-object-store

Crates.ioinstrumented-object-store
lib.rsinstrumented-object-store
version50.0.0
created_at2025-04-24 09:42:26.6246+00
updated_at2025-09-16 13:17:52.60939+00
descriptionObject Store instrumentation through tracing
homepagehttps://github.com/datafusion-contrib/datafusion-tracing
repositoryhttps://github.com/datafusion-contrib/datafusion-tracing
max_upload_size
id1646916
size89,889
Florent Monjalet (fmonjalet)

documentation

https://docs.rs/instrumented-object-store

README

Instrumented Object Store

Instrumented Object Store

Adds tracing instrumentation to any Object Store implementation.

Features

  • Automatically captures spans for all storage operations (get, put, list, etc.)
  • Records metadata like file paths and content sizes
  • Captures error details when operations fail
  • Works with OpenTelemetry for distributed tracing

Getting Started


// Create your object store
let store = Arc::new(object_store::local::LocalFileSystem::new());

// Wrap it with instrumentation (prefix for span names)
let instrumented_store = instrument_object_store(store, "local_fs");

// Use directly for file operations
let result = instrumented_store.get(&Path::from("path/to/file")).await?;

// Or integrate with DataFusion
let ctx = SessionContext::new();
ctx.register_object_store(&Url::parse("file://").unwrap(), instrumented_store);

When combined with the datafusion-tracing crate, this provides end-to-end visibility from query execution to storage operations.

Commit count: 17

cargo fmt