Expand description
Capture tracing spans and events as Sentry traces and structured logs.
For most applications, we recommend installing only these two layers:
SpanLayercapturestracingspans as Sentry transactions and spans.LogLayercapturestracingevents as Sentry structured logs. Requires thelogsfeature.
We also provide the following layers, but recommend the span and log layers above for most applications:
ErrorLayercapturestracingevents as Sentry error events, with support for tags and exception information.BreadcrumbLayeraddstracingevents as breadcrumbs on subsequent Sentry error events.
For migration from the legacy combined layer, see SentryLayer.
§Getting started
Enable the tracing and logs features on sentry to use its tracing integration re-export.
Set a traces sample rate to capture transactions, then install the span and log layers with
explicit level filters:
use sentry::integrations::tracing::{LogLayer, SpanLayer};
use tracing_subscriber::filter::LevelFilter;
use tracing_subscriber::prelude::*;
let _guard = sentry::init(
sentry::ClientOptions::new()
// Use a lower sample rate in production.
.traces_sample_rate(1.0),
);
tracing_subscriber::registry()
.with(SpanLayer::new().with_filter(LevelFilter::INFO))
.with(LogLayer::new().with_filter(LevelFilter::INFO))
.init();The layers do not filter by level internally. The filters above capture INFO, WARN, and
ERROR telemetry, excluding DEBUG and TRACE. Adjust each layer’s filter independently to
control volume. Global subscriber filters also apply and can suppress telemetry before the
Sentry layers receive it.
§Spans
SpanLayer creates a Sentry transaction when no Sentry span is active, or a child span
otherwise. For example,
tracing::instrument creates
spans for instrumented functions; arguments become span data unless skipped.
With the log layer installed, the info! event below produces a log associated with the same
trace as the instrumented functions:
#[tracing::instrument]
async fn outer() {
inner(42).await;
}
#[tracing::instrument]
async fn inner(value: i32) {
tracing::info!(value, "completed step");
}By default, the Sentry span name matches the tracing span name, and its operation is
<target>::<span name>.
§Special span fields
sentry.nameoverrides the Sentry span name, including when recorded after creation.sentry.opoverrides the Sentry span operation, including when recorded after creation.sentry.tracecontinues the trace from asentry-traceheader. It must be set when a root Sentry span is created, meaning no Sentry span is active in the current scope. Applying it to a child Sentry span or recording it after creation has no effect.
#[tracing::instrument(skip_all, fields(
sentry.name = "GET /payments",
sentry.op = "http.server",
sentry.trace = headers.get("sentry-trace").unwrap_or(&"".to_owned()),
))]
async fn handle_request(headers: std::collections::HashMap<String, String>) {
// ...
}§Logs
LogLayer sends events accepted by its filter as structured logs. Event fields become log
attributes.
tracing::info!(number = 42, my.key = "value", "Processed request");Structs§
- Breadcrumb
Layer - Adds tracing events as Sentry breadcrumbs.
- Combined
Event Mapping Deprecated - A list of event mappings.
- Error
Layer - Captures tracing events as Sentry error events.
- Event
Filter Deprecated - The action that Sentry should perform for a given
Event - LogLayer
logs - Captures tracing events as Sentry logs.
- Sentry
Layer Deprecated - Legacy combined tracing layer.
- Span
Layer - Captures tracing spans as Sentry transactions and spans.
Enums§
- Event
Mapping Deprecated - The type of data Sentry should ingest for an
Event.
Functions§
- breadcrumb_
from_ event Deprecated - Creates a
Breadcrumbfrom a giventracing_core::Event. - default_
event_ filter Deprecated - The default event filter for the legacy combined layer.
- default_
span_ filter Deprecated - The default span filter for the legacy combined layer.
- event_
from_ event Deprecated - Creates an
Event(possibly carrying exceptions) from a giventracing_core::Event. - layer
Deprecated - Creates a legacy combined Sentry layer.
- log_
from_ event Deprecated logs - Creates a
Logfrom a giventracing_core::Event.