@@ -20,6 +20,7 @@ defmodule Sentry.Event do
2020 server_name: nil ,
2121 environment: nil ,
2222 exception: nil ,
23+ original_exception: nil ,
2324 release: nil ,
2425 stacktrace: % {
2526 frames: [ ]
@@ -29,7 +30,8 @@ defmodule Sentry.Event do
2930 user: % { } ,
3031 breadcrumbs: [ ] ,
3132 fingerprint: [ ] ,
32- modules: % { }
33+ modules: % { } ,
34+ event_source: nil
3335
3436 @ type t :: % __MODULE__ { }
3537
@@ -47,14 +49,16 @@ defmodule Sentry.Event do
4749 @ doc """
4850 Creates an Event struct out of context collected and options
4951 ## Options
50- * `:exception` - expection
52+ * `:exception` - Sentry-formatted exception
53+ * `:original_exception` - Original exception
5154 * `:message` - message
5255 * `:stacktrace` - a list of Exception.stacktrace()
5356 * `:extra` - map of extra context
5457 * `:user` - map of user context
5558 * `:tags` - map of tags context
5659 * `:request` - map of request context
5760 * `:breadcrumbs` - list of breadcrumbs
61+ * `:event_source` - the source of the event
5862 * `:level` - error level
5963 * `:fingerprint` - list of the fingerprint for grouping this event
6064 """
@@ -69,9 +73,12 @@ defmodule Sentry.Event do
6973 } = Sentry.Context . get_all ( )
7074
7175 exception = Keyword . get ( opts , :exception )
76+ original_exception = Keyword . get ( opts , :original_exception )
7277
7378 message = Keyword . get ( opts , :message )
7479
80+ event_source = Keyword . get ( opts , :event_source )
81+
7582 stacktrace =
7683 Keyword . get ( opts , :stacktrace , [ ] )
7784 |> coerce_stacktrace ( )
@@ -113,6 +120,7 @@ defmodule Sentry.Event do
113120 environment: env ,
114121 server_name: server_name ,
115122 exception: exception ,
123+ original_exception: original_exception ,
116124 stacktrace: % {
117125 frames: stacktrace_to_frames ( stacktrace )
118126 } ,
@@ -123,7 +131,8 @@ defmodule Sentry.Event do
123131 breadcrumbs: breadcrumbs ,
124132 request: request ,
125133 fingerprint: fingerprint ,
126- modules: Util . mix_deps_versions ( @ deps )
134+ modules: Util . mix_deps_versions ( @ deps ) ,
135+ event_source: event_source
127136 }
128137 |> add_metadata ( )
129138 end
@@ -163,7 +172,7 @@ defmodule Sentry.Event do
163172 end
164173
165174 module = Keyword . get ( opts , :module )
166- exception = [ % { type: type , value: value , module: module } ]
175+ transformed_exception = [ % { type: type , value: value , module: module } ]
167176
168177 message =
169178 :error
@@ -172,8 +181,9 @@ defmodule Sentry.Event do
172181 |> String . trim ( )
173182
174183 opts
175- |> Keyword . put ( :exception , exception )
184+ |> Keyword . put ( :exception , transformed_exception )
176185 |> Keyword . put ( :message , message )
186+ |> Keyword . put ( :original_exception , exception )
177187 |> create_event ( )
178188 end
179189
0 commit comments