Automatic remote crash reporting (maybe even logging?) #490
Labels
feature request
Request for a new feature/enhancement
feedback wanted
Feedback is wanted whether the changes by this PR are desired
help wanted
Extra attention is needed
Automatic remote crash reporting
Problem statement
Based on the experience gathered over the last year, crash reports by players and server hosters are sporadic and not fully reliable. Combine with slow updated rate on servers this makes it near impossible to gather within a reasonable short whether a release was buggy and needs to be reverted.
Solution
The solution? Remote crash reporting
I've successfully used Sentry for FlightCore which allows me to see any crash that may have happened on a client, together with the stacktrace and some environment information (application version, OS version, ...)
AFAIK Sentry even allows for uploading minidumps.
For example https://northstar-kv.sentry.io/share/issue/3ebc5a2c95234439863ad80a5001f203/ which helped me spot the issue and address with R2NorthstarTools/FlightCore#375
Even if we cannot get full stacktrace/minidump, getting crash rate of server per deployed version would hugely help us in gauging how 'buggy" an update is or whether a specific issue may have been resolved.
Things to consider
Drawbacks
Sentry's free tier is kinda restricted, allowing only for a single user with access to the data (although individual issues can be publicly shared). To remedy we could self-host Sentry (or apply for some sponsored tier?)
We might also want
Dev builds
Crash reporting should be disabled for dev builds as it'll just pollute the database
Opt-out
Naturally we wanna offer opt-out in case someone doesn't want their crash logged. A simple commandline arg should suffice.
We wanna go for opt-out as opposed to opt-in as people that don't care (most likely majority of userbase) stick to defaults so opt-out gives way larger coverage
GDPR / data privacy
Don't collect sensitive information -> no privacy issues, it's as easy as that ¯\_(ツ)_/¯
Anything else?
idk
The text was updated successfully, but these errors were encountered: