コードを使用してトレーシングライブラリをセットアップし、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-1
and my-header-2
: "DD_TRACE_HEADER_TAGS=my-header1,my-header-2"
- Capture request header
my-header
and rename it to my-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 between 0.0
and 1.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 GET
resource name: '[{"resource": "HTTP GET", "sample_rate": 0.4}]'
. - Set the sample rate to 100% for services that have a
tier
tag with the value premium
: '[{"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. The sample_rate
value 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
priority
tag with the value high
: '[{"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 スタートオプションを使用して構成できます。
参考資料