コードを使用してトレーシングライブラリをセットアップし、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_TRACE_ENABLED
- デフォルト: true
 Web フレームワークとライブラリインスツルメンテーションを有効にします。false の場合、アプリケーションコードはトレースを生成しません。
- DD_TRACE_AGENT_PORT
- デフォルト: 8126
 Datadog トレース送信のためのデフォルトのトレース Agent ポートをオーバーライドします。Agent の構成でreceiver_portやDD_APM_RECEIVER_PORTをデフォルトの8126以外に設定した場合、ライブラリ構成のDD_DOGSTATSD_PORTはそれに合わせなければなりません。
- DD_TRACE_SAMPLE_RATE
- Default: nil
 Enable ingestion rate control.
- DD_TRACE_RATE_LIMIT
- 1 秒あたり、Go プロセスごとにサンプリングするスパンの最大数。DD_TRACE_SAMPLE_RATE が設定されている場合、デフォルトは 100 です。それ以外の場合は、Datadog Agent にレート制限を委ねます。
- DD_TRACE_STARTUP_LOGS
- デフォルト: true
 スタートアップコンフィグレーションと診断ログを有効にします。
- DD_TRACE_DEBUG
- デフォルト: false
 トレーサーでデバッグロギングを有効化します。
- DD_SERVICE_MAPPING
- デフォルト: null
 構成により、サービス名を動的に変更することができます。サービス名はカンマやスペースで区切ることができ、例えばmysql:mysql-service-name,postgres:postgres-service-name、mysql:mysql-service-name postgres:postgres-service-nameのようにすることができます。
- DD_TRACE_PARTIAL_FLUSH_ENABLED
- デフォルト: false
 Datadog Agent への大規模トレースのフラッシュをインクリメント形式で有効化し、Agent に拒否される可能性を低減します。保持期間が長いトレースまたは多数のスパンを持つトレースがある場合にのみ使用してください。有効な値はtrueまたはfalseです。
バージョン 1.54.0 で追加されました。Datadog Agent 7.26.0 以降とのみ互換性を有しています。
- DD_TRACE_PARTIAL_FLUSH_MIN_SPANS
- デフォルト: 1000
 Datadog Agent に部分的にフラッシュできるトレース内のスパン数。DD_TRACE_PARTIAL_FLUSH_ENABLEDがtrueでないと、部分的なフラッシュは行われません。
バージョン 1.54.0 で追加されました。Datadog Agent 7.26.0 以降とのみ互換性を有しています。
- DD_TRACE_CLIENT_IP_ENABLED
- デフォルト: false
 HTTP リクエストスパンの関連 IP ヘッダーからクライアント IP の収集を可能にします。
バージョン 1.47.0 で追加されました
- DD_TRACE_HEADER_TAGS
- Default: null
 List of comma-separated HTTP headers to be used as span tags. Optionally specify a “mapped” field to rename the request header as a tag. Configuration can be set globally with this environment variable, or at the integration level using the options specified in the Go documentation. This feature is compatible with HTTP1 headers.
 Examples:
 - Capture request header my-header:"DD_TRACE_HEADER_TAGS=my-header"
- Capture request headers my-header-1andmy-header-2:"DD_TRACE_HEADER_TAGS=my-header1,my-header-2"
- Capture request header my-headerand rename it tomy-tag:"DD_TRACE_HEADER_TAGS=my-header:my-tag"
 
- DD_TRACE_SAMPLING_RULES
- Default: nil
 A JSON array of objects. Each object must have a"sample_rate". The"name","service","resource", and"tags"fields are optional. The"sample_rate"value must be between0.0and1.0(inclusive). Rules are applied in configured order to determine the trace’s sample rate.Support for sampling by resource and tags is in beta. For more information, see Ingestion Mechanisms.
 Examples:
 
 - サンプルレートを 20% に設定: '[{"sample_rate": 0.2}]'
- ‘a’ で始まるサービスとスパン名 ‘b’ のサービスのサンプルレートを 10% に、それ以外のサービスのサンプルレートを 20% に設定: '[{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]'
- Set the sample rate to 40% for services that have HTTP GETresource name:'[{"resource": "HTTP GET", "sample_rate": 0.4}]'.
- Set the sample rate to 100% for services that have a tiertag with the valuepremium:'[{"tags": {"tier":"premium"}, "sample_rate": 1}]'.
 
- DD_SPAN_SAMPLING_RULES
- Default: nil
 A JSON array of objects. Each object must have a"sample_rate". The"name","service","resource", and"tags"fields are optional. Rules are applied in configured order to determine the span’s sample rate. Thesample_ratevalue must be between 0.0 and 1.0 (inclusive).Support for sampling by resource and tags is in beta. For more information, see Ingestion Mechanisms.
 Example:
 
 - サービス名 my-serviceと演算子名http.requestのスパンサンプリングレートを 50% に設定し、1 秒間に最大 50 トレースします:'[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]'
- Set the sample rate to 100% for services that have a prioritytag with the valuehigh:'[{"tags": {"priority":"high"}, "sample_rate": 1}]'.
 
- DD_TAGS
- デフォルト: []
 すべてのスパンとプロファイルに追加されるデフォルトタグのリスト。タグはカンマやスペースで区切ることができます。例えば、layer:api,team:intake,key:valueやlayer:api team:intake key:valueなどです。
Agent
- DD_AGENT_HOST
- デフォルト: localhost
 トレース送信のためのデフォルトのトレース Agent ホストアドレスをオーバーライドします。
- DD_DOGSTATSD_PORT
- デフォルト: 8125
 DogStatsD メトリクス送信のためのデフォルトのトレース Agent ポートをオーバーライドします。Agent の構成でdogstatsd_portやDD_DOGSTATSD_PORTをデフォルトの8125以外に設定した場合、ライブラリ構成のDD_DOGSTATSD_PORTはそれに合わせなければなりません。
- DD_INSTRUMENTATION_TELEMETRY_ENABLED
- デフォルト: true
 Datadog は、製品の改良のため、システムの環境・診断情報を収集することがあります。false の場合、このテレメトリーデータは収集されません。
ランタイムメトリクス
- DD_RUNTIME_METRICS_ENABLED
- Default: false
 Enable runtime metric collection.
Added in version 1.26.0.
Trace context propagation
- DD_TRACE_PROPAGATION_STYLE
- Default: datadog,tracecontext
 Configures trace header injection and extraction style. See Propagating Go Trace Context for more information.
APM 環境名の構成
APM 環境名は、Agent 内またはトレーサーの WithEnv スタートオプションを使用して構成できます。
参考資料