Skip to content

Commit

Permalink
Implement configurable sentry
Browse files Browse the repository at this point in the history
  • Loading branch information
Vlad Lo. committed Sep 12, 2024
1 parent 76f1195 commit 6fdcc53
Show file tree
Hide file tree
Showing 8 changed files with 163 additions and 29 deletions.
18 changes: 2 additions & 16 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const config = {

customFields: {
LD_CLIENT_ID: process.env.LD_CLIENT_ID,
SENTRY_KEY: process.env.SENTRY_KEY,
},

trailingSlash: true,
Expand Down Expand Up @@ -158,22 +159,7 @@ const config = {
]
: null,
"./src/plugins/launchdarkly",
[
"docusaurus-plugin-sentry",
{
DSN: "d3220b0812610810ddb5a911b3d97790",
configuration: {
sentry: {
init: {
replaysOnErrorSampleRate: isProd ? 1.0 : 0,
replaysSessionSampleRate: isProd ? 1.0 : 0,
sampleRate: isProd ? 0.25 : 0,
tracesSampleRate: 0,
},
},
},
},
],
"./src/plugins/sentry",
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@
"@rjsf/core": "^5.18.4",
"@rjsf/utils": "^5.18.4",
"@rjsf/validator-ajv8": "^5.18.4",
"@sentry/browser": "^8.30.0",
"clsx": "^1.2.1",
"docusaurus-plugin-segment": "^1.0.4",
"docusaurus-plugin-sentry": "^2.0.0",
"dotenv": "^16.4.5",
"js-cookie": "^3.0.5",
"launchdarkly-js-client-sdk": "^3.3.0",
Expand Down
21 changes: 21 additions & 0 deletions src/plugins/sentry/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import * as path from "path";

const SentryPlugin = () => {
return {
name: "docusaurus-plugin-sentry",
getClientModules() {
return [path.resolve(__dirname, "./sentry")];
},
configureWebpack() {
return {
resolve: {
alias: {
"sentry-plugin": path.resolve(__dirname, "./sentry.ts"),
},
},
};
},
};
};

export default SentryPlugin;
16 changes: 16 additions & 0 deletions src/plugins/sentry/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "docusaurus-plugin-sentry",
"version": "1.0.0",
"description": "A Sentry plugin to initialize the Sentry SDK",
"main": "index.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"docusaurus-plugin",
"sentry-plugin",
"sentry"
],
"author": "Vlad Lo.",
"license": "MIT"
}
30 changes: 30 additions & 0 deletions src/plugins/sentry/sentry.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
import siteConfig from "@generated/docusaurus.config";
import * as Sentry from "@sentry/browser";

const isProd = process.env.NODE_ENV === "production";

export default (function () {
if (!ExecutionEnvironment.canUseDOM) {
return null;
}

const { SENTRY_KEY } = siteConfig.customFields;

Sentry.init({
dsn: SENTRY_KEY as string,
replaysOnErrorSampleRate: isProd ? 1.0 : 0,
replaysSessionSampleRate: isProd ? 1.0 : 0,
sampleRate: isProd ? 0.25 : 0,
tracesSampleRate: 0,
debug: !isProd,
});

Sentry.replayIntegration({
maskAllText: false,
});

console.log("Sentry client ready");

return Sentry;
})();
2 changes: 2 additions & 0 deletions src/theme/Root.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useState, createContext, ReactChild } from "react";
import { MetaMaskSDK } from "@metamask/sdk";
import BrowserOnly from "@docusaurus/BrowserOnly";
// import Sentry from "sentry-plugin";

export const MetamaskProviderContext = createContext(null);

Expand Down Expand Up @@ -29,6 +30,7 @@ export default function Root({ children }: { children: ReactChild}) {
const provider = sdk?.getProvider();
setMetaMaskProvider(provider);
}
// Sentry.setUser({ email: "" })
} catch (err) {
console.warn("failed to connect..", err);
}
Expand Down
3 changes: 3 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
"paths": {
"launchdarkly": [
"./node_modules/launchdarkly-js-client-sdk/dist/ldclient.es.js"
],
"sentry-plugin": [
"./node_modules/@sentry/browser/build/npm/esm/index.js"
]
}
},
Expand Down
100 changes: 88 additions & 12 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3587,6 +3587,52 @@ __metadata:
languageName: node
linkType: hard

"@sentry-internal/browser-utils@npm:8.30.0":
version: 8.30.0
resolution: "@sentry-internal/browser-utils@npm:8.30.0"
dependencies:
"@sentry/core": 8.30.0
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 140af9257b9bcec09c1f8183db935265b9ca20d4e21c07051982f6419ba84cd39efb3d5016e54387df4abfd9cf0c76c3125ca8d1f624c78e2cacef411613908a
languageName: node
linkType: hard

"@sentry-internal/feedback@npm:8.30.0":
version: 8.30.0
resolution: "@sentry-internal/feedback@npm:8.30.0"
dependencies:
"@sentry/core": 8.30.0
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 7d64b3e7439e6cb9d9c8eb29a3eca0ab67fed1d4d05e9a6299b0ca479cca4c154a81e7245ebbd75fec5aa8cc2e05f0b49b4259b5c0f096d861bc30115edc7a76
languageName: node
linkType: hard

"@sentry-internal/replay-canvas@npm:8.30.0":
version: 8.30.0
resolution: "@sentry-internal/replay-canvas@npm:8.30.0"
dependencies:
"@sentry-internal/replay": 8.30.0
"@sentry/core": 8.30.0
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 7d2f26ded82c36a0dcab287a1c36dc3c3047b183a59449016ffb794f6695b3c289206df52bbf0937ed2020e831d9265e544075951ac7d4f0fa09361c9c75dab8
languageName: node
linkType: hard

"@sentry-internal/replay@npm:8.30.0":
version: 8.30.0
resolution: "@sentry-internal/replay@npm:8.30.0"
dependencies:
"@sentry-internal/browser-utils": 8.30.0
"@sentry/core": 8.30.0
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 1e46ba6134cd979400664ad9b5e6b22de60c64c5e5fd50a8004043956830836bff70aebd01f8469680e3968845ae36307ba562b2f0e62ecdc1cdcfb2fa8d7ad4
languageName: node
linkType: hard

"@sentry/browser@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/browser@npm:6.19.7"
Expand All @@ -3599,6 +3645,21 @@ __metadata:
languageName: node
linkType: hard

"@sentry/browser@npm:^8.30.0":
version: 8.30.0
resolution: "@sentry/browser@npm:8.30.0"
dependencies:
"@sentry-internal/browser-utils": 8.30.0
"@sentry-internal/feedback": 8.30.0
"@sentry-internal/replay": 8.30.0
"@sentry-internal/replay-canvas": 8.30.0
"@sentry/core": 8.30.0
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 08bb5a6e63f343470b45b9f76820158812a2b178e3c956aeb7142421247f7c648a1e44e7abdeb80e9aaec0472b89df1105a0fb539672a177970ad63040d871c3
languageName: node
linkType: hard

"@sentry/core@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/core@npm:6.19.7"
Expand All @@ -3612,6 +3673,16 @@ __metadata:
languageName: node
linkType: hard

"@sentry/core@npm:8.30.0":
version: 8.30.0
resolution: "@sentry/core@npm:8.30.0"
dependencies:
"@sentry/types": 8.30.0
"@sentry/utils": 8.30.0
checksum: 986b5e97b25bfc3759065b0009f56460794d6402fcdca5b0618e41b3539987ee243a7db5d69e6f55fc7062b0acbbb4858109032f0763754bdf5563d011195ae0
languageName: node
linkType: hard

"@sentry/hub@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/hub@npm:6.19.7"
Expand Down Expand Up @@ -3657,6 +3728,13 @@ __metadata:
languageName: node
linkType: hard

"@sentry/types@npm:8.30.0":
version: 8.30.0
resolution: "@sentry/types@npm:8.30.0"
checksum: d96138af9692f31ff42fd6e4bdb32ea16659f212f09b4e23c8114c8eed73a1cc601595ef2bb00b8277080b552dfa8eab36abc3a5c10f06edff9785bd420d178f
languageName: node
linkType: hard

"@sentry/utils@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/utils@npm:6.19.7"
Expand All @@ -3667,6 +3745,15 @@ __metadata:
languageName: node
linkType: hard

"@sentry/utils@npm:8.30.0":
version: 8.30.0
resolution: "@sentry/utils@npm:8.30.0"
dependencies:
"@sentry/types": 8.30.0
checksum: f18095f95cb33befb0292bc8ad731822f20fe1e8f684ccf634943a9cc20b3a700a6c9119ed56b5a6a9bc952e978f34cd95488d8c069c69d01c7b62776ad2588c
languageName: node
linkType: hard

"@sideway/address@npm:^4.1.5":
version: 4.1.5
resolution: "@sideway/address@npm:4.1.5"
Expand Down Expand Up @@ -8200,17 +8287,6 @@ __metadata:
languageName: node
linkType: hard

"docusaurus-plugin-sentry@npm:^2.0.0":
version: 2.0.0
resolution: "docusaurus-plugin-sentry@npm:2.0.0"
peerDependencies:
"@docusaurus/core": ">=3"
react: ">=18"
react-dom: ">=18"
checksum: c4149b7b3eb65cff1a2e0d06ed887ee642bee97a311cc638b558fee9f4496e07a9a0f93165e7562dd0d8500acc45c3d069e3500a948b53adc1025ec2d1296ab4
languageName: node
linkType: hard

"dom-converter@npm:^0.2.0":
version: 0.2.0
resolution: "dom-converter@npm:0.2.0"
Expand Down Expand Up @@ -13371,11 +13447,11 @@ __metadata:
"@rjsf/core": ^5.18.4
"@rjsf/utils": ^5.18.4
"@rjsf/validator-ajv8": ^5.18.4
"@sentry/browser": ^8.30.0
"@tsconfig/docusaurus": ^1.0.5
"@typescript-eslint/parser": ^7.12.0
clsx: ^1.2.1
docusaurus-plugin-segment: ^1.0.4
docusaurus-plugin-sentry: ^2.0.0
dotenv: ^16.4.5
eslint-plugin-react: ^7.34.2
js-cookie: ^3.0.5
Expand Down

0 comments on commit 6fdcc53

Please sign in to comment.