- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Test optimization for Go is in Preview.
Supported test frameworks:
testing
packageTo report test results to Datadog, you need to configure the Datadog Go library:
GitHub Actions나 CircleCI와 같이 기본 작업자 노드에 액세스하지 않고 클라우드 CI 공급자를 사용할 경우, 라이브러리를 구성해 에이전트리스 모드로 사용하세요. 이 모드를 이용하려면 다음 환경 변수를 설정하세요.
DD_CIVISIBILITY_AGENTLESS_ENABLED=true
(필수)false
DD_API_KEY
(필수)(empty)
추가로 데이터를 보낼 Datadog 사이트를 구성하세요.
DD_SITE
(필수)datadoghq.com
Jenkins 또는 자체 관리형 GitLab CI와 같은 온프레미스 CI 공급자에서 테스트를 실행하는 경우, 에이전트 설치 지침에 따라 각 작업자 노드에 Datadog 에이전트를 설치합니다. 자동으로 테스트 결과를 로그와 기본 호트스 메트릭과 연결할 수 있기 때문에 이 옵션을 추천합니다.
쿠버네티스 실행기를 사용하는 경우 Datadog에서는 Datadog 연산자를 사용할 것을 권고합니다. 연산자에는 Datadog 허용 제어기가 포함되어 있어 빌드 파드에 자동으로 추적기 라이브러리를 삽입합니다. 참고: Datadog 연산자를 사용할 경우 허용 제어기가 작업을 해주기 때문에 추적기 라이브러리를 다운로드 받고 삽입할 필요가 없습니다. 따라서 아래 해당 단계를 건너뛰어도 됩니다. 그러나 테스트 가시화 기능을 사용할 때 필요한 파드의 환경 변수나 명령줄 파라미터는 설정해야 합니다.
쿠버네티스를 사용하지 않거나 Datadog 허용 제어기를 사용할 수 없고 CI 공급자가 컨테이너 기반 실행기를 사용하는 경우, 추적기를 실행하는 빌드 컨테이너에서 환경 변수 DD_TRACE_AGENT_URL
(기본값 http://localhost:8126
)를 해당 컨테이너 내에서 액세스할 수 있는 엔드포인트로 설정합니다. 참고: 빌드 내에서 localhost
를 사용하면 기본 작업자 노드나 에이전트를 실행하는 컨테이너를 참조하지 않고 컨테이너 자체를 참조합니다.
DD_TRACE_AGENT_URL
은 프로토콜과 포트(예: http://localhost:8126
)를 포함하고 DD_AGENT_HOST
과 DD_TRACE_AGENT_PORT
보다 우선하며, CI Visibility를 위해 Datadog 에이전트의 URL을 설정하는 데 권장되는 설정 파라미터입니다.
Datdog 에이전트에 연결하는 데 아직 문제가 있다면 에이전트리스 모드를 사용해 보세요. 참고: 이 방법을 사용할 경우 테스트가 로그 및 인프라스트럭처 메트릭과 상관 관계를 수립하지 않습니다.
Orchestrion is a tool to process Go source code at compilation time and automatically insert instrumentation using dd-trace-go
.
Install orchestrion
from https://github.com/datadog/orchestrion using the command:
$ go install github.com/DataDog/orchestrion@latest
You can automatically add
orchestrion
to your project’s dependencies by running:$ orchestrion pin
This command has the following effects:
- Create a new
orchestrion.tool.go
file containing content similar to:// Code generated by `orchestrion pin`; DO NOT EDIT. // This file is generated by `orchestrion pin`, and is used to include a blank import of the // orchestrion package(s) so that `go mod tidy` does not remove the requirements rom go.mod. // This file should be checked into source control. //go:build tools package tools import _ "github.com/DataDog/orchestrion"
- Run
go get github.com/DataDog/orchstrion@<current-release>
to make sure the project version corresponds to the one currently being used- Run
go mod tidy
to make sure yourgo.mod
andgo.sum
files are up-to-dateIf you do not run this command, it is done automatically when required. Once done, the version of
orchestrion
used by this project can be controlled directly using thego.mod
file, as you would control any other dependency.
Orchestrion supports the two latest releases of Go, matching Go’s official release policy. It may function correctly with older Go releases, but Datadog cannot support older releases that do not work.
In addition to this, Orchestrion only supports projects using Go modules.
Set the following environment variables to configure the library:
DD_CIVISIBILITY_ENABLED=true
(Required)DD_ENV
(Required)local
when running tests on a developer workstation or ci
when running them on a CI provider).Prefix your go test command with orchestrion
:
$ orchestrion go test -race ./...
If you have not run orchestrion pin
, you may see a message similar to the following appear, as orchestrion pin
is automatically executed:
╭──────────────────────────────────────────────────────────────────────────────╮
│ │
│ Warning: github.com/DataDog/orchestrion is not present in your go.mod │
│ file. │
│ In order to ensure build reliability and reproductibility, orchestrion │
│ will now add itself in your go.mod file by: │
│ │
│ 1. creating a new file named orchestrion.tool.go │
│ 2. running go get github.com/DataDog/orchestrion@v0.9.4 │
│ 3. running go mod tidy │
│ │
│ You should commit the resulting changes into your source control system. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
Orchestrion at the core is a standard Go toolchain -toolexec
proxy. Instead of using orchestrion go
, you can
also manually provide the -toolexec
argument to go
commands that accept it:
$ go build -toolexec 'orchestrion toolexec' .
$ go test -toolexec 'orchestrion toolexec' -race .