概要

Datadog のソースコードインテグレーションを使って、テレメトリーを Git リポジトリと連携させ、関連するソースコード行にアクセスしてスタックトレースやスロープロファイルなどの問題をデバッグできます。

Java RuntimeException のインラインコードスニペットと GitHub でコードを見るためのボタン

セットアップ

Datadog Agent v7.35.0 以降が必要です。

APM をすでに設定している場合は、Integrations > Link Source Code に移動し、バックエンドサービスのソースコードインテグレーションを構成してください。

テレメトリーに Git 情報をタグ付け

テレメトリーには、実行中のアプリケーションのバージョンを特定のリポジトリやコミットと結びつける Git 情報をタグ付けする必要があります。

サポートされている言語については、Datadog はデプロイされたアーティファクトに Git 情報を埋め込むことを推奨しています。この情報は Datadog トレーシングライブラリによって自動的に抽出されます。

その他の言語や構成については、自身でテレメトリータギングを構成することができます。

ビルドアーティファクトに Git 情報を埋め込む

リポジトリの URL とコミットハッシュをビルドアーティファクトに埋め込むことができます。Datadog トレーシングライブラリはこの情報を使用して、APM サービスのテレメトリーに適切なタグを自動的に追加します。

git 情報の埋め込みに対応している言語を、次の中から 1 つ選択します。

Go クライアントライブラリのバージョン 1.48.0 以降が必要です。

コンテナ

Docker コンテナを使用している場合、Docker を使用する、Datadog トレーシングライブラリを使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 3 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: Datadog トレーシングライブラリ

Go はバージョン 1.18 から、バイナリ内にバージョン管理情報を埋め込むようになりました。Datadog トレーシング ライブラリはこの情報を使って、テレメトリーに最新のコミット SHA とリポジトリ URL をタグ付けします。

このアプローチを使用するには、サービスが以下の要件を満たしていることを確認してください。

  • Go のバージョンは 1.18 以降である。
  • サービスは go モジュールとして構築されており、モジュールパスはコードのリポジトリ URL である。
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 3 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。
オプション 2: Datadog トレーシングライブラリ

Go はバージョン 1.18 から、バイナリ内にバージョン管理情報を埋め込むようになりました。Datadog トレーシング ライブラリはこの情報を使って、テレメトリーに最新のコミット SHA とリポジトリ URL をタグ付けします。

このアプローチを使用するには、サービスが以下の要件を満たしていることを確認してください。

  • Go のバージョンは 1.18 以降である。
  • サービスは go モジュールとして構築されており、モジュールパスはコードのリポジトリ URL である。
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、2 つのオプションがあります。

オプション 1: Datadog トレーシングライブラリ

Go はバージョン 1.18 から、バイナリ内にバージョン管理情報を埋め込むようになりました。Datadog トレーシング ライブラリはこの情報を使って、テレメトリーに最新のコミット SHA とリポジトリ URL をタグ付けします。

このアプローチを使用するには、サービスが以下の要件を満たしていることを確認してください。

  • Go のバージョンは 1.18 以降である。
  • サービスは go モジュールとして構築されており、モジュールパスはコードのリポジトリ URL である。
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

Python クライアントライブラリのバージョン 1.12.0 以降が必要です。

コンテナ

Docker コンテナを使用している場合、Docker を使用する、Datadog トレーシングライブラリを使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 3 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: Setuptools または Unified Python プロジェクト設定ファイル

アプリケーションが setuptools でパッケージ化されている場合

  1. dd-trace パッケージをインストールします。
  2. 最初のインポートとして setup.py ファイルに import ddtrace.sourcecode.setuptools_auto を追加します。
  3. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。

アプリケーションが統一された Python プロジェクト設定ファイルを使用している場合

  1. hatch-datadog-build-metadata プラグインをインストールして、git メタデータを埋め込むように構成します。プロジェクトにすでに URL がある場合は、それを動的なものとして再構成し、別の構成セクションに移動します。詳しくは、プラグインソースコードを参照してください。
  2. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 3 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。
オプション 2: Setuptools または Unified Python プロジェクト設定ファイル

アプリケーションが setuptools でパッケージ化されている場合

  1. dd-trace パッケージをインストールします。
  2. 最初のインポートとして setup.py ファイルに import ddtrace.sourcecode.setuptools_auto を追加します。
  3. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。

アプリケーションが統一された Python プロジェクト設定ファイルを使用している場合

  1. hatch-datadog-build-metadata プラグインをインストールして、git メタデータを埋め込むように構成します。プロジェクトにすでに URL がある場合は、それを動的なものとして再構成し、別の構成セクションに移動します。詳しくは、プラグインソースコードを参照してください。
  2. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、2 つのオプションがあります。

