Closed5
Sentry with Next.js deploy ECS
ECSで起動しているNext.jsのエラーをSentryでトラッキングしたい
@Sentry/Next.js
を使うとSourceMapをSentryにアップロードしてトラッキングできる
ただし、本番環境にはSourceMapを含めたくないため、明示的に削除する必要がある
-
next.config.js
のhideSourceMaps
をtrue
に設定- 開発中は
false
にできるとなお良い
- 開発中は
-
next build && find .next -name *.map -delete
でmapファイルを削除
Sentryのdsnをクライアント側とサーバー側の両方から参照できる必要があるため、以下のようにNEXT_PUBLIC_
のプレフィックスとともにDockerfileに渡す
ARG NEXT_PUBLIC_SENTRY_DSN
ENV NEXT_PUBLIC_SENTRY_DSN $NEXT_PUBLIC_SENTRY_DSN
この状態でnext build
すれば値が展開される
一方、サーバー側では環境変数で値を受け取ってあげれば良い
import * as Sentry from "@sentry/nextjs";
Sentry.init({
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
// Replay may only be enabled for the client-side
integrations: [new Sentry.Replay()],
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production
tracesSampleRate: 1.0,
// Capture Replay for 10% of all sessions,
// plus for 100% of sessions with an error
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
// ...
// Note: if you want to override the automatic release value, do not set a
// `release` value here - use the environment variable `SENTRY_RELEASE`, so
// that it will also get attached to your source maps
});
これで両方にdsnを設定できた
このスクラップは2023/08/30にクローズされました