Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

互換性要件

Go トレーサーには、Go 1.12+ および Datadog Agent >= 5.21.1 が必要です。サポートするライブラリの一覧については、互換性要件ページをご覧ください。

インストールと利用開始

API の使用に関する構成手順と詳細については、Datadog API ドキュメントを参照してください。手動インスツルメンテーションについては、自動インスツルメンテーションをサポートする Go ライブラリおよびフレームワークについて、以下のインテグレーションセクションを使用してください。

APM で使用される用語の説明については、「APM を開始する」セクションを参照してください。寄稿の詳細については、公式リポジトリ README.md を確認してください。

古いバージョンのトレーサー(例: v<0.6.x)から最新バージョンに移行する必要がある場合は、移行ドキュメントを参照してください。

インストール

アプリ内のドキュメントに従ってください (推奨)

Datadog アプリ内のクイックスタート手順に従って、最高のエクスペリエンスを実現します。例:

  • デプロイコンフィギュレーション (ホスト、Docker、Kubernetes、または Amazon ECS) を範囲とする段階的な手順。
  • serviceenvversion タグを動的に設定します。
  • セットアップ中に Continuous Profiler、App Analytics、およびトレース ID 挿入を有効にします。

あるいは Datadog Agent をインストール、構成します。Docker アプリケーションのトレースまたは Kubernetes アプリケーションのトレースに関する追加ドキュメントを確認します。

次に、正規のインポートパスから Go トレーサーをインストールします。

go get gopkg.in/DataDog/dd-trace-go.v1/...

これで、トレーサーをインポートして、コードのインスツルメンテーションを開始する準備ができました。

自動でデータと収集

Datadog には、一連のライブラリとフレームワークをインスツルメントするためにすぐに使用できるサポートを提供する一連の接続可能パッケージがあります。このパッケージのリストは、互換性要件ページにあります。このインテグレーションをトレースするには、アプリケーションにパッケージをインポートし、各インテグレーションと併せて掲載されているコンフィギュレーション手順に従ってください。

コンフィギュレーション

Go トレーサーは、コンフィギュレーション用の追加の環境変数と関数をサポートしています。 コンフィギュレーションドキュメントで利用可能なすべてのオプションを参照してください。

サービスに envserviceversion を設定するには、DD_ENVDD_SERVICEDD_VERSION を使用することを強くおすすめします。 このような環境変数の推奨構成方法については、統合サービスタグ付けのドキュメントをご参照ください。変数は、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()
}

Agent ホスト名の変更

Go Tracing Module が自動的に検索し環境変数の DD_AGENT_HOSTDD_AGENT_APM_PORT で初期化します。

ただし、コードでカスタムホスト名およびポートを設定することもできます。

package main

import (
    "net"

    "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)

func main() {
    addr := net.JoinHostPort(
        "custom-hostname",
        "1234",
    )
    tracer.Start(tracer.WithAgentAddr(addr))
    defer tracer.Stop()
}

APM 環境名の構成

APM 環境名は、Agent 内またはトレーサーの WithEnv スタートオプションを使用して構成できます。

B3 ヘッダーの抽出と挿入

Datadog APM トレーサーは、分散型トレーシングの [B3 ヘッダーの抽出][74]と挿入をサポートしています。

分散したヘッダーの挿入と抽出は、挿入/抽出スタイルを構成することで制御されます。DatadogB3 の 2 つのスタイルがサポートされています。

以下の環境変数を使用して挿入スタイルを構成します DD_PROPAGATION_STYLE_INJECT=Datadog,B3

以下の環境変数を使用して抽出スタイルを構成します DD_PROPAGATION_STYLE_EXTRACT=Datadog,B3

これらの環境変数の値は、挿入または抽出が有効になっているヘッダースタイルのコンマ区切りリストです。デフォルトでは、Datadog 抽出スタイルのみが有効になっています。

複数の抽出スタイルが有効な場合、それらのスタイルが指定されている順序で抽出が試行されます。最初に正常に抽出された値が使用されます。

その他の参考資料

お役に立つドキュメント、リンクや記事: