Supported OS Android Linux Windows iOS Mac OS

概要

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 サポート へご連絡ください。

参考資料

お役に立つドキュメント、リンクや記事: