Skip to content

Commit 19bbf1c

Browse files
authored
feat(logging): Send tracing events at or above INFO to Sentry as logs instead of breadcrumbs (#4820)
1 parent 8601508 commit 19bbf1c

File tree

8 files changed

+119
-46
lines changed

8 files changed

+119
-46
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818

1919
- Always combine replay payloads and remove feature flag guarding it. ([#4812](https://github.com/getsentry/relay/pull/4812))
2020
- Added version 2 of LLM cost specification. ([#4825](https://github.com/getsentry/relay/pull/4825))
21+
- Send `tracing` events at or above `INFO` to Sentry as logs. ([#4820](https://github.com/getsentry/relay/pull/4820))
2122

2223
## 25.6.0
2324

2425
**Features**:
2526

26-
- Add logic to extract event json from userdata in prosperodumps. ([#4755](https://github.com/getsentry/relay/pull/4755)
27+
- Add logic to extract event json from userdata in prosperodumps. ([#4755](https://github.com/getsentry/relay/pull/4755))
2728
- Add browser name/version to logs. ([#4757](https://github.com/getsentry/relay/pull/4757))
2829
- Accept standalone spans in the V2 format. This feature is still highly experimental! ([#4771](https://github.com/getsentry/relay/pull/4771))
2930
- Enable filtering sessions by IP address, release, and user agent. ([#4745](https://github.com/getsentry/relay/pull/4745))

Cargo.lock

Lines changed: 89 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,18 @@ regex-lite = "0.1.6"
164164
reqwest = "0.12.9"
165165
rmp-serde = "1.3.0"
166166
semver = "1.0.23"
167-
sentry = "0.36.0"
168-
sentry-core = "0.36.0"
167+
sentry = { version = "0.41.0", default-features = false, features = [
168+
# default features, except `release-health` is disabled
169+
"backtrace",
170+
"contexts",
171+
"debug-images",
172+
"panic",
173+
"transport"
174+
]}
175+
sentry-core = "0.41.0"
169176
sentry-kafka-schemas = { version = "1.3.2", default-features = false }
170177
sentry-release-parser = { version = "1.3.2", default-features = false }
171-
sentry-types = "0.36.0"
178+
sentry-types = "0.41.0"
172179
sentry_protos = "0.2.0"
173180
serde = { version = "1.0.215", features = ["derive", "rc"] }
174181
serde-transcode = "1.1.1"

relay-log/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ relay-crash = { workspace = true, optional = true }
2020
sentry = { workspace = true, features = [
2121
"debug-images",
2222
"tracing",
23+
"logs"
2324
], optional = true }
2425
sentry-core = { workspace = true }
2526
serde = { workspace = true, optional = true }

relay-log/src/setup.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,11 +330,13 @@ pub unsafe fn init(config: &LogConfig, sentry: &SentryConfig) {
330330
tracing_subscriber::registry()
331331
.with(format.with_filter(config.level_filter()))
332332
.with(
333-
// Same as the default filter, except it converts warnings into events instead of breadcrumbs.
333+
// Same as the default filter, except it converts warnings into events
334+
// and also sends everything at or above INFO as logs instead of breadcrumbs.
334335
sentry::integrations::tracing::layer().event_filter(|md| match *md.level() {
335-
tracing::Level::ERROR => EventFilter::Exception,
336-
tracing::Level::WARN => EventFilter::Event,
337-
tracing::Level::INFO => EventFilter::Breadcrumb,
336+
tracing::Level::ERROR | tracing::Level::WARN => {
337+
EventFilter::Event | EventFilter::Log
338+
}
339+
tracing::Level::INFO => EventFilter::Log,
338340
tracing::Level::DEBUG | tracing::Level::TRACE => EventFilter::Ignore,
339341
}),
340342
)

relay-prosperoconv/Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,14 @@ mime_guess = "2.0.4"
2020
minidump-writer = "0.9.0"
2121
object = "0.36.0"
2222
rmpv = "1.3.0"
23-
sentry = "0.36.0"
23+
sentry = { version = "0.41.0", default-features = false, features = [
24+
# default features, except `release-health` is disabled and `reqwest` is explicitly selected as the transport
25+
"backtrace",
26+
"contexts",
27+
"debug-images",
28+
"panic",
29+
"reqwest",
30+
]}
2431
tracing = "0.1.40"
2532
watto = "0.1.0"
2633

relay-server/src/services/server/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ fn make_app(service: ServiceState) -> App {
7676
HeaderValue::from_static("cross-origin"),
7777
))
7878
.layer(NewSentryLayer::new_from_top())
79-
.layer(SentryHttpLayer::with_transaction())
79+
.layer(SentryHttpLayer::new().enable_transaction())
8080
.layer(middlewares::trace_http_layer())
8181
.map_request(middlewares::remove_empty_encoding)
8282
.layer(RequestDecompressionLayer::new())

tests/integration/fixtures/mini_sentry.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ def get_error_message(data):
246246
exc_msg = ": ".join(e.get("value", "") for e in reversed(exceptions))
247247
message = data.get("message", {})
248248
message = message if isinstance(message, str) else message.get("formatted")
249+
if message and exc_msg:
250+
return ": ".join((message, exc_msg))
249251
return exc_msg or message or "unknown error"
250252

251253
@app.before_request

0 commit comments

Comments
 (0)