26 releases
0.28.1 | Feb 24, 2025 |
---|---|
0.27.0 | Jan 8, 2025 |
0.11.0-alpha.21 | Oct 21, 2024 |
0.11.0-alpha.7 | Jul 31, 2024 |
#428 in Debugging
268 downloads per month
65KB
1.5K
SLoC
emit_opentelemetry
Integrate emit
with the OpenTelemetry SDK.
This library forwards diagnostic events from emit through the OpenTelemetry SDK as log records and spans.
Getting started
Configure the OpenTelemetry SDK as per its documentation, then add emit
and emit_opentelemetry
to your Cargo.toml:
[dependencies.emit]
version = "1"
[dependencies.emit_opentelemetry]
version = "0.28.1"
Initialize emit
to send diagnostics to the OpenTelemetry SDK using the emit_opentelemetry::setup
function:
fn main() {
// Configure the OpenTelemetry SDK
// See the OpenTelemetry SDK docs for details on configuration
let logger_provider = opentelemetry_sdk::logs::SdkLoggerProvider::builder()
.with_simple_exporter(opentelemetry_stdout::LogExporter::default())
.build();
let tracer_provider = opentelemetry_sdk::trace::SdkTracerProvider::builder()
.with_simple_exporter(opentelemetry_stdout::SpanExporter::default())
.build();
// Configure `emit` to point to the OpenTelemetry SDK
let rt = emit_opentelemetry::setup(logger_provider, tracer_provider).init();
// Your app code goes here
rt.blocking_flush(std::time::Duration::from_secs(30));
// Shutdown the OpenTelemetry SDK
}
This function accepts a LoggerProvider
and TracerProvider
from the OpenTelemetry SDK to forward emit
events to.
Versioning and compatibility
emit_opentelemetry
version x.y.z
is compatible with opentelemetry_sdk
version x.y.*
.
Dependencies
~6.5MB
~89K SLoC