概要

カスタムインスツルメンテーションを使用すると、アプリケーション内の特定コンポーネントを精密にモニタリングできます。自動インスツルメンテーションでは取得されない自社コードや複雑な関数から可観測性データを取得できるようになります。自動インスツルメンテーションには、Single Step InstrumentationDatadog のトレーシングライブラリが含まれます。

カスタムインスツルメンテーションでは、トレーシングコードをアプリケーションコードに直接埋め込みます。これにより、Datadog に送信するトレースをプログラム的に作成、修正、または削除できるようになります。

ユースケース

カスタムインスツルメンテーションを使用するケースの例は次のとおりです。

  • 独自または複雑なビジネスロジックを含むカスタムコードから可観測性データを収集する。
  • スパンにスパンタグを追加するなど、スパンに深い可視性やコンテキストを付与する。
  • 細かい制御が必要な特定の一連の操作やユーザー操作を正確にモニタリングする。
  • 不要なスパンをトレースから除外する。

はじめに

はじめる前に、Agent をインストールして設定済みであることを確認してください。

カスタムインスツルメンテーションのアプローチに応じたドキュメントを参照し、詳細を確認してください。

Datadog API を使用してカスタムインスツルメンテーションを追加すると、Datadog に送信するトレースをプログラム的に作成、修正、削除できるようになります。これは、自動インスツルメンテーションでは取得されない自社コードのトレース、トレースからの不要なスパンの除外、そしてスパンタグの追加など、スパンに深い可視性やコンテキストを与える際に役立ちます。

Java
Python
Ruby
go
Node.js
PHP
C++
.Net
Android

Datadog のトレーシングライブラリは、OpenTelemetry API を実装してコードをインスツルメントします。これにより、すべてのサービスをベンダーに依存しない形でインスツルメントしつつ、Datadog が提供するネイティブ実装や機能、製品を活用できます。Datadog スタイルのスパンとトレースを生成するように設定し、それらを使用言語向けの Datadog トレーシングライブラリで処理し、Datadog に送信することが可能です。

Java
Python
Ruby
go
Node.js
PHP
.Net
iOS
Android
Rust

OpenTelemetryddtrace のカスタムインスツルメンテーションがうまく機能しない場合、サポートされている各言語は OpenTracing データを Datadog に送信するサポートも備えています。OpenTracing はアーカイブされ、プロジェクトはサポートされていません。

Java
Python
Node.js

Ruby
.Net
PHP
Android

参考資料