Skip to content
Gatsby plugin to add Sentry error tracking to your site.
JavaScript
Branch: master
Clone or download
Latest commit f394871 Jan 26, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Cleanup and load async Jun 22, 2018
LICENSE Initial commit. Oct 22, 2017
README.md Fixes typo Dec 18, 2018
gatsby-browser.js consider using latest SDK for Javascript Oct 16, 2018
index.js Initial commit. Oct 22, 2017
package-lock.json 1.0.1 Jan 25, 2019
package.json 1.0.1 Jan 25, 2019

README.md

gatsby-plugin-sentry

Gatsby plugin to add Sentry error tracking to your site.

Learn more about Sentry here.

Install

npm install --save gatsby-plugin-sentry

How to use

// In your gatsby-config.js
plugins: [
  {
    resolve: "gatsby-plugin-sentry",
    options: {
      dsn: "YOUR_SENTRY_DSN_URL",
      // Optional settings, see https://docs.sentry.io/clients/node/config/#optional-settings
      environment: process.env.NODE_ENV,
      enabled: (() => ["production", "stage"].indexOf(process.env.NODE_ENV) !== -1)()
    }
  }
];

Now Sentry is available in global window object. so you can use it in react 16 like:

export default class ErrorBoundary extends React.Component {
  
  constructor(props) {
    super(props);
    this.state = { error: null };
  }

  componentDidCatch(error, errorInfo) {
    this.setState({ error });
    Sentry.configureScope((scope) => {
      Object.keys(errorInfo).forEach(key => {
        scope.setExtra(key, errorInfo[key]);
      });
    });
    Sentry.captureException(error);
  }

  render() {
    if (this.state.error) {
      // render fallback UI
      return <h1>Something went wrong!</h1>;
    } else {
      // when there's not an error, render children untouched
      return this.props.children;
    }
  }
}
You can’t perform that action at this time.