feat: add GlitchTip error monitoring integration
This commit is contained in:
@@ -1,7 +1,13 @@
|
|||||||
|
import { withSentryConfig } from "@sentry/nextjs";
|
||||||
|
|
||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const config = {
|
const config = {
|
||||||
transpilePackages: ["@agentlens/database"],
|
transpilePackages: ["@agentlens/database"],
|
||||||
output: "standalone",
|
output: "standalone",
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default withSentryConfig(config, {
|
||||||
|
silent: !process.env.CI,
|
||||||
|
disableServerWebpackPlugin: true,
|
||||||
|
disableClientWebpackPlugin: true,
|
||||||
|
});
|
||||||
|
|||||||
@@ -28,7 +28,8 @@
|
|||||||
"shiki": "^3.22.0",
|
"shiki": "^3.22.0",
|
||||||
"stripe": "^20.3.1",
|
"stripe": "^20.3.1",
|
||||||
"tailwind-merge": "^3.4.0",
|
"tailwind-merge": "^3.4.0",
|
||||||
"zod": "^4.3.6"
|
"zod": "^4.3.6",
|
||||||
|
"@sentry/nextjs": "^8.28.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/postcss": "^4.0.0",
|
"@tailwindcss/postcss": "^4.0.0",
|
||||||
|
|||||||
7
apps/web/sentry.client.config.ts
Normal file
7
apps/web/sentry.client.config.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import * as Sentry from "@sentry/nextjs";
|
||||||
|
|
||||||
|
Sentry.init({
|
||||||
|
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||||
|
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||||
|
debug: false,
|
||||||
|
});
|
||||||
7
apps/web/sentry.edge.config.ts
Normal file
7
apps/web/sentry.edge.config.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import * as Sentry from "@sentry/nextjs";
|
||||||
|
|
||||||
|
Sentry.init({
|
||||||
|
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||||
|
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||||
|
debug: false,
|
||||||
|
});
|
||||||
7
apps/web/sentry.server.config.ts
Normal file
7
apps/web/sentry.server.config.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import * as Sentry from "@sentry/nextjs";
|
||||||
|
|
||||||
|
Sentry.init({
|
||||||
|
dsn: process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||||
|
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||||
|
debug: false,
|
||||||
|
});
|
||||||
13
apps/web/src/instrumentation.ts
Normal file
13
apps/web/src/instrumentation.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import * as Sentry from "@sentry/nextjs";
|
||||||
|
|
||||||
|
export async function register() {
|
||||||
|
if (process.env.NEXT_RUNTIME === "nodejs") {
|
||||||
|
await import("../sentry.server.config");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.NEXT_RUNTIME === "edge") {
|
||||||
|
await import("../sentry.edge.config");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const onRequestError = Sentry.captureRequestError;
|
||||||
@@ -16,6 +16,8 @@ services:
|
|||||||
- STRIPE_STARTER_PRICE_ID=${STRIPE_STARTER_PRICE_ID:-price_1SzJUlR8i0An4Wz7gZeYgzBY}
|
- STRIPE_STARTER_PRICE_ID=${STRIPE_STARTER_PRICE_ID:-price_1SzJUlR8i0An4Wz7gZeYgzBY}
|
||||||
- STRIPE_PRO_PRICE_ID=${STRIPE_PRO_PRICE_ID:-price_1SzJVWR8i0An4Wz755hBrxzn}
|
- STRIPE_PRO_PRICE_ID=${STRIPE_PRO_PRICE_ID:-price_1SzJVWR8i0An4Wz755hBrxzn}
|
||||||
- EMAIL_PASSWORD=${EMAIL_PASSWORD:-}
|
- EMAIL_PASSWORD=${EMAIL_PASSWORD:-}
|
||||||
|
- NEXT_PUBLIC_SENTRY_DSN=https://c2b8bc3cc46246b9a629fd70c0dbf8dd@glitchtip.vectry.tech/1
|
||||||
|
- SENTRY_DSN=https://c2b8bc3cc46246b9a629fd70c0dbf8dd@glitchtip.vectry.tech/1
|
||||||
depends_on:
|
depends_on:
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|||||||
Reference in New Issue
Block a user