Datadog Source Code Integration

이 페이지는 아직 한국어로 제공되지 않으며 번역 작업 중입니다. 번역에 관한 질문이나 의견이 있으시면 언제든지 저희에게 연락해 주십시오.

Overview

Datadog’s source code integration allows you to connect your telemetry with your Git repositories. It allows debugging stack traces, slow profiles, and other issues by accessing the relevant lines of your source code.

Inline code snippet of a Java RuntimeException with a button to view the code in GitHub

Setup

Datadog Agent v7.35.0 or later is required.

If you have APM set up already, navigate to Integrations > Link Source Code and configure the source code integration for your backend services.

Tag your telemetry with Git information

Your telemetry must be tagged with Git information that ties the running application version with a particular repository and commit.

For supported languages, Datadog recommends embedding Git information in the deployed artifacts, which is then extracted by the Datadog Tracing Libraries automatically.

For other languages and configurations, you can configure telemetry tagging yourself.

Embed Git information in your build artifacts

You can embed the repository URL and commit hash in your build artifact. The Datadog Tracing Libraries use this information to automatically add the right tags to your APM service telemetry.

Select one of the following languages that supports embedding git information:

The Go client library version 1.48.0 or later is required.

Containers

If you are using Docker containers, you have three options: using Docker, using the Datadog tracing library, or configuring your application with DD_GIT_* environment variables.

Option 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)
    
Option 2: Datadog Tracing Library

Go의 경우 버전 1.18부터 이진으로 버전 관리 정보를 포함합니다. Datadog 추적 라이브러리에서 이 정보를 사용해 텔레메트리를 최신 커밋 SHA와 리포지토리 URL로 태그합니다.

이 방법을 사용하려면 서비스가 다음 요구 사항을 충족해야 합니다.

  • Go 버전 1.18 이상
  • 서비스가 go 모듈로 구축되고 모듈 경로가 코드의 리포지토리 URL이어야 함
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have three options depending on your serverless application’s setup.

Option 1: Datadog Tooling
Datadog CLI 도구
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
AWS CDK v1에 datadog-cdk-constructs 버전 0.8.5 이상을 사용합니다.
AWS CDK v2의 경우 datadog-cdk-constructs 버전 1.4.0 이상을 사용하세요.
Option 2: Datadog Tracing Library

Go의 경우 버전 1.18부터 이진으로 버전 관리 정보를 포함합니다. Datadog 추적 라이브러리에서 이 정보를 사용해 텔레메트리를 최신 커밋 SHA와 리포지토리 URL로 태그합니다.

이 방법을 사용하려면 서비스가 다음 요구 사항을 충족해야 합니다.

  • Go 버전 1.18 이상
  • 서비스가 go 모듈로 구축되고 모듈 경로가 코드의 리포지토리 URL이어야 함
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, you have two options.

Option 1: Datadog Tracing Library

Go의 경우 버전 1.18부터 이진으로 버전 관리 정보를 포함합니다. Datadog 추적 라이브러리에서 이 정보를 사용해 텔레메트리를 최신 커밋 SHA와 리포지토리 URL로 태그합니다.

이 방법을 사용하려면 서비스가 다음 요구 사항을 충족해야 합니다.

  • Go 버전 1.18 이상
  • 서비스가 go 모듈로 구축되고 모듈 경로가 코드의 리포지토리 URL이어야 함
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The Python client library version 1.12.0 or later is required.

Containers

If you are using Docker containers, you have three options: using Docker, using the Datadog tracing library, or configuring your application with DD_GIT_* environment variables.

Option 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)
    
Option 2: Setuptools or Unified Python Project Settings File

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 패키지 이름으로 설정하세요.
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have three options depending on your serverless application’s setup.

Option 1: Datadog Tooling
Datadog CLI 도구
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
AWS CDK v1에 datadog-cdk-constructs 버전 0.8.5 이상을 사용합니다.
AWS CDK v2의 경우 datadog-cdk-constructs 버전 1.4.0 이상을 사용하세요.
Option 2: Setuptools or Unified Python Project Settings File

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 패키지 이름으로 설정하세요.
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, you have two options.

Option 1: Setuptools or Unified Python Project Settings File

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 패키지 이름으로 설정하세요.
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The .NET client library version 2.24.1 or later is required.

As a first step, ensure that your .pdb files are deployed alongside your .NET assemblies (.dll or .exe) in the same folder. Then, follow the rest of the instructions based on your specific deployment model:

Containers

If you are using Docker containers, you have three options: using Docker, using Microsoft SourceLink, or configuring your application with DD_GIT_* environment variables.

Option 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 패키지 중 하나에 참조를 추가하세요.
    ProviderMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have three options depending on your serverless application’s setup.

Option 1: Datadog Tooling
Datadog CLI 도구
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
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 패키지 중 하나에 참조를 추가하세요.
    ProviderMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
Option 3: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, you have two options: using Microsoft SourceLink or configuring your application with DD_GIT_* environment variables.

Microsoft SourceLink를 사용할 경우 Datadog에서 .NET 어셈블리로부터 git 커밋 SHA와 리포지토리 URL을 추출할 수 있습니다.

  1. IDE의 프로젝트 파일(.csproj)를 열고 git 리포지토리 호스트 장소에 따라 다음 NuGet 패키지 중 하나에 참조를 추가하세요.
    ProviderMicrosoft SourceLink
    GitHubMicrosoft.SourceLink.GitHub
    BitbucketMicrosoft.SourceLink.Bitbucket
    GitLabMicrosoft.SourceLink.GitLab
    Azure DevOpsMicrosoft.SourceLink.AzureRepos.Git
    Azure DevOps ServerMicrosoft.SourceLink.AzureDevOpsServer.Git
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The Node.js client library version 3.21.0 or later is required.

Displaying code links and snippets for TypeScript applications requires your Node application to be run with:
--enable-source-maps.

Containers

If you are using Docker containers, you have two options: using Docker or configuring your application with DD_GIT_* environment variables.

Option 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)
    
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have two options depending on your serverless application’s setup.

Option 1: Datadog Tooling
[Datadog CLI 도구][101]
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
AWS CDK v1에 datadog-cdk-constructs 버전 0.8.5 이상을 사용합니다.
AWS CDK v2의 경우 datadog-cdk-constructs 버전 1.4.0 이상을 사용하세요.
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, configure your application with DD_GIT_* environment variables.

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The Ruby client library version 1.6.0 or later is required.

Containers

If you are using Docker containers, you have two options: using Docker or configuring your application with the DD_TAGS environment variable.

Option 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)
    
Option 2: DD_TAGS Environment Variable

애플리케이션을 환경 변수 DD_TAGS로 구성하세요.

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

<commitSha>를 애플리케이션을 빌드할 때 사용한 커밋 SHA로 변경하세요. 빌드할 때 git rev-parse HEAD를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have two options depending on your serverless application’s setup.

Option 1: Datadog Tooling
[Datadog CLI 도구][101]
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
AWS CDK v1에 datadog-cdk-constructs 버전 0.8.5 이상을 사용합니다.
AWS CDK v2의 경우 datadog-cdk-constructs 버전 1.4.0 이상을 사용하세요.
Option 2: DD_TAGS Environment Variable

애플리케이션을 환경 변수 DD_TAGS로 구성하세요.

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

<commitSha>를 애플리케이션을 빌드할 때 사용한 커밋 SHA로 변경하세요. 빌드할 때 git rev-parse HEAD를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, configure your application with the DD_TAGS environment variable.

애플리케이션을 환경 변수 DD_TAGS로 구성하세요.

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

<commitSha>를 애플리케이션을 빌드할 때 사용한 커밋 SHA로 변경하세요. 빌드할 때 git rev-parse HEAD를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The Java client library version 1.12.0 or later is required.

Containers

If you are using Docker containers, you have two options: using Docker or configuring your application with DD_GIT_* environment variables.

Option 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)
    
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Serverless

If you are using Serverless, you have two options depending on your serverless application’s setup.

Option 1: Datadog Tooling
[Datadog CLI 도구][101]
datadog-ci 클라이언트 버전 2.4.1 이상을 사용합니다. 코드 리포지토리와 같은 디렉터리에서 CLI 도구를 실행해야 합니다.
Datadog 서버리스 플러그인
플러그인 버전 5.18.0 이상을 사용합니다.
Datadog CDK 구문
AWS CDK v1에 datadog-cdk-constructs 버전 0.8.5 이상을 사용합니다.
AWS CDK v2의 경우 datadog-cdk-constructs 버전 1.4.0 이상을 사용하세요.
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, configure your application with DD_GIT_* environment variables.

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

The PHP client library version 1.2.0 or later is required.

Containers

If you are using Docker containers, you have two options: using Docker or configuring your application with DD_GIT_* environment variables.

Option 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)
    
Option 2: DD_GIT_* Environment Variables

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Host

If you are using a host, configure your application with DD_GIT_* environment variables.

애플리케이션을 환경 변수 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

Build inside a Docker container

If your build process is executed in CI within a Docker container, perform the following steps to ensure that the build can access Git information:

  1. Add the following text to your .dockerignore file. This ensures that the build process is able to access a subset of the .git folder, enabling it to determine the git commit hash and repository URL.

    !.git/HEAD
    !.git/config
    !.git/refs
    
  2. Add the following line of code to your Dockerfile. Ensure that it is placed before the actual build is ran.

    COPY .git ./.git
    

Configure telemetry tagging

For unsupported languages, use the git.commit.sha and git.repository_url tags to link data to a specific commit. Ensure that the git.repository_url tag does not contain protocols. For example, if your repository URL is https://github.com/example/repo, the value for the git.repository_url tag should be github.com/example/repo.

Synchronize your repository metadata

To link your telemetry with source code, your repository metadata must be synchronized to Datadog. Datadog doesn’t store the actual content of files in your repository, only the Git commit and tree objects.

Git providers

The source code integration supports the following Git providers:

ProviderContext Links SupportCode Snippets Support
GitHub SaaS (github.com)YesYes
GitHub Enterprise ServerYesYes
GitLab SaaS (gitlab.com)YesYes
GitLab self-managedYesNo
BitbucketYesNo
Azure DevOps ServicesYesNo
Azure DevOps ServerYesNo

Install Datadog’s GitHub integration on the GitHub integration tile to allow Datadog to synchronize your repository metadata automatically. When specifying permissions on the integration tile, select at least Read permissions for Contents.

Setting up the GitHub integration also allows you to see inline code snippets in Error Tracking, Continuous Profiler, Serverless Monitoring, CI Visibility, and Application Security Monitoring.

Repositories from self-managed GitLab instances are not supported out-of-the-box by the source code integration. To enable this feature, contact Support.

To link telemetry with your source code, upload your repository metadata with the datadog-ci git-metadata upload command. datadog-ci v2.10.0 or later is required.

When you run datadog-ci git-metadata upload within a Git repository, Datadog receives the repository URL, the commit SHA of the current branch, and a list of tracked file paths.

Run this command for every commit that you need to be synchronized with Datadog.

If you are using gitlab.com, this also allows you to see inline code snippets in Error Tracking, Continuous Profiler, Serverless Monitoring, CI Visibility, and Application Security Monitoring.

Validation

To ensure the data is being collected, run datadog-ci git-metadata upload in your CI pipeline.

You can expect to see the following output:

Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@my-git-server.com:my-org/my-repository.git.
180 tracked file paths will be reported.
Successfully uploaded tracked files in 1.358 seconds.
Syncing GitDB...
Successfully synced git DB in 3.579 seconds.
 Uploaded in 5.207 seconds.
Repositories on self-hosted instances or private URLs are not supported out-of-the-box by the source code integration. To enable this feature, contact Support.

To link telemetry with your source code, upload your repository metadata with the datadog-ci git-metadata upload command. datadog-ci v2.10.0 or later is required.

When you run datadog-ci git-metadata upload within a Git repository, Datadog receives the repository URL, the commit SHA of the current branch, and a list of tracked file paths.

Run this command for every commit that you need to be synchronized with Datadog.

Validation

To ensure the data is being collected, run datadog-ci git-metadata upload in your CI pipeline.

You can expect to see the following output:

Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@my-git-server.com:my-org/my-repository.git.
180 tracked file paths will be reported.
Successfully uploaded tracked files in 1.358 seconds.
Syncing GitDB...
Successfully synced git DB in 3.579 seconds.
 Uploaded in 5.207 seconds.

Usage

You can see links from stack frames to their source repository in Error Tracking.

  1. Navigate to APM > Error Tracking.
  2. Click on an issue. The Issue Details panel appears on the right.
  3. Under Latest Event, click the View button on the right of a frame or select View file, View Git blame, or View commit to be redirected to your source code management tool.
A view repository button with three options (view file, view blame, and view commit) available on the right side of an error stack trace in Error Tracking, along with inline code snippets in the stack trace

If you’re using the GitHub integration, or if you’re hosting your repositories on the GitLab SaaS instance (gitlab.com), click Connect to preview on stack frames. You can see inline code snippets directly in the stack trace.

You can see a source code preview for profile frames in the Continuous Profiler.

  1. Navigate to APM > Profile Search.
  2. Hover your cursor over a method in the flame graph.
  3. If needed, press Opt or Alt to enable the preview.
Source code preview in the Continuous Profiler

You can also see links from profile frames to their source repository. This is supported for profiles broken down by line, method, or file.

  1. Navigate to APM > Profile Search.
  2. Hover your cursor over a method in the flame graph. A kebab icon with the More actions label appears on the right.
  3. Click More actions > View in repo to open the trace in its source code repository.
Link to GitHub from the Continuous Profiler

You can see links from errors in your Lambda functions’ associated stack traces to their source repository in Serverless Monitoring.

  1. Navigate to Infrastructure > Serverless and click on the AWS tab.
  2. Click on a Lambda function and click the Open Trace button for an invocation with an associated stack trace.
  3. Click View Code to open the error in its source code repository.

If you’re using the GitHub integration, click Connect to preview on error frames. You can see inline code snippets directly in the Lambda function’s stack trace.

You can see links from failed test runs to their source repository in Test Optimization.

  1. Navigate to Software Delivery > Test Optimization > Test Runs and select a failed test run.
  2. Click the View on GitHub button to open the test in its source code repository.
Link to GitHub from the CI Visibility Explorer

For more information, see Enhancing Developer Workflows with Datadog.

You can see links from failed Static Analysis and Software Composition Analysis scans to their source repository in Code Analysis.

  1. Navigate to Software Delivery > Code Analysis and select a repository.
  2. In the Code Vulnerabilities or Code Quality view, click on a code vulnerability or violation. In the Details section, click the View Code button to open the flagged code in its source code repository.
Link to GitHub from the Code Analysis Code Vulnerabilities view

For more information, see the Code Analysis documentation.

You can see links from errors in your security signals’ associated stack traces to their source repository in Application Security Monitoring.

  1. Navigate to Security > Application Security and select a security signal.
  2. Scroll down to the Traces section on the Related Signals tab and click on an associated stack trace.
  3. Click View Code to open the error in its source code repository.

If you’re using the GitHub integration, click Connect to preview on error frames. You can see inline code snippets directly in the security signal’s stack trace.

Link to GitHub from Application Security Monitoring

Further Reading