コードを使用してトレーシングライブラリをセットアップし、APM データを収集するように Agent を構成し、Go インテグレーションをアクティブ化した後、オプションで、必要に応じてトレーシングライブラリを構成してください。

Datadog では、DD_ENVDD_SERVICEDD_VERSION を使用して、サービスの envserviceversion を設定することを推奨します。

これらの環境変数の構成方法に関する推奨事項は、統合サービスタグ付けのドキュメントをお読みください。これらの変数は、Go トレーサーのバージョン 1.24.0 以降で利用可能です。

トレーサーの API を通じて、envserviceversion を指定することもできます。

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.36c44da202020.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_portDD_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-namemysql: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_ENABLEDtrue でないと、部分的なフラッシュは行われません。 バージョン 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:valuelayer:api team:intake key:value などです。

Agent

DD_AGENT_HOST
デフォルト: localhost
トレース送信のためのデフォルトのトレース Agent ホストアドレスをオーバーライドします。
DD_DOGSTATSD_PORT
デフォルト: 8125
DogStatsD メトリクス送信のためのデフォルトのトレース Agent ポートをオーバーライドします。Agent の構成dogstatsd_portDD_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 スタートオプションを使用して構成できます。

参考資料