add apm rum

This commit is contained in:
Daniel Bulant 2023-01-01 11:01:30 +01:00
parent 36252ff3bb
commit e451981ccb
4 changed files with 218 additions and 0 deletions

View file

@ -8,14 +8,26 @@
"preview": "svelte-kit preview"
},
"devDependencies": {
"@dimforge/rapier3d-compat": "^0.10.0",
"@sveltejs/adapter-static": "1.0.0-next.39",
"@sveltejs/kit": "1.0.0-next.431",
"@theatre/core": "^0.5.1",
"@theatre/studio": "^0.5.1",
"@threlte/core": "^5.0.8",
"@threlte/extras": "^4.9.3",
"@threlte/preprocess": "^0.0.2",
"@threlte/rapier": "^0.5.0",
"@threlte/theatre": "^0.0.2",
"@types/three": "^0.147.1",
"mdsvex": "0.10.5",
"svelte": "3.46.4",
"svelte-sequential-preprocessor": "^0.0.7",
"three": "^0.148.0",
"vite-plugin-windicss": "^1.8.7"
},
"type": "module",
"dependencies": {
"@elastic/apm-rum": "^5.12.0",
"@sentry/browser": "^7.24.2",
"@sveltejs/pancake": "^0.0.18",
"katex": "0.15.2",

View file

@ -1,10 +1,20 @@
lockfileVersion: 5.4
specifiers:
'@dimforge/rapier3d-compat': ^0.10.0
'@elastic/apm-rum': ^5.12.0
'@sentry/browser': ^7.24.2
'@sveltejs/adapter-static': 1.0.0-next.39
'@sveltejs/kit': 1.0.0-next.431
'@sveltejs/pancake': ^0.0.18
'@theatre/core': ^0.5.1
'@theatre/studio': ^0.5.1
'@threlte/core': ^5.0.8
'@threlte/extras': ^4.9.3
'@threlte/preprocess': ^0.0.2
'@threlte/rapier': ^0.5.0
'@threlte/theatre': ^0.0.2
'@types/three': ^0.147.1
katex: 0.15.2
luxon: 2.3.1
mdast-util-gfm-table: ^1.0.4
@ -20,6 +30,8 @@ specifiers:
remark-parse: 10.0.1
remark-twemoji: 0.1.1
svelte: 3.46.4
svelte-sequential-preprocessor: ^0.0.7
three: ^0.148.0
twemoji: 13.1.0
unified: ^10.1.2
vite: ^3.0.9
@ -27,6 +39,7 @@ specifiers:
xterm: 4.18.0
dependencies:
'@elastic/apm-rum': 5.12.0
'@sentry/browser': 7.24.2
'@sveltejs/pancake': 0.0.18
katex: 0.15.2
@ -48,10 +61,21 @@ dependencies:
xterm: 4.18.0
devDependencies:
'@dimforge/rapier3d-compat': 0.10.0
'@sveltejs/adapter-static': 1.0.0-next.39
'@sveltejs/kit': 1.0.0-next.431_svelte@3.46.4+vite@3.0.9
'@theatre/core': 0.5.1
'@theatre/studio': 0.5.1_@theatre+core@0.5.1
'@threlte/core': 5.0.8
'@threlte/extras': 4.9.3_three@0.148.0
'@threlte/preprocess': 0.0.2
'@threlte/rapier': 0.5.0
'@threlte/theatre': 0.0.2
'@types/three': 0.147.1
mdsvex: 0.10.5_svelte@3.46.4
svelte: 3.46.4
svelte-sequential-preprocessor: 0.0.7
three: 0.148.0
vite-plugin-windicss: 1.8.7_vite@3.0.9
packages:
@ -60,6 +84,26 @@ packages:
resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}
dev: true
/@dimforge/rapier3d-compat/0.10.0:
resolution: {integrity: sha512-3SPxyAnPQz9P3cIhgF8VncwJwrqyAW2xsNEYgXbxDhvB2IaIG63eTX7rNIJUnec5FDYqgvVo/nqY1XarzT5T2Q==}
dev: true
/@elastic/apm-rum-core/5.17.0:
resolution: {integrity: sha512-GN1UyyeL8+AD9crKi2lR1MlariKlL5aIlsuVxR9SM1pGBBno1uVUW8Cu6KqzGpscYGf78LNdDezlc5Amx4vJbw==}
engines: {node: '>=8.0.0'}
dependencies:
error-stack-parser: 1.3.6
opentracing: 0.14.7
promise-polyfill: 8.2.3
dev: false
/@elastic/apm-rum/5.12.0:
resolution: {integrity: sha512-WEyzOhrtaExV9iFH2YxHbjuQNESunn5mMlmPfGan/rD6grzamN5vPOo844wgKy7/f5DsQoAIxFTf1VjvOaHcjA==}
engines: {node: '>=8.0.0'}
dependencies:
'@elastic/apm-rum-core': 5.17.0
dev: false
/@esbuild/linux-loong64/0.14.54:
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
engines: {node: '>=12'}
@ -194,6 +238,51 @@ packages:
- supports-color
dev: true
/@theatre/core/0.5.1:
resolution: {integrity: sha512-LV3LwHPWVm62bR6DUQ55t4kCaI1KGrz+rPLoA6pMJ57x+6vBpoSCI0b11gJPdA1mCXebcNWN+U5M3PP6jJaSSg==}
dependencies:
'@theatre/dataverse': 0.5.1
dev: true
/@theatre/dataverse/0.5.1:
resolution: {integrity: sha512-oTjR8fNDbY11GSp7kw8quuOE9IC/5qzTe++OjFgn5enHKcFSaSPAZ8SIyOs+Im9bYgjcJFg/AYgU3Xi/MENgwQ==}
dependencies:
lodash-es: 4.17.21
dev: true
/@theatre/studio/0.5.1_@theatre+core@0.5.1:
resolution: {integrity: sha512-6r8JjSdUhL8JXMLlnhOLLFc/Br5Ddcq4EQmwUSCEBbFuJZcyb++GxV23p5W7a0DiB7NgtKdORj77n5NBt0WEpA==}
peerDependencies:
'@theatre/core': '*'
dependencies:
'@theatre/core': 0.5.1
'@theatre/dataverse': 0.5.1
dev: true
/@threlte/core/5.0.8:
resolution: {integrity: sha512-RSYnuBt7glaRDPWm0dajggZDd7vtxvri3x2RFOeYDCt7DmrHXxFHEh4pHmB7JGZJoRxOrJjtiwncyDpWjCzvnQ==}
dev: true
/@threlte/extras/4.9.3_three@0.148.0:
resolution: {integrity: sha512-1XVa9a3C+EQE9vMCZopZ2oZGncDlk/Claz+voFCTZvUqJl0xpPWBQTPNM6V61nXu8k5t+JKSGam3TWygBnfxug==}
dependencies:
troika-three-text: 0.46.4_three@0.148.0
transitivePeerDependencies:
- three
dev: true
/@threlte/preprocess/0.0.2:
resolution: {integrity: sha512-Eb3u3nAEBSFpadQvCdeZKy0xE4kgnlmxeTxnzTsmvUJt5ZEadbMg1+/LXn0oAYgFO72YQ62CJ7WI4hmoQSpOeA==}
dev: true
/@threlte/rapier/0.5.0:
resolution: {integrity: sha512-+lZ24lPdKLyXZA4iQvRl8prpQF9ARRaETm1EtkRCZSZm8NjSNKcpD6Gk5hCsI0PQbzCavY2FOrSvCPUbBuQgTA==}
dev: true
/@threlte/theatre/0.0.2:
resolution: {integrity: sha512-Pu8wwEOmzJ3Dqs1h2SeEUQG3lyg4M3ppRj/TGONijTSAchprfY4kTXBI1hZz1k6mn2c2FNY13HsiAjwQJnMWug==}
dev: true
/@types/debug/4.1.7:
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
dependencies:
@ -220,9 +309,19 @@ packages:
resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
dev: false
/@types/three/0.147.1:
resolution: {integrity: sha512-1dGYrF9E7frAXu3CRUYtTFj97PlA/Q0OedDQBROn3fKjtKXNhXc6/VNgkGod3axJMeNPNFDa6ur9eOcQ+aD0zw==}
dependencies:
'@types/webxr': 0.5.0
dev: true
/@types/unist/2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
/@types/webxr/0.5.0:
resolution: {integrity: sha512-IUMDPSXnYIbEO2IereEFcgcqfDREOgmbGqtrMpVPpACTU6pltYLwHgVkrnYv0XhWEcjio9sYEfIEzgn3c7nDqA==}
dev: true
/@windicss/config/1.8.7:
resolution: {integrity: sha512-8n+/Y36j5L3rw2tgMdLjeGRuNV7VYfKoHoraLK6Bk9OJ1MTPd5vv7pekof/uOPWVV7WWjVeZ6CTO8SDbDDW3iw==}
dependencies:
@ -269,6 +368,12 @@ packages:
resolution: {integrity: sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==}
dev: false
/bidi-js/1.0.2:
resolution: {integrity: sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==}
dependencies:
require-from-string: 2.0.2
dev: true
/boolbase/1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: false
@ -371,6 +476,12 @@ packages:
hasBin: true
dev: false
/error-stack-parser/1.3.6:
resolution: {integrity: sha512-xhuSYd8wLgOXwNgjcPeXMPL/IiiA1Huck+OPvClpJViVNNlJVtM41o+1emp7bPvlCJwCatFX2DWc05/DgfbWzA==}
dependencies:
stackframe: 0.3.1
dev: false
/es-abstract/1.20.1:
resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==}
engines: {node: '>= 0.4'}
@ -1013,6 +1124,10 @@ packages:
resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==}
dev: true
/lodash-es/4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
dev: true
/longest-streak/3.0.1:
resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==}
dev: false
@ -1542,6 +1657,11 @@ packages:
object-keys: 1.1.1
dev: false
/opentracing/0.14.7:
resolution: {integrity: sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==}
engines: {node: '>=0.10'}
dev: false
/path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@ -1570,6 +1690,10 @@ packages:
engines: {node: '>=6'}
dev: true
/promise-polyfill/8.2.3:
resolution: {integrity: sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==}
dev: false
/property-information/5.6.0:
resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
dependencies:
@ -1676,6 +1800,11 @@ packages:
unist-util-visit: 1.4.1
dev: false
/require-from-string/2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
dev: true
/resolve/1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
@ -1745,6 +1874,10 @@ packages:
resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
dev: false
/stackframe/0.3.1:
resolution: {integrity: sha512-XmoiF4T5nuWEp2x2w92WdGjdHGY/cZa6LIbRsDRQR/Xlk4uW0PAUlH1zJYVffocwKpCdwyuypIp25xsSXEtZHw==}
dev: false
/string.prototype.trimend/1.0.5:
resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==}
dependencies:
@ -1774,11 +1907,23 @@ packages:
svelte: 3.46.4
dev: true
/svelte-sequential-preprocessor/0.0.7:
resolution: {integrity: sha512-xk974Ny77eiC8xpFPCVNopCfCW4ElWWlvWIv+c7psbjjb4UVRyhR8IJfwOuwnY5S3nduBOYoalY4eigB9YyqHA==}
engines: {node: '>=10'}
dependencies:
svelte: 3.46.4
tslib: 2.3.1
dev: true
/svelte/3.46.4:
resolution: {integrity: sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==}
engines: {node: '>= 8'}
dev: true
/three/0.148.0:
resolution: {integrity: sha512-8uzVV+qhTPi0bOFs/3te3RW6hb3urL8jYEl6irjCWo/l6sr8MPNMcClFev/MMYeIxr0gmDcoXTy/8LXh/LXkfw==}
dev: true
/tiny-glob/0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
@ -1802,6 +1947,30 @@ packages:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
dev: false
/troika-three-text/0.46.4_three@0.148.0:
resolution: {integrity: sha512-Qsv0HhUKTZgSmAJs5wvO7YlBoJSP9TGPLmrg+K9pbQq4lseQdcevbno/WI38bwJBZ/qS56hvfqEzY0zUEFzDIw==}
peerDependencies:
three: '>=0.103.0'
dependencies:
bidi-js: 1.0.2
three: 0.148.0
troika-three-utils: 0.46.0_three@0.148.0
troika-worker-utils: 0.46.0
webgl-sdf-generator: 1.1.1
dev: true
/troika-three-utils/0.46.0_three@0.148.0:
resolution: {integrity: sha512-llHyrXAcwzr0bpg80GxsIp73N7FuImm4WCrKDJkAqcAsWmE5pfP9+Qzw+oMWK1P/AdHQ79eOrOl9NjyW4aOw0w==}
peerDependencies:
three: '>=0.103.0'
dependencies:
three: 0.148.0
dev: true
/troika-worker-utils/0.46.0:
resolution: {integrity: sha512-bzOx5f2ZBxkFhXtIvDJlLn2AI3bzCkGVbCndl/2dL5QZrwHEKl45OEIilCxYQQWJG1rEbOD9O80tMjoYjw19OA==}
dev: true
/trough/2.1.0:
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
dev: false
@ -1810,6 +1979,10 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: false
/tslib/2.3.1:
resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
dev: true
/twemoji-parser/13.1.0:
resolution: {integrity: sha512-AQOzLJpYlpWMy8n+0ATyKKZzWlZBJN+G0C+5lhX7Ftc2PeEVdUU/7ns2Pn2vVje26AIZ/OHwFoUbdv6YYD/wGg==}
dev: false
@ -2026,6 +2199,10 @@ packages:
engines: {node: '>= 8'}
dev: true
/webgl-sdf-generator/1.1.1:
resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==}
dev: true
/which-boxed-primitive/1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
dependencies:

22
src/lib/apm.ts Normal file
View file

@ -0,0 +1,22 @@
import { browser } from '$app/environment';
import { ApmBase, init as initApm } from '@elastic/apm-rum'
var apm_: ApmBase;
if(browser) {
apm_ = initApm({
// Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)
serviceName: 'homepage',
// Set custom APM Server URL (default: http://localhost:8200)
serverUrl: 'https://apm.elasticsearch.danbulant.cloud',
// Set the service version (required for source map feature)
serviceVersion: import.meta.env.VITE_SENTRY_RELEASE,
// Set the service environment
environment: import.meta.env.VITE_SENTRY_ENVIRONMENT || 'production'
});
}
export const apm = apm_;

View file

@ -4,7 +4,11 @@
import "virtual:windi.css";
import { browser, dev } from "$app/env";
import * as Sentry from '@sentry/browser';
import { apm } from "$lib/apm";
import { page } from "$app/stores";
if (browser && dev) import("virtual:windi-devtools");
export let data;
if (browser && !dev) {
@ -14,6 +18,9 @@
release: import.meta.env.VITE_SENTRY_RELEASE,
});
}
if(browser) {
apm.setInitialPageLoadName($page.route.id);
}
</script>
<Navbar />