To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.
To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.
概要
Datadog RUM React インテグレーションにより、次の方法で React コンポーネント内のパフォーマンス問題を迅速に解決できます:
- サーバーの応答時間の遅延、レンダー ブロッキング リソース、コンポーネント内部のエラーなど、パフォーマンス ボトルネックの根本原因をデバッグします
- Web パフォーマンス データを、ユーザー ジャーニー、HTTP コール、ログと自動的に相関付けます
- 重要な Web パフォーマンス メトリクス (たとえば Core Web Vitals) がユーザー体験を損なうしきい値を下回ったときに、エンジニアリング チームへアラートを送信します
次の方法で React アプリケーションをエンド ツー エンドで監視します:
- スタック全体にわたるユーザー ジャーニーを追跡して可視化します
- 読み込み時間の遅さの根本原因をデバッグします。原因は React コード、ネットワーク パフォーマンス、または基盤インフラストラクチャーにある可能性があります
- ユーザー ID、メール、名前などの属性で、すべてのユーザー セッションを分析して文脈化します
- フロント エンド と バック エンド の開発チーム向けに、フル スタック監視を 1 つのプラットフォームに統合します
セットアップ
まず、React アプリケーションに Datadog RUM をセットアップします。Datadog App で新しい RUM アプリケーションを作成する場合は、アプリケーション タイプとして React を選択します。すでに既存の RUM アプリケーションがある場合は、そのタイプを React に更新できます。構成後、Datadog App が、RUM-React プラグイン を Browser SDK と統合する手順を提供します。
エラー トラッキング
React コンポーネントのレンダリング エラーを追跡するには、次のいずれかを使用します:
- エラーを捕捉して Datadog に報告する
ErrorBoundary コンポーネント (React ドキュメント を参照)。 - 独自の
ErrorBoundary コンポーネントからエラーを報告するために使用できる関数。
ErrorBoundary の使用
import { ErrorBoundary } from '@datadog/browser-rum-react'
function App() {
return (
<ErrorBoundary fallback={ErrorFallback}>
<MyComponent />
</ErrorBoundary>
)
}
function ErrorFallback({ resetError, error }) {
return (
<p>
Oops, something went wrong! <strong>{String(error)}</strong> <button onClick={resetError}>Retry</button>
</p>
)
}
独自の ErrorBoundary から React エラーを報告する
import { addReactError } from '@datadog/browser-rum-react'
class MyErrorBoundary extends React.Component {
componentDidCatch(error, errorInfo) {
addReactError(error, errorInfo)
}
render() {
...
}
}
React Router インテグレーション
react-router v6 では、次の方法でルートを宣言できます:
Datadog RUM Browser SDK でルート変更を追跡するには、まず router: true オプションで reactPlugin を初期化し、その後、これらの関数を @datadog/browser-rum-react/react-router-v6 から提供される同等の関数に置き換えます。例:
import { RouterProvider } from 'react-router-dom'
import { datadogRum } from '@datadog/browser-rum'
import { reactPlugin } from '@datadog/browser-rum-react'
// react-router-dom の代わりに、@datadog/browser-rum-react/react-router-v6 の "createBrowserRouter" を使用します:
import { createBrowserRouter } from '@datadog/browser-rum-react/react-router-v6'
datadogRum.init({
...
plugins: [reactPlugin({ router: true })],
})
const router = createBrowserRouter([
{
path: '/',
element: <Root />,
...
},
])
ReactDOM.createRoot(document.getElementById('root')).render(<RouterProvider router={router} />)
Datadog React インテグレーションのさらなる活用
トレース
RUM とトレース データを接続して、アプリケーションのパフォーマンスを包括的に可視化します。RUM と Traces を接続 を参照してください。
ログ
React アプリケーションのログを Datadog に転送するには、JavaScript ログ 収集 を参照してください。
メトリクス
RUM アプリケーションからカスタム メトリクスを生成するには、メトリクス 生成 を参照してください。
トラブル シューティング
お困りの際は、Datadog サポート へご連絡ください。
参考資料
お役に立つドキュメント、リンクや記事: