Skip to content

Commit f470595

Browse files
committed
feat: 优化 sentry 集成
1 parent 7000683 commit f470595

File tree

5 files changed

+63
-43
lines changed

5 files changed

+63
-43
lines changed

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const createApp = ViteSSG(
4343
app,
4444
dsn: "https://[email protected]:21815/8",
4545
integrations: [
46-
Sentry.browserTracingIntegration(),
46+
Sentry.browserTracingIntegration({ router }),
4747
Sentry.replayIntegration(),
4848
],
4949
// Tracing

src/pages/download/thank_you/v2/[version]/[appSubChannel]/index.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import {onMounted, ref} from "vue";
33
import { useRoute } from 'vue-router';
44
import {IndexIds} from "../../../../../../indexIds";
55
import { useHead } from '@unhead/vue';
6+
import tracedFetch from '../../../../../../utils/tracedFetch';
7+
68
79
const pageMeta = [
810
{
@@ -45,7 +47,7 @@ async function init(){
4547
try {
4648
console.log('Route params:', { version: version.toString(), appSubChannel: appSubChannel.toString() });
4749
48-
const result = await fetch( `https://distribution.classisland.tech/api/v1/public/distributions/web/${version}/${appSubChannel}`);
50+
const result = await tracedFetch( `https://distribution.classisland.tech/api/v1/public/distributions/web/${version}/${appSubChannel}`);
4951
const { code, content, message } = await result.json();
5052
if (code != 0){
5153
throw new Error(`获取下载数据失败:${message} (${code})`);

src/pages/download/v2/index.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script setup lang="ts">
22
import {onMounted, ref} from "vue";
33
import DownloadPlatformCard from "../../../components/DownloadPlatformCard.vue";
4+
import "../../../utils/tracedFetch";
45
const isLoading = ref(true);
56
const downloadIndex = ref();
67
const latestVersionInfo = ref({
@@ -87,6 +88,7 @@ const selectedDownloadInfoIds = ref({
8788
8889
import { useHead } from '@unhead/vue'
8990
import SplitDownloadButton from '../../../components/SplitDownloadButton.vue';
91+
import tracedFetch from '../../../utils/tracedFetch';
9092
9193
useHead({
9294
title: '下载 ClassIsland | ClassIsland',
@@ -129,7 +131,7 @@ function getWindowsVersion() {
129131
130132
async function init(){
131133
try{
132-
const result = await fetch( "https://distribution.classisland.tech/api/v1/public/distributions/web");
134+
const result = await tracedFetch( "https://distribution.classisland.tech/api/v1/public/distributions/web");
133135
const { code, content, message } = await result.json();
134136
downloadIndex.value = content;
135137

src/utils/tracedFetch.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import * as Sentry from '@sentry/vue';
2+
3+
export default async function tracedFetch(uri: string, init?: RequestInit) {
4+
const traceData = Sentry.getTraceData();
5+
const sentryTraceHeader = traceData["sentry-trace"];
6+
const sentryBaggageHeader = traceData["baggage"];
7+
8+
init ??= {
9+
method: "GET",
10+
headers: {},
11+
12+
};
13+
init.headers["baggage"] = sentryBaggageHeader;
14+
init.headers["sentry-trace"] = sentryTraceHeader;
15+
return fetch(uri, init);
16+
}

yarn.lock

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,51 +1035,51 @@
10351035
resolved "https://registry.npmmirror.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c"
10361036
integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==
10371037

1038-
"@sentry-internal/browser-utils@9.5.0":
1039-
version "9.5.0"
1040-
resolved "https://registry.npmmirror.com/@sentry-internal/browser-utils/-/browser-utils-9.5.0.tgz#47feeb57ecf245d08bad30b5f808f61a789a971b"
1041-
integrity sha512-AE9jgeI5+KyGvLR0vf1I6sesi0NZXZe6pDlZNXyg+pWZB2vkE9dksE8ZsoU+YiD9zjUqazgPcVyb3O0VvmaCGw==
1038+
"@sentry-internal/browser-utils@9.47.1":
1039+
version "9.47.1"
1040+
resolved "https://registry.npmmirror.com/@sentry-internal/browser-utils/-/browser-utils-9.47.1.tgz#212fd29613e1631c7a490e860845160050962017"
1041+
integrity sha512-twv6YhrUlPkvKz4/iQDH4KHgcv9t4cMjmZPf4/dCSCXn4/GOjzjx2d74c1w+1KOdS7lcsQzI+MtbK6SeYLiGfQ==
10421042
dependencies:
1043-
"@sentry/core" "9.5.0"
1043+
"@sentry/core" "9.47.1"
10441044

1045-
"@sentry-internal/feedback@9.5.0":
1046-
version "9.5.0"
1047-
resolved "https://registry.npmmirror.com/@sentry-internal/feedback/-/feedback-9.5.0.tgz#5d7450bf25292326e6864e6600a9472a717dc067"
1048-
integrity sha512-p+yOTufEYHP1RLwkD+aZwpCNS4/2l6t4uHgphjYrEC2U/U2mtZQh+EvlBAt0wY/eiKC4/acPNrF5yFD/4A7a0A==
1045+
"@sentry-internal/feedback@9.47.1":
1046+
version "9.47.1"
1047+
resolved "https://registry.npmmirror.com/@sentry-internal/feedback/-/feedback-9.47.1.tgz#b4043e8ba5c687414b3eb091ccfb66c2f1fcfd34"
1048+
integrity sha512-xJ4vKvIpAT8e+Sz80YrsNinPU0XV7jPxPjdZ4ex8R2mMvx7pM0gq8JiR/sIVmNiOE0WiUDr6VwLDE8j2APSRMA==
10491049
dependencies:
1050-
"@sentry/core" "9.5.0"
1050+
"@sentry/core" "9.47.1"
10511051

1052-
"@sentry-internal/replay-canvas@9.5.0":
1053-
version "9.5.0"
1054-
resolved "https://registry.npmmirror.com/@sentry-internal/replay-canvas/-/replay-canvas-9.5.0.tgz#f63fc4e027189d7e2d1a9de7e535591e8399a143"
1055-
integrity sha512-W7MS7/9Z8uP2i0pbndxqz2VcGlFPc7Bv6gCoxRdGIWUWSBS9rsRbryO0sM0PwwuHt2mQtWMqwjYykcR441RBRA==
1052+
"@sentry-internal/replay-canvas@9.47.1":
1053+
version "9.47.1"
1054+
resolved "https://registry.npmmirror.com/@sentry-internal/replay-canvas/-/replay-canvas-9.47.1.tgz#fd55b9a6bdd60a214a2244a3b7556a096b9fc6ab"
1055+
integrity sha512-r9nve+l5+elGB9NXSN1+PUgJy790tXN1e8lZNH2ziveoU91jW4yYYt34mHZ30fU9tOz58OpaRMj3H3GJ/jYZVA==
10561056
dependencies:
1057-
"@sentry-internal/replay" "9.5.0"
1058-
"@sentry/core" "9.5.0"
1057+
"@sentry-internal/replay" "9.47.1"
1058+
"@sentry/core" "9.47.1"
10591059

1060-
"@sentry-internal/replay@9.5.0":
1061-
version "9.5.0"
1062-
resolved "https://registry.npmmirror.com/@sentry-internal/replay/-/replay-9.5.0.tgz#1527d77c25b1d8a7ea606d6fbf4faa9bd8cb70bb"
1063-
integrity sha512-fBBNimElAnu865HT3MJ6xH2P26KvkZvAYt+yRrWr+x5zS5KvjBYUPsSI+F0FTE14XmLW9q7DlNUl5iAZhXSy3g==
1060+
"@sentry-internal/replay@9.47.1":
1061+
version "9.47.1"
1062+
resolved "https://registry.npmmirror.com/@sentry-internal/replay/-/replay-9.47.1.tgz#6b62c0b055917279448caf7a79c273562e93d940"
1063+
integrity sha512-O9ZEfySpstGtX1f73m3NbdbS2utwPikaFt6sgp74RG4ZX4LlXe99VAjKR464xKECpYsLmj2bYpiK4opURF0pBA==
10641064
dependencies:
1065-
"@sentry-internal/browser-utils" "9.5.0"
1066-
"@sentry/core" "9.5.0"
1065+
"@sentry-internal/browser-utils" "9.47.1"
1066+
"@sentry/core" "9.47.1"
10671067

10681068
10691069
version "2.21.1"
10701070
resolved "https://registry.npmmirror.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.21.1.tgz#1fbf7ceca62fdc44957e37b60312808588c87350"
10711071
integrity sha512-u1L8gZ4He0WdyiIsohYkA/YOY1b6Oa5yIMRtfZZ9U5TiWYLgOfMWyb88X0GotZeghSbgxrse/yI4WeHnhAUQDQ==
10721072

1073-
"@sentry/browser@9.5.0":
1074-
version "9.5.0"
1075-
resolved "https://registry.npmmirror.com/@sentry/browser/-/browser-9.5.0.tgz#0ea3e00013bb1b133a1a37f4c79b1648f238befc"
1076-
integrity sha512-HYSPW8GjknuYykJgOialKFyWg7ldmrbD1AKTIhksqdsNXLER07YeVWFAbe+xSYa1ZwwC8/s6vQJP9ZOoH1BaVg==
1073+
"@sentry/browser@9.47.1":
1074+
version "9.47.1"
1075+
resolved "https://registry.npmmirror.com/@sentry/browser/-/browser-9.47.1.tgz#38da62d2d3b4f25aec066a7e7fdc337d75230b85"
1076+
integrity sha512-at5JOLziw5QpVYytxTDU6xijdV6lDQ/Rxp/qXJaHXud3gIK4suv2cXW+tupJfwoUoHFCnDNfccjCmPmP0yRqiA==
10771077
dependencies:
1078-
"@sentry-internal/browser-utils" "9.5.0"
1079-
"@sentry-internal/feedback" "9.5.0"
1080-
"@sentry-internal/replay" "9.5.0"
1081-
"@sentry-internal/replay-canvas" "9.5.0"
1082-
"@sentry/core" "9.5.0"
1078+
"@sentry-internal/browser-utils" "9.47.1"
1079+
"@sentry-internal/feedback" "9.47.1"
1080+
"@sentry-internal/replay" "9.47.1"
1081+
"@sentry-internal/replay-canvas" "9.47.1"
1082+
"@sentry/core" "9.47.1"
10831083

10841084
10851085
version "2.21.1"
@@ -1149,10 +1149,10 @@
11491149
"@sentry/cli-win32-i686" "2.33.0"
11501150
"@sentry/cli-win32-x64" "2.33.0"
11511151

1152-
"@sentry/core@9.5.0":
1153-
version "9.5.0"
1154-
resolved "https://registry.npmmirror.com/@sentry/core/-/core-9.5.0.tgz#09fc38e3bf0b107c721d21351b8702ca2f012922"
1155-
integrity sha512-NMqyFdyg26ECAfnibAPKT8vvAt4zXp4R7dYtQnwJKhEJEVkgAshcNYeJ2D95ZLMVOqlqhTtTPnw1vqf+v9ePZg==
1152+
"@sentry/core@9.47.1":
1153+
version "9.47.1"
1154+
resolved "https://registry.npmmirror.com/@sentry/core/-/core-9.47.1.tgz#6b95b8a03ade1ca04f8b9b457bc751eb8be0c06a"
1155+
integrity sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==
11561156

11571157
"@sentry/vite-plugin@^2.21.1":
11581158
version "2.21.1"
@@ -1163,12 +1163,12 @@
11631163
unplugin "1.0.1"
11641164

11651165
"@sentry/vue@^9.5.0":
1166-
version "9.5.0"
1167-
resolved "https://registry.npmmirror.com/@sentry/vue/-/vue-9.5.0.tgz#b12bebe8469412d92d838bd6644ae9830d9abcbd"
1168-
integrity sha512-AoGyvK//urE1bh+1nA7vQPaUaaralHBJxYaojc4SbshYbP/HdAW/ml5e42L47kQRwLN/ONcbaZFjA1U6fc7Z5A==
1166+
version "9.47.1"
1167+
resolved "https://registry.npmmirror.com/@sentry/vue/-/vue-9.47.1.tgz#204459b5fad7b95378a6b7e2177fe1b924283d72"
1168+
integrity sha512-ZDBf7tAH9C2b46UMtdJWcGyYRc+XwUpt3gRwe2lgEVyVNE7rXFH38zkgZXr+5N/RQU/TdYmV55mf+IXsrNnosw==
11691169
dependencies:
1170-
"@sentry/browser" "9.5.0"
1171-
"@sentry/core" "9.5.0"
1170+
"@sentry/browser" "9.47.1"
1171+
"@sentry/core" "9.47.1"
11721172

11731173
"@sindresorhus/merge-streams@^4.0.0":
11741174
version "4.0.0"

0 commit comments

Comments
 (0)