From 8aa6c9190da1a6e66b0d96c962eb705dcee43ab7 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Fri, 11 Mar 2022 15:59:59 +0100 Subject: [PATCH] :chart_with_upwards_trend: Added optional sentry --- frontend/Dockerfile | 1 + frontend/package.json | 2 + frontend/pnpm-lock.yaml | 67 +++++++++++++++++++++++++++++ frontend/src/routes/__layout.svelte | 65 +++++++++++++++++----------- 4 files changed, 110 insertions(+), 25 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 269e10e..362d54e 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -5,6 +5,7 @@ FROM node:16 as builder # ENV API_URL=http://api:80 ENV API_URL=https://mawoka.eu ENV REDIS_URL=$REDIS +ENV VITE_SENTRY=https://4981de1f72f24fd7b5e21b8913b93a02@o661934.ingest.sentry.io/6254641 # change working directory WORKDIR /usr/src/app diff --git a/frontend/package.json b/frontend/package.json index 151e258..629ee5e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,6 +15,8 @@ "devDependencies": { "@felte/validator-yup": "^1.0.1", "@fontsource/marck-script": "^4.5.2", + "@sentry/browser": "^6.18.2", + "@sentry/tracing": "^6.18.2", "@sveltejs/adapter-auto": "next", "@sveltejs/adapter-node": "^1.0.0-next.70", "@sveltejs/kit": "next", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index f332e18..36a7c54 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -3,6 +3,8 @@ lockfileVersion: 5.3 specifiers: '@felte/validator-yup': ^1.0.1 '@fontsource/marck-script': ^4.5.2 + '@sentry/browser': ^6.18.2 + '@sentry/tracing': ^6.18.2 '@sveltejs/adapter-auto': next '@sveltejs/adapter-node': ^1.0.0-next.70 '@sveltejs/kit': next @@ -39,6 +41,8 @@ specifiers: devDependencies: '@felte/validator-yup': 1.0.1_yup@0.32.11 '@fontsource/marck-script': 4.5.2 + '@sentry/browser': 6.18.2 + '@sentry/tracing': 6.18.2 '@sveltejs/adapter-auto': 1.0.0-next.31 '@sveltejs/adapter-node': 1.0.0-next.70 '@sveltejs/kit': 1.0.0-next.295_sass@1.49.9+svelte@3.46.4 @@ -196,6 +200,69 @@ packages: picomatch: 2.3.1 dev: true + /@sentry/browser/6.18.2: + resolution: {integrity: sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg==} + engines: {node: '>=6'} + dependencies: + '@sentry/core': 6.18.2 + '@sentry/types': 6.18.2 + '@sentry/utils': 6.18.2 + tslib: 1.14.1 + dev: true + + /@sentry/core/6.18.2: + resolution: {integrity: sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 6.18.2 + '@sentry/minimal': 6.18.2 + '@sentry/types': 6.18.2 + '@sentry/utils': 6.18.2 + tslib: 1.14.1 + dev: true + + /@sentry/hub/6.18.2: + resolution: {integrity: sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 6.18.2 + '@sentry/utils': 6.18.2 + tslib: 1.14.1 + dev: true + + /@sentry/minimal/6.18.2: + resolution: {integrity: sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 6.18.2 + '@sentry/types': 6.18.2 + tslib: 1.14.1 + dev: true + + /@sentry/tracing/6.18.2: + resolution: {integrity: sha512-hg6NLqrqJ5sUPTyWEQ2RqdnhQVnyLtx8II0IyWxQLDWD8UCe3Mu6G7mroDtakPWcP+lWz6OnKfMEfuhMcxR8fw==} + engines: {node: '>=6'} + dependencies: + '@sentry/hub': 6.18.2 + '@sentry/minimal': 6.18.2 + '@sentry/types': 6.18.2 + '@sentry/utils': 6.18.2 + tslib: 1.14.1 + dev: true + + /@sentry/types/6.18.2: + resolution: {integrity: sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==} + engines: {node: '>=6'} + dev: true + + /@sentry/utils/6.18.2: + resolution: {integrity: sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==} + engines: {node: '>=6'} + dependencies: + '@sentry/types': 6.18.2 + tslib: 1.14.1 + dev: true + /@socket.io/base64-arraybuffer/1.0.2: resolution: {integrity: sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==} engines: {node: '>= 0.6.0'} diff --git a/frontend/src/routes/__layout.svelte b/frontend/src/routes/__layout.svelte index 8aec80a..d07b704 100644 --- a/frontend/src/routes/__layout.svelte +++ b/frontend/src/routes/__layout.svelte @@ -2,40 +2,55 @@ import '../app.css'; import Navbar from '$lib/navbar.svelte'; import { navbarVisible } from '$lib/stores.ts'; + import * as Sentry from '@sentry/browser'; + import { BrowserTracing } from '@sentry/tracing'; + + if (import.meta.env.VITE_SENTRY !== null) { + Sentry.init({ + dsn: import.meta.env.VITE_SENTRY, + integrations: [new BrowserTracing()], + + // Set tracesSampleRate to 1.0 to capture 100% + // of transactions for performance monitoring. + // We recommend adjusting this value in production + tracesSampleRate: 0.5 + }); + } + {#if $navbarVisible} -
+
{:else} {/if} -