概要
Datadog APM を使用した アプリケーション インスツルメンテーション:
SDK のセットアップ: アプリケーションに Datadog SDK を追加します。
スパンの作成: 監視可能性データを スパンとして収集します。
スパンは、SDK が読み込まれるとすぐに自動生成されます。これは自動インスツルメンテーションとして知られており、ほとんどのユーザーにとって十分な可視性を提供します。より詳細な制御が必要な場合は、オプションでカスタムスパンを追加できます。
注: これらの手順は、Datadog Agent がインストールされ、トレースを受信するように構成されていることを前提としています。
はじめに
Single Step Instrumentation (推奨)
Single Step Instrumentation (SSI) は、単一のコマンドで Datadog SDK を自動的にインストールおよび構成します。自動インスツルメンテーションは、コード変更なしに、サポートされているフレームワークやライブラリからトレースを即座に収集し始めます。
手動セットアップとカスタムスパン
監視可能性のニーズが高まるにつれて、より詳細な制御とカスタマイズを追加できます。
完全な SDK 構成制御: SDK の動作と構成を詳細に制御する必要がある場合は、手動管理の Datadog SDK を使用します。
コード変更なしでカスタムスパンを作成する: Dynamic Instrumentation を使用して、アプリケーションを再デプロイすることなく Datadog UI からカスタムスパンを作成します。
コード内でカスタムスパンを作成する: コードベースのカスタムインスツルメンテーション を追加して、カスタムビジネスロジックをインスツルメントしたり、スパンにアプリケーション固有のメタデータを追加したりできます。
これらのオプションは組み合わせることができます。たとえば、Single Step Instrumentation から始め、特定のスパンに対しコードベースのカスタムインスツルメンテーションを追加したり、手動管理の SDK と Dynamic Instrumentation を組み合わせて、デプロイなしでスパンを追加したりすることができます。
詳細な比較
SDK のセットアップ
Single Step Instrumentation は、ほとんどのユーザーに推奨される開始方法です。SDK 構成に加えて、より詳細な制御が必要な場合は、代わりに手動管理の SDK を使用できます。
| Single Step Instrumentation (推奨) | 手動管理の SDK |
|---|
| 仕組み | Datadog は、実行時に単一のコマンドで、アプリケーションプロセスに SDK を自動的にインストールして読み込みます。 | SDK をアプリケーションコードまたはビルドプロセスに直接インストールして構成します。 |
| コード変更 | 不要 | 必要 |
| セットアップの複雑さ | 低 - 最小限の設定が必要 | 中 - 環境とビルドの設定が必要 |
| 構成管理 | 標準のデフォルトにオプションのオーバーライド | 環境変数とコードによる完全な制御 |
| 使用するタイミング | コードの変更なしでサービス全体に迅速かつ一貫したインスツルメンテーションを行うには、こちらから始めます。 | SDK の動作と構成を詳細に制御する必要がある場合は、こちらに進みます。 |
スパンのカスタマイズ
自動インスツルメンテーションは、サポートされているフレームワークやライブラリに対してスパンを自動的に作成し、追加の作業なしで重要な監視可能性を提供します。カスタムコードパスの可視性が必要な場合や、アプリケーション固有のデータでトレースを強化したい場合は、Dynamic Instrumentation またはコードベースのカスタムインスツルメンテーションを使用してカスタムスパンを追加できます。
| Dynamic Instrumentation | コードベースのカスタムインスツルメンテーション |
|---|
| 仕組み | Datadog UI でインスツルメンテーションルールを設定します。ルールは実行時に適用されます。 | アプリケーションコードに明示的なトレース API 呼び出しを追加します。 |
| コード変更 | 不要 | 必要 |
| デプロイメントの必要性 | 不要 | 必要 (スパンを追加または変更するため) |
| 使用するタイミング | コードの変更や再デプロイなしでカスタムスパンを追加します。 | 複雑なインスツルメンテーションロジックが必要な場合や、スパンをコードに永続的に定義したい場合に、こちらに進みます。 |
APM セットアップチュートリアル
次のチュートリアルでは、自動インスツルメンテーションおよびカスタムインスツルメンテーションの両方を使用して、さまざまなインフラストラクチャーシナリオでサンプルアプリケーションの分散トレーシングを設定する方法を説明します。
参考資料