コードを使用してトレーシングライブラリをセットアップし、APM データを収集するように Agent を構成し、Go インテグレーションをアクティブ化した後、オプションで、必要に応じてトレーシングライブラリを構成してください。
Datadog では、DD_ENV
、DD_SERVICE
、DD_VERSION
を使用して、サービスの env
、service
、version
を設定することを推奨します。
これらの環境変数の構成方法に関する推奨事項は、統合サービスタグ付けのドキュメントをお読みください。これらの変数は、Go トレーサーのバージョン 1.24.0 以降で利用可能です。
トレーサーの API を通じて、env
、service
、version
を指定することもできます。
package main
import (
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
func main() {
tracer.Start(
tracer.WithEnv("prod"),
tracer.WithService("test-go"),
tracer.WithServiceVersion("abc123"),
)
// トレーサーが停止すると、終了する前にトレーサー内のすべてのデータが Datadog Agent にフラッシュされます。
// この行は主要な関数内に残すようにしてください。
defer tracer.Stop()
}
Go トレーサーは、コンフィギュレーション用の追加の環境変数と関数をサポートしています。
コンフィギュレーションドキュメントで利用可能なすべてのオプションを参照してください。
DD_VERSION
- アプリケーションのバージョン (例:
1.2.3
、6c44da20
、 2020.02.13
) を設定します。 DD_SERVICE
- このアプリケーションで使用されるサービス名。
DD_ENV
- アプリケーションの環境を設定します。例: prod、pre-prod、staging
DD_AGENT_HOST
- デフォルト:
localhost
トレース送信のためのデフォルトのトレース Agent ホストアドレスをオーバーライドします。 DD_TRACE_AGENT_PORT
- デフォルト:
8126
Datadog トレース送信のためのデフォルトのトレース Agent ポートをオーバーライドします。Agent の構成で receiver_port
や DD_APM_RECEIVER_PORT
をデフォルトの 8126
以外に設定した場合、ライブラリ構成の DD_DOGSTATSD_PORT
はそれに合わせなければなりません。 DD_DOGSTATSD_PORT
- デフォルト:
8125
DogStatsD メトリクス送信のためのデフォルトのトレース Agent ポートをオーバーライドします。Agent の構成で dogstatsd_port
や DD_DOGSTATSD_PORT
をデフォルトの 8125
以外に設定した場合、ライブラリ構成の DD_DOGSTATSD_PORT
はそれに合わせなければなりません。 DD_TRACE_SAMPLING_RULES
- デフォルト:
nil
オブジェクトの JSON 配列。各オブジェクトは "sample_rate"
を持たなければなりません。"name"
と "service"
フィールドは省略可能です。"sample_rate"
の値は 0.0
と 1.0
の間でなければなりません (この値を含む)。ルールは、トレースのサンプルレートを決定するために設定された順序で適用されます。
詳しくは、取り込みメカニズムを参照してください。
例:
- サンプルレートを 20% に設定:
'[{"sample_rate": 0.2}]'
- ‘a’ で始まるサービスとスパン名 ‘b’ のサービスのサンプルレートを 10% に、それ以外のサービスのサンプルレートを 20% に設定:
'[{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]'
DD_TRACE_SAMPLE_RATE
- インジェストレートコントロールを有効にします。
DD_SPAN_SAMPLING_RULES
- デフォルト:
nil
オブジェクトの JSON 配列。ルールは、スパンのサンプルレートを決定するために構成された順序で適用されます。sample_rate
の値は 0.0 から 1.0 の間でなければなりません (この値を含む)。
詳細は、取り込みメカニズムを参照してください。
例:
- サービス名
my-service
と演算子名 http.request
のスパンサンプリングレートを 50% に設定し、1 秒間に最大 50 トレースします: '[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]'
DD_TRACE_RATE_LIMIT
- 1 秒あたり、Go プロセスごとにサンプリングするスパンの最大数。DD_TRACE_SAMPLE_RATE が設定されている場合、デフォルトは 100 です。それ以外の場合は、Datadog Agent にレート制限を委ねます。
DD_TAGS
- デフォルト: []
すべてのスパンとプロファイルに追加されるデフォルトタグのリスト。タグはカンマやスペースで区切ることができます。例えば、 layer:api,team:intake,key:value
や layer:api team:intake key:value
などです。 DD_TRACE_STARTUP_LOGS
- デフォルト:
true
スタートアップコンフィグレーションと診断ログを有効にします。 DD_TRACE_DEBUG
- デフォルト:
false
トレーサーでデバッグロギングを有効化します。 DD_TRACE_ENABLED
- デフォルト:
true
Web フレームワークとライブラリインスツルメンテーションを有効にします。false の場合、アプリケーションコードはトレースを生成しません。 DD_SERVICE_MAPPING
- デフォルト:
null
構成により、サービス名を動的に変更することができます。サービス名はカンマやスペースで区切ることができ、例えば mysql:mysql-service-name,postgres:postgres-service-name
、mysql:mysql-service-name postgres:postgres-service-name
のようにすることができます。 DD_INSTRUMENTATION_TELEMETRY_ENABLED
- デフォルト:
true
Datadog は、製品の改良のため、システムの環境・診断情報を収集することがあります。false の場合、このテレメトリーデータは収集されません。 DD_TRACE_CLIENT_IP_ENABLED
- デフォルト:
false
HTTP リクエストスパンの関連 IP ヘッダーからクライアント IP の収集を可能にします。
バージョン 1.47.0 で追加されました
APM 環境名の構成
APM 環境名は、Agent 内またはトレーサーの WithEnv スタートオプションを使用して構成できます。
参考資料