オプション 1: Setuptools または Unified Python プロジェクト設定ファイル

アプリケーションが setuptools でパッケージ化されている場合

  1. dd-trace パッケージをインストールします。
  2. 最初のインポートとして setup.py ファイルに import ddtrace.sourcecode.setuptools_auto を追加します。
  3. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。

アプリケーションが統一された Python プロジェクト設定ファイルを使用している場合

  1. hatch-datadog-build-metadata プラグインをインストールして、git メタデータを埋め込むように構成します。プロジェクトにすでに URL がある場合は、それを動的なものとして再構成し、別の構成セクションに移動します。詳しくは、プラグインソースコードを参照してください。
  2. 環境変数 DD_MAIN_PACKAGE にプライマリ Python パッケージの名前を設定します。
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

.NET クライアントライブラリのバージョン 2.24.1 以降が必要です。

コンテナ

Docker コンテナを使用しえいる場合、Docker を使用する、Microsoft SourceLink を使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 3 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    

Microsoft SourceLink を使用している場合、Datadog は .NET アセンブリから git のコミット SHA およびリポジトリの URL を抽出できます。

  1. IDE でプロジェクトのファイル (.csproj) を開き、git リポジトリがホストされている場所に応じて、以下の NuGet パッケージの 1 つへの参照を追加します。
    プロバイダーMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 3 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。

Microsoft SourceLink を使用している場合、Datadog は .NET アセンブリから git のコミット SHA およびリポジトリの URL を抽出できます。

  1. IDE でプロジェクトのファイル (.csproj) を開き、git リポジトリがホストされている場所に応じて、以下の NuGet パッケージの 1 つへの参照を追加します。
    プロバイダーMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
オプション 3: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、Microsoft SourceLink を使用するか、DD_GIT_* 環境変数でアプリケーションを構成するかの 2 つのオプションがあります。

Microsoft SourceLink を使用している場合、Datadog は .NET アセンブリから git のコミット SHA およびリポジトリの URL を抽出できます。

  1. IDE でプロジェクトのファイル (.csproj) を開き、git リポジトリがホストされている場所に応じて、以下の NuGet パッケージの 1 つへの参照を追加します。
    プロバイダーMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

NodeJS クライアントライブラリのバージョン 3.21.0 以降が必要です。

コンテナ

Docker コンテナを使用している場合、Docker を使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 2 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 2 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、DD_GIT_* 環境変数でアプリケーションを構成します。

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

Ruby クライアントライブラリのバージョン 1.6.0 以降が必要です。

コンテナ

Docker コンテナを使用している場合、Docker を使用する、または DD_TAGS 環境変数でアプリケーションを構成するの 2 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_TAGS="git.repository_url:${DD_GIT_REPOSITORY_URL},git.commit.sha:${DD_GIT_COMMIT_SHA}"
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: DD_TAGS 環境変数

DD_TAGS 環境変数を使ってアプリケーションを構成します。

export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミットの SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 2 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。
オプション 2: DD_TAGS 環境変数

DD_TAGS 環境変数を使ってアプリケーションを構成します。

export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミットの SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、DD_TAGS 環境変数でアプリケーションを構成します。

DD_TAGS 環境変数を使ってアプリケーションを構成します。

export DD_TAGS="git.commit.sha:<commitSha>,git.repository_url:<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミットの SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

Java クライアントライブラリのバージョン 1.12.0 以降が必要です。

Docker コンテナを使用している場合、Docker を使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 2 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

サーバーレス

サーバーレスを使用している場合、サーバーレスアプリケーションのセットアップに応じて 2 つのオプションがあります。

オプション 1: Datadog ツール
Datadog CLI ツール
datadog-ci クライアントのバージョン 2.4.1 以降を使用してください。CLI ツールはコードリポジトリと同じディレクトリで実行する必要があります。
Datadog Serverless Plugin
プラグインのバージョンは 5.18.0 以降を使用してください。
Datadog CDK Construct
AWS CDK v1 では datadog-cdk-constructs のバージョン 0.8.5 以降を使用してください。
AWS CDK v2 では datadog-cdk-constructs のバージョン 1.4.0 以降を使用してください。
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、DD_GIT_* 環境変数でアプリケーションを構成します。

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

PHP クライアントライブラリのバージョン 1.12.0 以降が必要です。

Docker コンテナを使用している場合、Docker を使用する、または DD_GIT_* 環境変数でアプリケーションを構成するの 2 つのオプションがあります。

オプション 1: Docker
  1. アプリケーションの Dockerfile に以下の行を追加します。

    ARG DD_GIT_REPOSITORY_URL
    ARG DD_GIT_COMMIT_SHA
    ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL} 
    ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
    
  2. Docker ビルドコマンドに以下の引数を追加します。

    docker build . \
     -t my-application \
     --build-arg DD_GIT_REPOSITORY_URL=<git-provider.example/me/my-repo> \
     --build-arg DD_GIT_COMMIT_SHA=$(git rev-parse HEAD)
    
オプション 2: DD_GIT_* 環境変数

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

ホスト

ホストを使用している場合、DD_GIT_* 環境変数でアプリケーションを構成します。

DD_GIT_* 環境変数を使ってアプリケーションを構成します。

export DD_GIT_COMMIT_SHA="<commitSha>"
export DD_GIT_REPOSITORY_URL="<git-provider.example/me/my-repo>"

<commitSha> を、アプリケーションのビルドに使用したコミット SHA に置き換えます。これはビルド時に git rev-parse HEAD を実行することで取得することができます。これをランタイム環境変数に渡す必要があります。

Docker コンテナ内でのビルド

ビルドプロセスが Docker コンテナ内の CI で実行される場合は、ビルドが Git 情報にアクセスできるように以下の手順を実行します。

  1. 次のテキストを .dockerignore ファイルに追加します。これにより、ビルドプロセスが .git フォルダのサブセットにアクセスできるようになり、git のコミットハッシュとリポジトリの URL を特定できるようになります。

    !.git/HEAD
    !.git/config
    !.git/refs
    
  2. 以下のコードを Dockerfile に追加してください。実際のビルドが実行される前に配置されていることを確認してください。

    COPY .git ./.git
    

テレメトリータギングの構成

サポートされていない言語の場合、git.commit.sha タグと git.repository_url タグを使用してデータを特定のコミットにリンクします。git.repository_url タグにプロトコルが含まれないことを確認してください。例えば、リポジトリの URL が https://github.com/example/repo の場合、git.repository_url タグの値は github.com/example/repo となります。

リポジトリのメタデータを同期

テレメトリーとソースコードをリンクさせるには、リポジトリのメタデータを Datadog と同期させる必要があります。Datadog はリポジトリ内のファイルの実際の内容は保存せず、Git のコミットオブジェクトとツリーオブジェクトのみを保存します。

Git プロバイダー

ソースコードインテグレーションは、以下の Git プロバイダーをサポートしています。

プロバイダーContext Links SupportCode Snippets Support
GitHub SaaS (github.com)はいはい
GitHub Enterprise Serverはいはい
GitLab SaaS (gitlab.com)はいはい
GitLab self-managedはいいいえ
Bitbucketはいいいえ
Azure DevOps サービスはいいいえ
Azure DevOps Serverはいいいえ

Datadog の GitHub インテグレーションGitHub インテグレーションタイルにインストールして、リポジトリのメタデータを Datadog が自動的に同期できるようにします。インテグレーションタイルで権限を指定する場合、少なくとも ContentsRead 権限を選択してください。

GitHub インテグレーションを設定することで、Error TrackingContinuous ProfilerServerless MonitoringCI VisibilityApplication Security Monitoring でインラインコードスニペットを確認することもできます。

セルフマネージド GitLab インスタンスからのリポジトリは、ソースコードインテグレーションではすぐに使えません。この機能を有効にするには、サポートにお問い合わせください

テレメトリーをソースコードとリンクさせるには、リポジトリのメタデータを datadog-ci git-metadata upload コマンドでアップロードします。

Git リポジトリ内で datadog-ci git-metadata upload を実行すると、Datadog はリポジトリの URL、現在のブランチのコミット SHA、そして追跡したファイルのパスのリストを受け取ります。

このコマンドは、Datadog と同期する必要があるコミットごとに実行します。

gitlab.com を使用している場合、これにより Error TrackingContinuous ProfilerServerless MonitoringCI Visibility、および Application Security Monitoring でインラインコードスニペットを確認することができます。

検証

データが収集されていることを確認するために、CI パイプラインで datadog-ci git-metadata upload を実行します。

以下のような出力が期待できます。

Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@my-git-server.com:my-org/my-repository.git.
180 tracked file paths will be reported.
✅  Handled in 0.077 seconds.
セルフホストインスタンスまたはプライベート URL 上のリポジトリは、ソースコードインテグレーションではすぐに使えません。この機能を有効にするには、サポートにお問い合わせください

テレメトリーをソースコードとリンクさせるには、リポジトリのメタデータを datadog-ci git-metadata upload コマンドでアップロードします。

Git リポジトリ内で datadog-ci git-metadata upload を実行すると、Datadog はリポジトリの URL、現在のブランチのコミット SHA、そして追跡したファイルのパスのリストを受け取ります。

このコマンドは、Datadog と同期する必要があるコミットごとに実行します。

検証

データが収集されていることを確認するために、CI パイプラインで datadog-ci git-metadata upload を実行します。

以下のような出力が期待できます。

Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@my-git-server.com:my-org/my-repository.git.
180 tracked file paths will be reported.
✅  Handled in 0.077 seconds.

使用方法

Git プロバイダーへのリンク

エラー追跡でスタックフレームからソースリポジトリへのリンクを見ることができます。

  1. APM > Error Tracking の順に移動します。
  2. 課題をクリックします。右側に Issue Details パネルが表示されます。
  3. Latest Event の下で、フレームの右側にある View ボタンをクリックするか、View fileView Git blameView commit を選択すると、ソースコード管理ツールにリダイレクトされます。
Error Tracking のエラースタックトレースの右側に表示される、3 つのオプション (ファイルの表示、注釈の表示、コミットの表示) を備えたリポジトリの表示ボタンと、スタックトレース内のインラインコードスニペット

GitHub インテグレーションを使用している場合、または GitLab SaaS インスタンス (gitlab.com) でリポジトリをホストしている場合は、スタックフレームの Connect to preview をクリックします。スタックトレースでインラインコードスニペットを直接見ることができます。

Continuous Profiler では、プロファイルフレームのソースコードプレビューを見ることができます。

  1. APM > Profile Search の順に移動します。
  2. フレームグラフのメソッドにカーソルを合わせます。
  3. 必要であれば、Opt または Alt を押してプレビューを有効にします。
Continuous Profiler のソースコードプレビュー

プロファイルフレームからソースリポジトリへのリンクも表示できます。これは、行、メソッド、ファイルごとに分割されたプロファイルでサポートされています。

  1. APM > Profile Search の順に移動します。
  2. フレームグラフのメソッドにカーソルを合わせます。右側に More actions というラベルのついたケバブアイコンが表示されます。
  3. More actions* > View in repo をクリックし、トレースをソースコードリポジトリで開きます。
Continuous Profiler から GitHub へのリンク

Lambda 関数の関連するスタックトレースのエラーからソースリポジトリへのリンクを Serverless Monitoring で確認できます。

  1. Infrastructure > Serverless に移動し、AWS タブをクリックします。
  2. Lambda 関数をクリックし、関連するスタックトレースを持つ呼び出しの Open Trace ボタンをクリックします。
  3. View Code をクリックして、ソースコードリポジトリでエラーを開きます。

GitHub インテグレーションを使用している場合、エラーフレームで Connect to preview をクリックします。Lambda 関数のスタックトレースでインラインコードスニペットを直接見ることができます。

失敗したテスト実行からソースリポジトリへのリンクは、Test Visibility で確認できます。

  1. Software Delivery > Test Visibility > Test Runs に移動し、失敗したテスト実行を選択します。
  2. View on GitHub ボタンをクリックして、テストをソースコードリポジトリで開きます。
CI Visibility Explorer から GitHub へのリンク

詳細は Datadog で開発者のワークフローを強化するを参照してください。

失敗した Static Analysis と Software Composition Analysis のスキャンからソースリポジトリへのリンクは、Code Analysis で確認できます。

  1. Software Delivery > Code Analysis に移動し、リポジトリを選択します。
  2. Code Vulnerabilities または Code Quality ビューで、コードの脆弱性または違反をクリックします。Details セクションで、View Code ボタンをクリックして、フラグが付けられたコードをソースコードリポジトリで開きます。
Code Analysis Code Vulnerabilities ビューから GitHub へのリンク

詳細については、Code Analysis のドキュメントを参照してください。

セキュリティシグナルの関連するスタックトレースのエラーからソースリポジトリへのリンクは、Application Security Monitoring で確認できます。

  1. Security > Application Security に移動し、セキュリティシグナルを選択します。
  2. Related Signals タブの Traces セクションまでスクロールダウンし、関連するスタックトレースをクリックします。
  3. View Code をクリックして、ソースコードリポジトリでエラーを開きます。

GitHub インテグレーションを使用している場合、エラーフレームで Connect to preview をクリックします。インラインコードスニペットをセキュリティシグナルのスタックトレースで直接見ることができます。

Application Security Monitoring から GitHub へのリンク

その他の参考資料