Skip to content

Commit 1f25a85

Browse files
authored
Use more fields when hashing events for deduplication (#850)
1 parent f375551 commit 1f25a85

File tree

3 files changed

+35
-13
lines changed

3 files changed

+35
-13
lines changed

lib/sentry/event.ex

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,13 @@ defmodule Sentry.Event do
484484
event.exception,
485485
event.message,
486486
event.level,
487-
event.fingerprint
487+
event.fingerprint,
488+
event.user,
489+
event.tags,
490+
event.extra,
491+
event.breadcrumbs,
492+
event.request,
493+
event.attachments
488494
])
489495
end
490496

test/sentry/client_test.exs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -393,18 +393,12 @@ defmodule Sentry.ClientTest do
393393
|> Tuple.duplicate(2),
394394
Event.create_event(message: "Dedupes by message and stacktrace", stacktrace: stacktrace)
395395
|> Tuple.duplicate(2),
396-
{
397-
Event.create_event(
398-
message: "Same message but diff extra",
399-
user: %{id: 1},
400-
request: %{method: :GET}
401-
),
402-
Event.create_event(
403-
message: "Same message but diff extra",
404-
user: %{id: 2},
405-
request: %{method: :POST}
406-
)
407-
}
396+
Event.create_event(
397+
message: "Dedupes by context",
398+
user: %{id: 1},
399+
request: %{method: :GET}
400+
)
401+
|> Tuple.duplicate(2)
408402
]
409403

410404
for {event, dup_event} <- events do

test/sentry/dedupe_test.exs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,27 @@ defmodule Sentry.DedupeTest do
3131
assert Dedupe.insert(event) == :new
3232
assert Dedupe.insert(event) == :existing
3333
end
34+
35+
for key <- Map.keys(Sentry.Context.get_all()) do
36+
test "takes #{inspect(key)} context into account" do
37+
create_event = fn ctx ->
38+
%Event{
39+
:message => "Something went wrong",
40+
:timestamp => System.system_time(:millisecond),
41+
:event_id => Sentry.UUID.uuid4_hex(),
42+
unquote(key) => ctx
43+
}
44+
end
45+
46+
assert Dedupe.insert(create_event.(%{"ctx" => "1"})) == :new
47+
assert Dedupe.insert(create_event.(%{"ctx" => "1"})) == :existing
48+
49+
assert Dedupe.insert(create_event.(%{"ctx" => "2"})) == :new
50+
assert Dedupe.insert(create_event.(%{"ctx" => "2"})) == :existing
51+
52+
assert Dedupe.insert(create_event.(%{"ctx" => "1"})) == :existing
53+
assert Dedupe.insert(create_event.(%{"ctx" => "2"})) == :existing
54+
end
55+
end
3456
end
3557
end

0 commit comments

Comments
 (0)