概要

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

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

ユースケース

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

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

はじめに

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

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

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

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

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

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

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

Java
Python
Node.js

Ruby
.Net
PHP

参考資料