성능 모니터링을 통해 Sentry는 소프트웨어 성능을 추적하고, 처리량 및 지연 시간과 같은 지표를 측정하며, 여러 시스템 간의 오류 영향을 시각화할 수 있습니다.
설치
트래킹 패키지 설치:
ESM
# yarn 사용 시
yarn add @sentry/tracing
# npm 사용 시
npm install @sentry/tracing
CDN
<script
<!--
`bundle.tracing.min.js`에는 `@sentry/browser`과 `@sentry/tracing`이 모두 포함되어 있으므로,
`@sentry/browser`의 번들 대신 사용해야 합니다.
-->
src="https://browser.sentry-cdn.com/5.29.2/bundle.tracing.min.js"
integrity="sha384-4zxA5Bnxor/VkZae20EqPP3A/6vDlw1ZhqF7EvpmeTfWYFjPIDdaUSOk/q7G/bYw"
crossorigin="anonymous"
></script>
설정
애플리케이션에서 성능 모니터링을 활성화하는 두 가지 방법:
- SDK 설정의
tracesSampleRate옵션을 사용하여 모든 트랜잭션에 대한 통일된 샘플링 비율을 0과 1 사이의 숫자로 설정합니다. (예: 트랜잭션의 20%를 전송하려면tracesSampleRate를 0.2로 설정합니다.) tracesSampler설정 옵션에 함수를 제공하여 트랜잭션 자체와 캡처된 컨텍스트에 기반하여 동적으로 샘플링 비율을 제어합니다.
ESM
// `@sentry/react` 또는 `@sentry/angular`과 같은 통합 패키지를 사용하는 경우,
// 여기서 `@sentry/browser` 대신 해당 패키지 이름을 사용합니다
import * as Sentry from "@sentry/browser";
// 자동 계측 활용 시 (강력히 권장)
import { Integrations as TracingIntegrations } from "@sentry/tracing";
// 또는, 수동으로만 트래킹하는 경우
// import * as _ from "@sentry/tracing"
// 참고: 트래킹을 작동시키려면 반드시 패키지를 가져와야 합니다
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
// 자동 계측을 활성화합니다 (강력히 권장되지만, 순수 수동 사용에는 필요하지 않음)
integrations: [new TracingIntegrations.BrowserTracing()],
// 균일한 샘플링 비율 설정
tracesSampleRate: 0.2,
// 또는, 동적으로 샘플링 제어
tracesSampler: samplingContext => { ... }
});
CDN
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
// 자동 계측을 활성화합니다 (강력히 권장되지만, 순수 수동 사용에는 필요하지 않음)
integrations: [new Sentry.Integrations.BrowserTracing()],
// 균일한 샘플링 비율 설정
tracesSampleRate: 0.2,
// 또는, 동적으로 샘플링 제어
tracesSampler: samplingContext => { ... }
});
이 옵션 중 하나를 설정하면 애플리케이션에서 추적이 활성화됩니다. 이 옵션들은 배타적이지만, 둘 다 설정하면 tracesSampler가 우선적으로 적용됩니다. 샘플링 트랜잭션에 대한 자세한 내용은 Sampling Transactions 문서에서 확인할 수 있습니다.
검증
트래킹을 처음 활성화할 때, tracesSampleRate를 1.0으로 설정하여 정상적으로 작동하는지 확인하세요. 이렇게 하면 모든 트랜잭션이 Sentry로 전송됩니다.
테스트가 완료되면, tracesSampleRate 값을 낮추거나 tracesSampler를 사용하여 동적으로 샘플링하고 필터링하도록 전환하여 프로덕션 환경에서 이 값을 낮추는 것이 좋습니다.
샘플링 없이 자동 감지는 사용자가 페이지를 로드하거나 애플리케이션 내에서 이동할 때마다 트랜잭션을 전송합니다. 이는 많은 트랜잭션을 의미합니다! 샘플링은 시스템이나 Sentry 트랜잭션 할당량을 사용하지 않고 대표적인 데이터를 구현할 수 있습니다.
한국어 문서는 다음 주소에서 점차적으로 업데이트됩니다: