-
Notifications
You must be signed in to change notification settings - Fork 82
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
Better backtraces for linked processes #207
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tombruijn
approved these changes
Apr 28, 2017
Closes #194. Instead of using the :background_job namespace, Appsignal.Phoenix.Channel will use :channel instead. This also allows users to set their own custom namespaces in Appsignal.Transaction.start/2.
* Parse new report from agent diagnose mode The extension returns a JSON object, as a string, which contains the agent diagnostics report. The report definition is defined in the diagnose CLI task so we can check all the tests and display them in a human readable format. This change makes it possible to return the agent diagnostics report without capturing the STDOUT while the agent is running. This proved difficult to do in Elixir, where we previously called the agent executable directly. Instead of printing the report to STDOUT the extension will now return the report as a JSON object, which is formatted as a string which needs to be parsed into JSON first. This report may be incomplete when the agent fails to start or something else goes wrong. Any error will be captured and added to the agent report. * Give release upgrade test more time * Test for agent diagnose report errors and output * Test for fatal error in agent diagnose report * Bump agent to da14f3b - New diagnose report from agent (called through extension). - Refactor internal extension worker
This change will allow users to send the diagnostics report to AppSignal. We'll ask before sending if the user wants this, but because we see how useful this can be when debugging an issue it sends the report by default. When you press enter, no input, "Y" (yes) is submitted. Why this change? We've seen that in every support request we get we'll ask for the diagnostics report. To make it easier for everyone this change allows users to send it directly to AppSignal so our support team can review it without valuable data getting lost by formatting by our support system for example. We also provide the user with a support token when they send the report. This can be useful for a user if they see a problem with the output and want to dive right in with the report. They can contact us with the support token, after which we can immediately review the report.
jeffkreeftmeijer
force-pushed
the
linked-process-backtraces
branch
from
May 3, 2017 15:08
13444ef
to
9ec3869
Compare
jeffkreeftmeijer
added a commit
that referenced
this pull request
May 10, 2017
Adds `ErrorHandler.extract_stacktrace/1`, which tries to extract the stacktrace from the exception, as that stack trace will include the line the error happened on as opposed to the stack trace from the error report's `:error_info`, which does not. In short (and as shown in 2a5bf34): (stdlib) gen_server.erl:812: :gen_server.terminate/7 (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 ... becomes: (elixir) unicode/unicode.ex:190: String.Unicode.length/1 test/appsignal/error_handler/error_matcher_test.exs:27: Appsignal.ErrorHandler.ErrorMatcherTest.CrashingGenServer.handle_info/2 (stdlib) gen_server.erl:601: :gen_server.try_dispatch/4 (stdlib) gen_server.erl:667: :gen_server.handle_msg/5 (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds
ErrorHandler.extract_stacktrace/1
, which tries to extract the stacktrace from the exception, as that stack trace will include the line the error happened on as opposed to the stack trace from the error report's:error_info
, which does not.In short (and as shown in 2a5bf34):
... becomes: