8 releases (major breaking)
Uses new Rust 2024
| new 53.0.0 | Mar 25, 2026 |
|---|---|
| 52.0.0 | Jan 13, 2026 |
| 51.0.0 | Nov 20, 2025 |
| 50.0.0 | Sep 16, 2025 |
| 47.0.1 | Apr 24, 2025 |
#1875 in Database interfaces
659,285 downloads per month
22KB
302 lines
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.
Dependencies
~12–19MB
~260K SLoC