- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Next.js는 Vercel에서 만든 JavaScript 프레임워크로, React.js 웹 페이지와 Node.js API를 만드는 데 사용됩니다. Next.js를 RUM과 통합하여 프런트엔드 및 백엔드 애플리케이션에서 성능 및 사용자 행동에 대한 인사이트를 제공하는 브라우저 관련 메트릭을 모니터링할 수 있습니다.
Datadog RUM 브라우저 모니터링을 설정하려면 다음 단계를 수행합니다.
clientToken
및 applicationId
는 애플리케이션에 대해 자동으로 생성됩니다.계측 유형을 선택한 다음 Datadog RUM UI에서 코드 스니펫을 복사하여 계측 유형에 따라 알맞은 파일에 붙여넣습니다.
NPM을 사용하는 경우 루트 layout.tsx
나 커스텀 _app.tsx
파일에 붙여넣기 전에 Datadog RUM UI에서 코드 스니펫을 약간 변경해야 합니다(Datadog은 둘 다 지원):
layout.tsx
파일에 붙여넣습니다. use client
지시어는 서버 측 렌더링을 방지하므로 CDN 버전을 사용하는 것을 권장합니다._app.tsx
파일에 붙여넣습니다.참고: 텔레메트리 데이터를 수집하려면 RUM SDK를 클라이언트에서 실행해야 하므로 NPM 패키지를 통해 초기화되는 파일은 클라이언트 컴포넌트여야 합니다.
layout.tsx or _app.tsx
"use client";
import Link from "next/link";
import { datadogRum } from "@datadog/browser-rum";
import { useEffect } from "react";
datadogRum.init({
applicationId: "<YOUR_APPLICATION_ID>",
clientToken: "<CLIENT_TOKEN>",
site: "datadoghq.com",
service: "next-app-router-rum-npm",
env: "<ENV_NAME>",
// Datadog에서 배포된 애플리케이션 버전을 식별할 버전 번호 지정
// version: '1.0.0',
sessionSampleRate: 100,
sessionReplaySampleRate: 100,
trackUserInteractions: true,
trackResources: true,
trackLongTasks: true,
});
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
useEffect(() => {}, []);
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}
CDN 비동기를 사용할 때는 루트 layout.tsx
나 커스텀 _app.tsx
파일에 붙여넣기 전에 Datadog RUM UI에서 코드 스니펫을 약간 변경해야 합니다(Datadog은 둘 다 지원):
layout.tsx
파일에 붙여넣습니다._app.tsx
파일에 붙여넣습니다.참고: Next.js 스크립트에는 가져오기 및 내보내기 행이 포함되어 있으며, Script id
사이에 중괄호와 백틱이 포함되어 있습니다. 여기서 Script
의 모든 인스턴스는 대문자입니다.
layout.tsx or _app.tsx
import Script from "next/script";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<Script id="datadog-rum">
{`
(function(h,o,u,n,d) {
h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
d=o.createElement(u);d.async=1;d.src=n
n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
})(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js','DD_RUM')
window.DD_RUM.onReady(function() {
window.DD_RUM.init({
clientToken: '<CLIENT_TOKEN>',
applicationId: '<YOUR_APPLICATION_ID>',
site: 'datadoghq.com',
service: 'next-app-router-rum',
env: '<ENV_NAME>',
// Datadog에서 배포된 애플리케이션의 버전을 식별할 수 있는 버전 번호를 지정하세요.
sessionSampleRate: 100,
sessionReplaySampleRate: 100,
trackUserInteractions: true,
trackResources: true,
trackLongTasks: true,
});
})
`}
</Script>
<body>{children}</body>
</html>
);
}
CDN 동기화를 사용할 때는 루트 layout.tsx
나 커스텀 _app.tsx
파일에 붙여넣기 전에 Datadog RUM UI에서 코드 스니펫을 약간 변경해야 합니다(Datadog는 둘 다 지원):
layout.tsx
파일에 붙여넣습니다._app.tsx
파일에 붙여넣습니다.참고: Next.js 스크립트에는 가져오기 및 내보내기 행이 포함되며, Script id
사이에 중괄호와 백틱이 포함되어 있습니다. 여기서 Script
의 모든 인스턴스는 대문자입니다.
layout.tsx or _app.tsx
import Script from "next/script";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>
<Script
id="dd-rum-sync"
src="https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js"
type="text/javascript"
strategy="beforeInteractive"
/>
<Script id="datadog-rum">
{`
window.DD_RUM && window.DD_RUM.init({
clientToken: '<CLIENT_TOKEN>',
applicationId: '<YOUR_APPLICATION_ID>',
site: 'datadoghq.com',
service: 'rum-cdn-async',
env: '<ENV_NAME>',
// 데이터독에서 배포된 애플리케이션의 버전을 식별할 수 있는 버전 번호를 지정하세요.
// 버전: '1.0.0',
sessionSampleRate: 100,
sessionReplaySampleRate: 100,
trackUserInteractions: true,
trackResources: true,
trackLongTasks: true,
});
`}
</Script>
{children}
</body>
</html>
);
}
인앱 단계에 따라 설치를 확인합니다.
애플리케이션에 변경사항을 배포합니다. 배포가 실시간으로 완료되면 Datadog은 사용자 브라우저에서 이벤트를 수집합니다.
Next.js 애플리케이션의 백엔드 모니터링을 시작하려면:
추가 유용한 문서, 링크 및 기사: