TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Building Sentry, a service to process native crash reports and minidumps

100 点作者 daniel_levine将近 6 年前

10 条评论

etaioinshrdlu将近 6 年前
Sentry is one of the nicest services I&#x27;ve head the pleasure of using. Having our errors centrally logged and managed is invaluable.<p>Source: a happy user.
评论 #20181609 未加载
评论 #20181829 未加载
robocat将近 6 年前
We have used Sentry for a long time with JavaScript. The main issues for us are:<p>* Obese JavaScript code. We had to write our own custom code to log events.<p>* Aimed at large scale companies. We only have 1000s of users, and we care about each individual exception, but I think it is really aimed at consolidating large numbers of events.<p>* Meaningless percentages on data. Tagged data is processed, but the end percentage value has little meaning e.g. send through 1000 similar events, with 1 event with a tag with value X, and 1 event with a tag with value Y, and 998 with no value. Sentry reports 50% X and 50% Y!<p>But they have given us really excellent service, especially given we are not paying enterprise rates.<p>Edit: also we are not in a US timezone, which makes the UI weird. And I do love the email integration: have a bug, get an email, fix it.
评论 #20181749 未加载
评论 #20183349 未加载
评论 #20182549 未加载
xvilka将近 6 年前
They might want to check radare2[1] for processing crash dumps, since it supports all 3 major platforms (Windows, Linux, OS X), and allows to play with the stripped files as well.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;radare&#x2F;radare2" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;radare&#x2F;radare2</a>
评论 #20181757 未加载
rtpg将近 6 年前
Sentry has been very good to us, and it’s a generally great business model to boot! Overall great for the community and for ourselves<p>I am going to whine a bit that the recent move over to the unified SDK has been less than ideal for us. The fact that the raven docs would point us to the unified SDK but not to a “how to migrate” page made me super unsure about whether we were doing the right thing (esp. when it came to the logging integrations on Python)<p>It’s kind of an interesting problem, providing SDKs for each language. Sentry went with unifying the API across language boundaries and I’m not super happy with the results but I don’t have like 30 packages to maintain
评论 #20183691 未加载
Operyl将近 6 年前
The title cuts off “Symbolicator,” the specific name of the component here which is slightly confusing.
评论 #20183575 未加载
sciurus将近 6 年前
This is cool stuff! It&#x27;s nice to see what Sentry can develop in this space with the focus and resources that they have.<p>I handle ops for Mozilla&#x27;s crash reporting pipeline for Firefox [0] and our symbol server [1], among other things. I know our respective development teams stay in touch, and I hope we can find a way to use symbolic&#x2F;symbolicator to simplify our stack.<p>[0] <a href="https:&#x2F;&#x2F;socorro.readthedocs.io&#x2F;en&#x2F;latest&#x2F;" rel="nofollow">https:&#x2F;&#x2F;socorro.readthedocs.io&#x2F;en&#x2F;latest&#x2F;</a> [1] <a href="https:&#x2F;&#x2F;tecken.readthedocs.io&#x2F;en&#x2F;latest&#x2F;" rel="nofollow">https:&#x2F;&#x2F;tecken.readthedocs.io&#x2F;en&#x2F;latest&#x2F;</a>
SEJeff将近 6 年前
I&#x27;ve used sentry since Dave Cramer (sentry original author) was working back at Disqus years ago. It&#x27;s excellent software that fills a really important niche. It is wonderful to see he managed to build a solid team and company around it.
larrik将近 6 年前
I really like sentry, but I&#x27;m sad that the URL scheme changed (from sentry.io&#x2F;&lt;org name&gt;&#x2F;&lt;project name&gt;&#x2F; to sentry.io&#x2F;organizations&#x2F;&lt;org&gt;&#x2F;issues&#x2F;?project=&lt;meaningless int&gt;)
评论 #20184126 未加载
scardine将近 6 年前
Hey @the_mitsuhiko, any plans to support Django Channels (daphne) out of the box? Debugging async stuff is tough.
评论 #20182817 未加载
js2将近 6 年前
I built Yahoo&#x27;s in-house mobile app crash reporting tool a few years ago (still in use). I used an on-premise install of Sentry as the UI. At the time, Sentry didn&#x27;t really support mobile error reporting, so I built something much like what&#x27;s detailed in this post and called it the Processor.<p>I regret never having made the time to open-source what I built. The Processor is written in Python, takes reports from mobile devices, unwinds, symbolicates, retraces, unminifies, etc as needed, then generates a Sentry &quot;event&quot; and forwards that to our on-prem Sentry instance.<p>I also built the SDKs. For iOS, I used PLCrashReporter. These days I&#x27;d probably use KSCrash. An important point here. On iOS, the unwinding is done on the device. So all you have to do on the backend is symbolicate it. Another point: it&#x27;s relatively easy to get iOS system symbols. Plug an iOS device into a Mac running Xcode and the symbols are transferred from the device to the Mac. You can then harvest them however you need. In fact, Apple has apparently stopped encrypting OTA updates so you no longer need an iOS device to get the symbols:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;Zuikyo&#x2F;iOS-System-Symbols" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Zuikyo&#x2F;iOS-System-Symbols</a><p>For Android NDK crashes I&#x27;ve tried a few approaches and still don&#x27;t have a satisfying solution. Originally I went with breakpad + minidumps on the device. On the backend, the Processor runs the breakpad stackwalker on the minidump. Another important point: the unwinding is occurring on the backend in this case, unlike iOS where it&#x27;s done on the phone. (A minidump is basically just a snapshot of all the thread stack memory, plus some extra diagnostic info.) But to unwind reliably off-device you need the Android system symbols (in addition to the app&#x27;s symbols obviously). Well good luck with that. Google makes the original Nexus Android OS images available so you can harvest those but you&#x27;ll never get symbols for all the various Android devices. I built a tool that can harvest symbols off a device and tried to crowdsource them from Yahoo&#x27;s developers but it&#x27;s not been very successful (there&#x27;s a lot of flavors of Android).<p>Another issue is that minidumps are relatively largish to deal with. So my second approach was two-fold. I&#x27;m still using breakpad&#x27;s crash handler on the device, but I now have it generating the much smaller microdump format. In addition, I&#x27;ve added libunwind to our Android SDK so that after capturing the microdump, I attempt to unwind on the device (also collecting function names during unwinding) and add that info to the report. The Processor then only needs to unwind the microdump if the unwinding on the device failed. Otherwise it just needs to symbolicate. This hasn&#x27;t been wildly successful though. Unwinding on an Android device is trickier than on an iOS device. Also, it&#x27;s almost impossible (well I haven&#x27;t figured out how) to unwind through the ART&#x2F;Java frames that called into the native code.<p>Of course the vast majority of Android crashes are in Java code and this is much easier to deal with these. They are unwound just find on the device so on the backend you only need to deal with deobfuscating the ProGuard minification which is easily done using the mapping file generated by ProGuard.<p>What&#x27;s really annoying with native mobile crashes is that both Android and iOS have their own services for both capturing crashes and unwinding on the device. And because these are integrated with the OS and work out-of-process, they are much more reliable than anything you can do in-process using something like PLCR, KSCrash, libunwind, etc.<p>But, neither OS gives an app access to its own system generated reports. All you get is the lame reports the devices upload to Google Play Console &#x2F; iTunes Connect.<p>Anyway, thank you to Sentry for providing such a great product and I&#x27;m sorry again I wasn&#x27;t able to contribute more. I&#x27;m not sure what I built would work at your scale. It&#x27;s interesting we ended up with similar designs.
评论 #20183730 未加载