Skip to content

Commit f28f498

Browse files
authored
Add slog fingerprint handler (#1039)
1 parent 2837952 commit f28f498

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

slog/converter.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ func attrToSentryEvent(attr slog.Attr, event *sentry.Event) {
7373
handleUserAttributes(v, event)
7474
case k == "request" && kind == slog.KindAny:
7575
handleRequestAttributes(v, event)
76+
case k == "fingerprint" && kind == slog.KindAny:
77+
handleFingerprint(v, event)
7678
case kind == slog.KindGroup:
7779
event.Extra[k] = attrsToMap(v.Group()...)
7880
default:
@@ -121,3 +123,9 @@ func handleRequestAttributes(v slog.Value, event *sentry.Event) {
121123
}
122124
}
123125
}
126+
127+
func handleFingerprint(v slog.Value, event *sentry.Event) {
128+
if fingerprint, ok := v.Any().([]string); ok {
129+
event.Fingerprint = fingerprint
130+
}
131+
}

slog/converter_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,10 @@ func TestAttrToSentryEvent(t *testing.T) {
156156
}},
157157
},
158158
},
159+
"fingerprint": {
160+
attr: slog.Attr{Key: "fingerprint", Value: slog.AnyValue([]string{"value1", "value2"})},
161+
expected: &sentry.Event{Fingerprint: []string{"value1", "value2"}},
162+
},
159163
}
160164

161165
for name, tc := range tests {
@@ -171,6 +175,7 @@ func TestAttrToSentryEvent(t *testing.T) {
171175
assert.Equal(t, tc.expected.Transaction, event.Transaction)
172176
assert.Equal(t, tc.expected.User, event.User)
173177
assert.Equal(t, tc.expected.Request, event.Request)
178+
assert.Equal(t, tc.expected.Fingerprint, event.Fingerprint)
174179
if len(tc.expected.Tags) == 0 {
175180
assert.Empty(t, event.Tags)
176181
} else {

0 commit comments

Comments
 (0)