Datadog 소스 코드 통합

개요

Datadog 소스 코드 통합을 사용하면 Git 리포지토리에 텔레메트리를 연결할 수 있습니다. 또한 소스 코드의 해당 줄에 액세스하여 스택 트레이스, 느린 프로파일과 다른 이슈를 디버깅할 수 있습니다.

GitHub 내 코드를 볼 수 있고 버튼이 있는 Java RuntimeException 인라인 코드 조각

설정

Datadog 에이전트 v7.35.0 이상이 필요합니다.

애플리케이션 성능 모니터링(APM)]6을 이미 설정한 경우 통합 > 소스 코드 연결로 이동하여 백엔드 서비스의 소스 코드 통합을 설정하세요.

Git 정보를 사용해 텔레메트리 태깅하기

텔레메트리에는 실행 중인 애플리케이션 버전과 특정 리포지토리 및 커밋을 연결하는 Git 정보로 태그를 지정해야 합니다.

지원되는 언어의 경우 Datadog에서 배포된 아티팩트에 Git 정보를 임베딩하는 것을 권장합니다. 아티팩트는 Datadog 추적 라이브러리에 의해 자동으로 추출됩니다.

다른 언어 및 설정의 경우 직접 텔레메트리 태깅 설정을 사용하세요.

빌드 아티팩트에 Git 정보 임베딩

빌드 아티팩트에서 리포지토리 URL과 커밋 해시를 임베딩할 수 있습니다. Datadog 추적 라이브러리는 이 정보를 사용하여 애플리케이션 성능 모니터링(APM) 서비스 텔레메트리에 올바른 태그를 자동으로 추가합니다.

다음 언어 중 git 정보 임베딩을 지원하는 언어를 선택합니다.

Go 클라이언트 라이브러리 버전 1.48.0 이상이 필요합니다.

컨테이너

Docker 컨테이너를 사용하는 경우, Docker나 Datadog 추적 라이브러리를 사용하거나, DD_GIT_* 환경 변수를 사용하여 애플리케이션을 설정하는 세 가지 옵션이 있습니다.

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

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 세 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
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 이상을 사용하세요.
옵션 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

호스트

호스트를 사용하는 경우 두 가지 옵션이 있습니다.

옵션 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_* 환경 변수를 사용하여 애플리케이션을 설정하는 세 가지 옵션이 있습니다.

옵션 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: 설정 도구 또는 통합 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 세 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
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 이상을 사용하세요.
옵션 2: 설정 도구 또는 통합 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를 사용해 이 정보를 가져올 수 있으며, 런타임 환경 변수로 전송되어야 합니다.

호스트

호스트를 사용하는 경우 두 가지 옵션이 있습니다.

옵션 1: 설정 도구 또는 통합 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 이상이 필요합니다.

첫 번째 단계로 .pdb 파일이 .NET 어셈블리(.dll 또는 .exe)와 함께 같은 폴더에 배포되었는지 확인합니다. 그런 다음 구체적인 배포 모델에 맞는 지침을 따르세요.

컨테이너

Docker 컨테이너를 사용하는 경우 세 가지 옵션이 있습니다. Docker 또는 Microsoft SourceLink를 사용하거나 DD_GIT_* 환경 변수를 사용하여 애플리케이션을 설정하는 것입니다.

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

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 세 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
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
옵션 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_* 환경 변수를 사용하여 애플리케이션을 구성하는 두 가지 옵션이 있습니다.

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

Node.js 클라이언트 라이브러리 버전 3.21.0 이상이 필요합니다.

TypeScript 애플리케이션에 대한 코드 링크 및 스니펫을 표시하려면 Node 애플리케이션을 실행해야 합니다:
--enable-source-maps.

컨테이너

Docker 컨테이너를 사용하는 경우 두 가지 옵션이 있습니다. Docker를 사용하거나 DD_GIT_* 환경 변수를 사용하여 애플리케이션을 설정하는 것입니다.

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

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 두 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
[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 이상을 사용하세요.
옵션 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 환경 변수를 사용하여 애플리케이션을 설정하는 것입니다.

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

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 두 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
[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 이상을 사용하세요.
옵션 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_* 환경 변수를 통해 애플리케이션을 설정하는 것입니다.

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

서버리스

서버리스를 사용하는 경우 서버리스 애플리케이션의 설정에 따라 두 가지 옵션이 있습니다.

옵션 1: Datadog 도구 구성
[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 이상을 사용하세요.
옵션 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.2.0 이상이 필요합니다.

컨테이너

도커(Docker) 컨테이너를 사용하는 경우 두 가지 옵션이 있습니다. 도커(Docker)를 사용하거나 DD_GIT_* 환경 변수를 통해 애플리케이션을 설정하는 것입니다.

옵션 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.shagit.repository_url 태그를 사용하여 데이터를 특정 커밋에 연결하세요. git.repository_url 태그를 설정할 때 프로토콜이 포함되어 있지 않은지 확인하세요. 예를 들어 리포지토리 URL이 https://github.com/example/repo인 경우 git.repository_url 태그를 설정하는 값은 github.com/example/repo이어야 합니다.

내 리포지토리 메타데이터 동기화

텔레메트리를 소스 코드와 연결하려면 리포지토리 메타데이터를 Datadog에 동기화해야 합니다. Datadog는 리포지토리에 파일의 실제 콘텐츠를 저장하지 않고 Git 커밋과 트리 개체만 저장합니다.

Git 공급자

소스 코드 통합은 다음 Git 공급자를 지원합니다.

공급자컨텍스트 링크 지원코드 스니펫 지원
GitHub SaaS(github.com)YesYes
GitHub Enterprise ServerYesYes
GitLab SaaS(gitlab.com)YesYes
GitLab 자체 관리형YesNo
BitbucketYesNo
Azure DevOps ServicesYesNo
Azure DevOps ServerYesNo

Datadog의 GitHub 통합GitHub에 설치하여 가 리포지토리 메타데이터를 자동으로 동기화하도록 허용합니다. 통합 타일에서 권한을 지정할 때 콘텐츠에 대해 읽기 권한 이상을 선택합니다.

GitHub 통합을 설정하면 오류 추적, 연속 프로파일러, **서버리스 모니터링 **, CI 가시성, 애플리케이션 보안 모니터링에서 인라인 코드 스니펫을 볼 수 있습니다.

자체 관리 GitLab 인스턴스의 리포지토리는 소스 코드 통합에서 바로 지원되지 않습니다. 이 기능을 사용하려면 지원팀에 문의하세요.

텔레메트리를 소스 코드와 연결하려면 datadog-ci git-metadata upload 명령으로 리포지토리 메타데이터를 업로드하세요. datadog-ci v2.10.0 이상이 필요합니다.

Git 리포지토리 내에서 datadog-ci git-metadata upload를 실행하면 Datadog는 리포지토리 URL, 현재 브랜치의 커밋 SHA, 추적된 파일 경로의 목록을 받습니다.

Datadog와 동기화해야 하는 모든 커밋에 대해 이 명령을 실행합니다.

gitlab.com을 사용하면 또한 [오류 추적][103], [연속 프로파일러][104], [**서버리스 모니터링 **][105], [CI 가시성][106], [애플리케이션 보안 모니터링][107]에서 인라인 코드 스니펫을 볼 수 있습니다.

검증

데이터가 수집되고 있는지 확인하려면 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.
Successfully uploaded tracked files in 1.358 seconds.
Syncing GitDB...
Successfully synced git DB in 3.579 seconds.
 Uploaded in 5.207 seconds.
자체 호스팅 인스턴스 또는 비공개 URL의 리포지토리는 소스 코드 통합에서 기본적으로 지원되지 않습니다. 이 기능을 사용 설정하려면 지원팀에 문의하세요.

텔레메트리를 소스 코드와 연결하려면 datadog-ci git-metadata upload 명령으로 리포지토리 메타데이터를 업로드하세요. datadog-ci v2.10.0 이상이 필요합니다.

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.
Successfully uploaded tracked files in 1.358 seconds.
Syncing GitDB...
Successfully synced git DB in 3.579 seconds.
 Uploaded in 5.207 seconds.

사용법

Git 공급자 링크

오류 추적에서 스택 프레임에서 소스 리포지토리에 이르는 링크를 확인할 수 있습니다..

  1. 애플리케이션 성능 모니터링(APM) > 오류 추적으로 이동합니다.
  2. 이슈를 클릭합니다. 오른쪽에 이슈 상세 정보 패널이 나타납니다.
  3. 최신 이벤트에서 프레임 오른쪽에 있는 보기 버튼을 클릭하거나 파일 보기, Git 불만 보기 또는 커밋 보기를 선택하면 소스 코드 관리 도구로 리디렉션됩니다.
오류 추적의 오류 스택 트레이스의 오른쪽에 세 가지 옵션(파일 보기, 불만 보기, 커밋 보기)이 있는 리포지토리 보기 버튼과 스택 트레이스의 인라인 코드 스니펫이 있습니다.

GitHub(통합)를 사용 중이거나 GitLab SaaS 인스턴스(gitlab.com)에서 리포지토리를 호스팅하는 경우 스택 프레임에서 미리 보기 연결을 클릭하세요. 스택 트레이스에서 직접 인라인 코드 스니펫을 볼 수 있습니다.

연속 프로파일러에서 프로파일 프레임의 소스 코드 미리 보기를 확인할 수 있습니다.

  1. 애플리케이션 성능 모니터링(APM) > 프로파일검색으로 이동합니다.
  2. 마우스 커서를 플레임 그래프에 있는 메서드 위에 올립니다.
  3. 필요한 경우 Opt 또는 Alt를 눌러 미리 보기를 활성화합니다.
연속 프로파일러에서 소스 코드 미리 보기

프로파일 프레임에서 해당 소스 리포지토리로 연결되는 링크도 볼 수 있습니다. 이는 줄, 메서드 또는 파일별로 세분화된 프로파일에 대해 지원됩니다.

  1. 애플리케이션 성능 모니터링(APM) > 프로파일검색으로 이동합니다.
  2. 마우스 커서를 플레임 그래프 위에 있는 메서드에 올립니다. 우측에 More actions 레이블이 있는 케밥 아이콘이 나타납니다.
  3. 추가 작업 > 리포지토리에서 보기를 클릭하여 소스 코드 리포지토리에서 트레이스를 엽니다.
연속 프로파일러에서 GitHub 연결

람다 함수 관련 스택 트레이스의 오류에서 **서버리스 모니터링 **의 소스 리포지토리로 연결되는 링크를 확인할 수 있습니다.

  1. 인프라스트럭처 > 서버리스로 이동하여 AWS 탭 을 클릭합니다.
  2. 람다 함수를 클릭하고 트레이스 열기 버튼을 클릭하면 연결된 스택 트레이스와 함께 호출할 수 있습니다.
  3. 코드 보기를 클릭하여 소스 코드 리포지토리에서 오류를 엽니다.

GitHub 통합을 사용하는 경우 오류 프레임에서 미리 보기 연결을 클릭하세요. 람다 함수의 스택 트레이스에서 인라인 코드 스니펫을 바로 확인할 수 있습니다.

테스트 최적화에서 실패한 테스트 실행에서 소스 리포지토리로 연결되는 링크를 확인할 수 있습니다.

  1. 소프트웨어 제공 > 테스트 최적화 > 테스트 실행으로 이동하여 실패한 테스트 실행을 선택합니다.
  2. GitHub에서 보기 버튼을 클릭하여 소스 코드 리포지토리에서 테스트를 엽니다.
CI 가시성 탐색기에서 GitHub로 연결

자세한 내용은 Datadog를 활용한 개발자 워크플로 개선을 참조하세요.

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

  1. Navigate to Software Delivery > Code Security and select a repository.
  2. 코드 취약성 또는 코드 품질 보기에서 코드 취약성 또는 위반 사항을 클릭합니다. 세부 정보 섹션에서 코드 보기 버튼을 클릭하면 소스 코드 리포지토리에서 플래그가 지정된 코드가 열립니다.
Link to GitHub from the Code Security Code Vulnerabilities view

For more information, see the Code Security documentation.

보안 신호와 관련된 스택 트래이스의 오류에서 애플리케이션 보안 모니터링의 소스 리포지토리로 연결되는 링크를 확인할 수 있습니다.

  1. 보안 > 애플리케이션 보안으로 이동하여 보안 신호를 선택합니다.
  2. 관련 신호 탭 에서 트레이스 섹션까지 아래로 스크롤하여 연결된 스택 트레이스를 클릭합니다.
  3. 코드 보기를 클릭하여 소스 코드 리포지토리에서 오류를 엽니다.

GitHub 통합을 사용하는 경우 오류 프레임에서 미리 보기 연결을 클릭하세요. 보안 신호의 스택 트레이스에서 인라인 코드 스니펫을 바로 확인할 수 있습니다.

애플리케이션 보안 모니터링에서 GitHub 연결

You can see full source code files in Dynamic Instrumentation when creating or editing an instrumentation (dynamic log, metric, span, or span tags).

Create new instrumentation

  1. Navigate to APM > Dynamic Instrumentation.
  2. Select Create New Instrumentation and choose a service to instrument.
  3. Search for and select a source code filename or method.

View or edit instrumentation

  1. Navigate to APM > Dynamic Instrumentation.
  2. Select an existing instrumentation from the list, then click View Events.
  3. Select the instrumentation card to view its location in the source code.
Source Code File in Dynamic Instrumentation

For more information, see the Dynamic Instrumentation documentation.

참고 자료