Safe-react: Crash logging

Created on 27 Aug 2020  路  12Comments  路  Source: gnosis/safe-react

What is this feature about? (1 sentence)

This allows us to track crashes and errors that users encounter.

Why is it needed? What is the value? For whom do we build it?

  • We know our app is not perfect.
  • We encounter crashes ourselves every now and then.
  • If we cannot measure how often our app crashes, we can't know what needs to be fixed.

High-level overview of the feature

  • Same like analytics, crash logging should not be enabled for the deskop app for privacy reasons.
  • ~We should research, identify and set up a crash/bug reporting solution similar to Crashlytics.~

    • After Slack discussion, let's use Sentry.

    • Please let @tschubotz know when you want to start with this, then he鈥檒l invite you and also the rest of the team. (Once we add team members the 14 day trial starts. Afterwards it鈥檚 paid. It鈥檚 worth it to pay, but we want to make sure that we use the trial to figure out any issues before.

  • If should be possible to differentiate crashes by environment. At least:

    • Production mainnet

    • Product rinkeby

    • Staging

Critical Feature 馃憫

Most helpful comment

@alongoni I think this looks nice!

There is an "s" missing in persists (I initially forgot it in the suggested text). And we don't necessarily need the Metamask thing on the top right corner. But it also doesn't hurt. Would leave that up to @nicosampler if that's doable implementation wise, or if a completely static page is easier.

All 12 comments

I think the most known alternatives to Crashlytics for the web are rollbar and sentry.
Here is a comparison between then https://rollbar.com/vs/sentry/. Who should take the decision?

For the implementation, I guess it will take the same effort one or the other.

cc: @pablofullana @fernandomg any opinion on this?

Based on the Slack discussion, let's go with Sentry, if there are no other objections.
Let me know when you are ready to start, then I'll add you to the Gnosis Sentry org.

@tschubotz @posthnikova what do you think about having a special page to notify the user if something went wrong.

@tschubotz what should we do if a user enters a URL not known by our route system? should we redirect it to /balances or should we show a page telling the user that we do not have content for that URL?

@tschubotz @posthnikova what do you think about having a special page to notify the user if something went wrong.

This page would show up instead of the plain white page that we currently show? Or when would that show up?

@tschubotz what should we do if a user enters a URL not known by our route system? should we redirect it to /balances or should we show a page telling the user that we do not have content for that URL?

What about:

  • In case it's a page like gnosis-safe.io/app/#//0xsafeaddress/unkownpage (i.e. we know the Safe) then we redirect to balances.
  • In case it's a page like gnosis-safe.io/app/#/unkownpage (i.e. we don't know the Safe) then we redirect to gnosis-safe-io/app/.

What do you think? What would you do @nicosampler ?

@tschubotz

This page would show up instead of the plain white page that we currently show? Or when would that show up?

yes.. we can detect if there is an unhandled error in the app, we will show a 500 page error.

In case it's a page like gnosis-safe.io/app/#//0xsafeaddress/unkownpage (i.e. we know the Safe) then we redirect to balances.
In case it's a page like gnosis-safe.io/app/#/unkownpage (i.e. we don't know the Safe) then we redirect to gnosis-safe-io/app/.

agree with that.

yes.. we can detect if there is an unhandled error in the app, we will show a 500 page error.

I think a 500 page saying something like "Something went wrong, please try again. In case the problem persist, please reach out to us via email or Discord."

@posthnikova is currently on vacation, but she can make a more fleshed out proposal once back.

@pablofullana @tschubotz what do you think about asking a first design approach to @alongoni?

@pablofullana @tschubotz what do you think about asking a first design approach to @alongoni?

If @alongoni has time for it this week, then yes please. If only next week then I'd prefer to loop in @posthnikova.

Hi @tschubotz, what do you think of this proposal? Let me know if the text is ok or if you want to correct some details.

(Disclaimer: I couldn't use the Averta font in this prototype, but we will use it in the final implementation.)

error page

cc: @nicosampler

@alongoni I think this looks nice!

There is an "s" missing in persists (I initially forgot it in the suggested text). And we don't necessarily need the Metamask thing on the top right corner. But it also doesn't hurt. Would leave that up to @nicosampler if that's doable implementation wise, or if a completely static page is easier.

@alongoni What type of crashes would redirect to this screen?

@alongoni I think this looks nice!

There is an "s" missing in persists (I initially forgot it in the suggested text). And we don't necessarily need the Metamask thing on the top right corner. But it also doesn't hurt. Would leave that up to @nicosampler if that's doable implementation wise, or if a completely static page is easier.

It will not contain the navbar at all, because the "catcher" should be as above as possible.

@mikheevm this is the PR https://github.com/gnosis/safe-react/pull/1528. It will catch any unhandled error.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

francovenica picture francovenica  路  6Comments

fernandomg picture fernandomg  路  4Comments

tschubotz picture tschubotz  路  6Comments

katspaugh picture katspaugh  路  4Comments

sche picture sche  路  5Comments