Skip to content

Commit 3b3ff64

Browse files
authored
Retain newest breadcrumbs (instead of oldest)
1 parent ce93ed4 commit 3b3ff64

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/sentry/context.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,7 @@ defmodule Sentry.Context do
423423
sentry_metadata =
424424
get_sentry_context()
425425
|> Map.update(@breadcrumbs_key, [map], fn breadcrumbs ->
426-
breadcrumbs = [map | breadcrumbs]
427-
Enum.take(breadcrumbs, -1 * Sentry.Config.max_breadcrumbs())
426+
Enum.take([map | breadcrumbs], Sentry.Config.max_breadcrumbs())
428427
end)
429428

430429
:logger.update_process_metadata(%{@logger_metadata_key => sentry_metadata})

test/context_test.exs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ defmodule Sentry.ContextTest do
3939
assert first_breadcrumb.timestamp <= second_breadcrumb.timestamp
4040
end
4141

42+
test "retains most recent breadcrumbs when exceeding max" do
43+
put_test_config(max_breadcrumbs: 3)
44+
45+
for x <- 1..10, do: Context.add_breadcrumb(message: x)
46+
47+
event = Event.create_event([])
48+
49+
assert event.breadcrumbs |> Enum.map(& &1.message) == [8, 9, 10]
50+
end
51+
4252
test "storing user context appears when generating event" do
4353
Context.set_user_context(%{id: "345"})
4454

0 commit comments

Comments
 (0)