2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Strapi plugin Sentry
  
						 
					
						
							
								
									
										
										
										
											2020-12-14 00:59:12 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The official plugin to track Strapi errors with Sentry.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Features
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Initialize a Sentry instance when your Strapi app starts 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Send errors encountered in your application's end API to Sentry 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Attach useful metadata to Sentry events, to help you with debugging 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  Expose a global Sentry service 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-18 10:43:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Installation
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								To install this plugin, you need to add an NPM dependency to your Strapi application.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Using Yarn
  
						 
					
						
							
								
									
										
										
										
											2022-02-03 12:52:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								yarn add @strapi/plugin -sentry
							 
						 
					
						
							
								
									
										
										
										
											2021-02-18 10:43:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Or using NPM
  
						 
					
						
							
								
									
										
										
										
											2022-02-03 12:52:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								npm install @strapi/plugin -sentry
							 
						 
					
						
							
								
									
										
										
										
											2021-02-18 10:43:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Configuration
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-17 09:15:32 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								| property       | type (default)   | description                                                                                                                                                                              |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `dsn`           | string (`null` )  | Your Sentry data source name ([see Sentry docs ](https://docs.sentry.io/product/sentry-basics/dsn-explainer/ )).                                                                           |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `sendMetadata`  | boolean (`true` ) | Whether the plugin should attach additional information (like OS, browser, etc.) to the events sent to Sentry.                                                                           |
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| `init`          | object (`{}` )    | A config object that is passed directly to Sentry during the `Sentry.init()` . See all available options [on Sentry's docs ](https://docs.sentry.io/platforms/node/configuration/options/ ) |
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Example**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`./config/plugins.js`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								module.exports = ({ env }) => ({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  sentry: {
							 
						 
					
						
							
								
									
										
										
										
											2022-02-03 12:52:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    enabled: true,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    config: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      dsn: env('SENTRY_DSN'),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      sendMetadata: true,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    },
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								});
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Global Sentry service
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								You can access a Sentry service throughout your app.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2021-08-19 22:27:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const sentryService = strapi.plugin('sentry').service('sentry');
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This service exposes the following methods:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### `sendError(error, configureScope)`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use it to manually send errors to Sentry. The `configureScope`  is optional, it allows you to customize the error event. Read more about Sentry's scope system [on their docs ](https://docs.sentry.io/platforms/node/enriching-events/scopes/#configuring-the-scope ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Example**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								try {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // Your code here
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} catch (error) {
							 
						 
					
						
							
								
									
										
										
										
											2020-12-16 12:35:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  // Either send a simple error
							 
						 
					
						
							
								
									
										
										
										
											2021-08-19 22:27:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  strapi
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .plugin('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .service('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .sendError(error);
							 
						 
					
						
							
								
									
										
										
										
											2020-12-16 12:35:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // Or send an error with a customized Sentry scope
							 
						 
					
						
							
								
									
										
										
										
											2021-08-19 22:27:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  strapi
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .plugin('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .service('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    .sendError(error, (scope, sentryInstance) => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // Customize the scope here
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      scope.setTag('my_custom_tag', 'Tag value');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    });
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  throw error;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:54:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### `getInstance()`
  
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use it if you need direct access to the Sentry instance, which should already already be initialized. It's useful if `sendError`  doesn't suit your needs.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Example**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2021-08-19 22:27:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const sentryInstance = strapi
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  .plugin('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  .service('sentry')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  .getInstance();
							 
						 
					
						
							
								
									
										
										
										
											2020-12-14 17:50:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2021-02-15 19:34:45 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Disabling
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-02-03 12:58:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This plugin can be disabled in the plugins configuration file. With the `env`  utility, it is also possible to disable it depending on the environment.
							 
						 
					
						
							
								
									
										
										
										
											2021-02-15 19:34:45 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Example**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`./config/plugins.js`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								module.exports = ({ env }) => ({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  sentry: {
							 
						 
					
						
							
								
									
										
										
										
											2022-02-03 12:52:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Only enable Sentry in production
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enabled: env('NODE_ENV') === 'production',
							 
						 
					
						
							
								
									
										
										
										
											2021-02-15 19:34:45 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								});
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```