-
-
Notifications
You must be signed in to change notification settings - Fork 206
App frames #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App frames #177
Conversation
@@ -191,4 +199,23 @@ defmodule Sentry.Event do | |||
|
|||
defp arity_to_integer(arity) when is_list(arity), do: Enum.count(arity) | |||
defp arity_to_integer(arity) when is_integer(arity), do: arity | |||
|
|||
defp is_in_app?(nil, _in_app_whitelist), do: false | |||
defp is_in_app?(_, []), do: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this right? Shouldn't it default to true because we want to send everything?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the part that is difficult to explain/document for me.
It sends up the entire stacktrace regardless, but certain lines in it are marked as being part of the app or not. If no modules are configured as being "part of the app", then we default to false.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also wondering if instead of doing all that work we could rely on filepath like ruby.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right but would it hide all of the lines? Should we default to nil in that case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the case that no lines are marked as "in_app", it just shows everything with no option to filter by "in_app".
File path is probably a no go, as it doesn't give us full path. Example:
{Poison.Encoder.Any, :encode, 2, [file: 'lib/poison/encoder.ex', line: 383]}
{Poison, :encode!, 2, [file: 'lib/poison.ex', line: 41]}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jeregrine ping
closes #165
Gives you the option to only view stacktrace frames from your app.
Module.split/1 unfortunately does not work for Erlang modules, as it's only supposed to be called on Elixir modules (elixir-lang/elixir#5909). As we sometimes have Erlang modules appear in stacktraces, we need to handle it ourselves 😕
Example of viewing App Only when configuring

List
as one of the whitelisted modules: