- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`Use the Datadog Admission Controller to inject APM tracer libraries into Kubernetes workloads using pod-level annotations and labels.
The Datadog Agent uses the Kubernetes Admission Controller to intercept pod creation requests and inject an init container that installs the tracer library before the application starts. This method provides a manual, pod-level alternative to Single Step Instrumentation (SSI), which uses Helm or the Datadog Operator to configure instrumentation across your cluster.
Use this guide if:
By default, Datadog Admission controller only mutates pods with the label admission.datadoghq.com/enabled: "true"
:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
# ...
spec:
template:
metadata:
labels:
admission.datadoghq.com/enabled: "true"
Alternatively, to mutate all pods without requiring the label, do one of the following:
Configure the Cluster Agent with the following setting:
clusterAgent.admissionController.mutateUnlabelled: true
Set the environment variable:
export DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED=true
For more details, see the Datadog Admission Controller documentation.
Use the following pod annotations to specify which language SDK to inject and which version to use:
Language | Pod annotation |
---|---|
Java | admission.datadoghq.com/java-lib.version: "<CONTAINER IMAGE TAG>" |
Node.js | admission.datadoghq.com/js-lib.version: "<CONTAINER IMAGE TAG>" |
Python | admission.datadoghq.com/python-lib.version: "<CONTAINER IMAGE TAG>" |
.NET | admission.datadoghq.com/dotnet-lib.version: "<CONTAINER IMAGE TAG>" |
Ruby | admission.datadoghq.com/ruby-lib.version: "<CONTAINER IMAGE TAG>" |
Replace <CONTAINER IMAGE TAG>
with the appropriate value.
For example:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
# (...)
spec:
template:
metadata:
labels:
admission.datadoghq.com/enabled: "true"
annotations:
admission.datadoghq.com/java-lib.version: "v1.12.0"
spec:
containers:
- # (...)
To view available library versions, see the tracer repositories for each language:
Note: If a container already includes a manually installed tracer, the injected version takes precedence at runtime.
Use Unified Service Tags (USTs) to apply consistent tags across traces, metrics, and logs, making it easier to navigate and correlate your observability data. See the UST documentation to learn how to add USTs to your pods.
After applying your updated pod spec, restart the deployment to trigger injection:
kubectl apply -f my-deployment.yaml
When injection is successful, the pod includes an init container named datadog-lib-init
:
Alternatively, check for datadog-lib-init
on your pod using:
kubectl describe pod <pod-name>
You should also see trace data in the APM UI shortly after startup.