Set up GPU Monitoring
이 페이지는 균일 클러스터(모든 노드에 GPU 장치 있음) 또는 혼합 클러스터(일부 노드에만 GPU 장치 있음)에서 Datadog의 GPU 모니터링을 설정하는 방법에 대한 지침을 제공합니다.
📦 Datadog GPU Monitoring Architecture
├── 🧩 GPU Infrastructure
│ ├─ NVIDIA GPU Hardware (A100, H100 등)
│ ├─ NVIDIA Driver + NVML (Low-level GPU metrics)
│ └─ NVIDIA DCGM (Data Center GPU Manager)
🔽
├── 📡 Metrics Export Layer
│ ├─ ① DCGM Exporter (OpenMetrics 형식)
│ │ → GPU 온도, 전력, 메모리, 오류, NVLink 상태 등 수집
│ └─ ② Datadog Agent GPU Integration
│ → eBPF로 커널 레벨 GPU·CPU·메모리·프로세스 수집
│ → NVML / DCGM 지표 직접 수집 지원
🔽
├── ☁️ Datadog Observability Plane
│ ├─ Metrics Pipeline (OpenMetrics → Datadog Metric Intake)
│ ├─ Log & Trace Correlation (GPU 워크로드와 매핑)
│ ├─ APM / AI Dashboard (LLM, Triton, TorchServe 연동)
│ └─ Cost & Utilization Dashboard
🔽
└── 📊 Visualization & Analysis
├─ GPU Fleet Overview Dashboard
├─ Power & Temperature Trends
├─ Per-Host Utilization & Cost Analysis
├─ Workload Correlation (Slurm, Kubernetes 등)
└─ Alerting (온도, 에러, 언더유틸 등)
필수 구성 요소
Datadog의 GPU 모니터링을 사용하려면 환경이 다음 기준을 충족해야 합니다.
- 활성 Datadog 인프라 호스트가 있는Datadog 사용자입니다.
- Kubernetes용 NVIDIA 장치 플러그인이 설치됩니다(직접 또는 NVIDIA GPU Operator 를 통해)
최소 버전 요구 사항
- Datadog 에이전트: 버전 7.70.1
- Datadog Operator: 버전 1.18 또는 Datadog Helm 차트: 버전 3.130.1
- 운영 체제: Linux
- (선택 사항) 고급 eBPF 메트릭의 경우 Linux 커널 버전 5.8
- NVIDIA 드라이버: 버전 450.51
- Kubernetes: PodResources API가 활성화된 1.22
균일한 클러스터에서 GPU 모니터링 설정
균일한 클러스터에서 모든 노드에는 GPU 디바이스가 있습니다.
데이터독 오퍼레이터
- 모니터링하려는 모든 GPU 호스트에 최신 버전의 Datadog 에이전트 가 설치 및 배포 되어 있는지 확인합니다.
- 다음 매개 변수를 사용하여 리소스를 수정합니다.
DatadogAgentgpu.enabled: true
GPU 모니터링을 활성화합니다.gpu.privilegedMode: true
선택 사항. GPU 코어 사용률()과 같은 고급 eBPF 메트릭을 활성화합니다.gpu.core.usagegpu.patchCgroupPermissions: true
GKE에만 해당 됩니다. 에이전트가 GPU 장치에 액세스할 수 있도록 하는 코드 경로를 활성화합니다.system-probegpu.requiredRuntimeClassName:<runtime-name>
선택 사항. GPU 디바이스에 액세스해야 하는 Pod의 컨테이너 런타임을 지정합니다(예:,, ). 기본값은 NVIDIA GPU Operator에서 정의한 기본 런타임이므로 입니다. EKS 및 Oracle Cloud에서는 기본 런타임 클래스가 이미 GPU 디바이스 액세스를 허용하므로 이 값을 빈 문자열로 설정해야 합니다.nvidianvidia-cdinvidia-legacynvidia
예: 고급 eBPF 측정항목을 사용 설정한 GKE에서 실행:datadog-agent.yaml - 변경 사항을 적용하고 Datadog 에이전트를 다시 시작합니다.
헬름
- 모니터링하려는 모든 GPU 호스트에 최신 버전의 Datadog 에이전트 가 설치 및 배포 되어 있는지 확인합니다.
- 다음 매개 변수를 사용하여 구성 파일을 수정합니다.
datadog-values.yamlgpuMonitoring.enabled: true
GPU 모니터링을 활성화합니다.gpuMonitoring.privilegedMode: true
선택 사항. GPU 코어 사용률()과 같은 고급 eBPF 메트릭을 활성화합니다.gpu.core.usagegpuMonitoring.configureCgroupPerms: true
GKE에만 해당 됩니다. 에이전트가 GPU 장치에 액세스할 수 있도록 하는 코드 경로를 활성화합니다.system-probegpuMonitoring.runtimeClassName:<runtime-name>
선택 사항. GPU 디바이스에 액세스해야 하는 Pod의 컨테이너 런타임을 지정합니다(예:,, ). 기본값은 NVIDIA GPU Operator에서 정의한 기본 런타임이므로 입니다. EKS 및 Oracle Cloud에서는 기본 런타임 클래스가 이미 GPU 디바이스 액세스를 허용하므로 이 값을 빈 문자열로 설정해야 합니다.nvidianvidia-cdinvidia-legacynvidia
예: 고급 eBPF 측정항목을 사용 설정한 GKE에서 실행:datadog-values.yaml - Helm 차트를 업그레이드하고 Datadog 에이전트를 다시 시작합니다.
혼합 클러스터에서 GPU 모니터링 설정
혼합 클러스터에서 일부 노드에는 GPU 디바이스가 있지만 다른 노드에는 없습니다.
오퍼레이터
Datadog Operator를 사용하여 혼합 클러스터에서 GPU 모니터링을 설정하려면 Operator의 에이전트 프로필 기능을 사용하여 GPU가 있는 노드에서만 GPU 모니터링을 선택적으로 활성화합니다.
- 모니터링하려는 모든 GPU 호스트에 최신 버전의 Datadog 에이전트 가 설치 및 배포 되어 있는지 확인합니다.
- 다음 변경 사항으로 리소스를 수정합니다.
DatadogAgentspec: features: oomKill: # Only enable this feature if there is nothing else that requires the system-probe container in all Agent pods # Examples of system-probe features are npm, cws, usm enabled: true override: nodeAgent: volumes: - name: nvidia-devices hostPath: path: /dev/null - name: pod-resources hostPath: path: /var/lib/kubelet/pod-resources containers: agent: env: - name: NVIDIA_VISIBLE_DEVICES value: "all" volumeMounts: - name: nvidia-devices mountPath: /dev/nvidia-visible-devices - name: pod-resources mountPath: /var/lib/kubelet/pod-resources system-probe: env: - name: NVIDIA_VISIBLE_DEVICES value: "all" volumeMounts: - name: nvidia-devices mountPath: /dev/nvidia-visible-devices - name: pod-resources mountPath: /var/lib/kubelet/pod-resources - 리소스에 변경 내용을 적용합니다. 이러한 변경 사항은 GPU 노드에서 실행되는지 여부에 관계없이 모든 Datadog 에이전트에 안전하게 적용할 수 있습니다.
DatadogAgent - GPU 노드를 타겟팅하고 이러한 타깃팅된 노드에서 GPU 모니터링을 활성화하는 Datadog 에이전트 프로필 을 생성합니다.
다음 예에서 선택기는 레이블이nvidia.com/gpu.present=true레이블이 있는 노드를 대상으로 하는데, 이는 이 레이블이 일반적으로 NVIDIA GPU Operator가 있는 노드에 존재하기 때문입니다. 원하는 경우 다른 레이블을 사용할 수 있습니다.profileNodeAffinityapiVersion: datadoghq.com/v1alpha1 kind: DatadogAgentProfile metadata: name: gpu-nodes spec: profileAffinity: profileNodeAffinity: - key: nvidia.com/gpu.present operator: In values: - "true" config: override: nodeAgent: runtimeClassName: nvidia # Only if not in AWS EKS or Oracle Cloud containers: # Change system-probe environment variables only for advanced # eBPF metrics, or if running in GKE system-probe: env: - name: DD_GPU_MONITORING_ENABLED value: "true" # cgroup permission patching only for GKE - name: DD_GPU_MONITORING_CONFIGURE_CGROUP_PERMS value: "true" agent: env: - name: DD_GPU_ENABLED value: "true" # Only for advanced eBPF metrics - name: DD_GPU_MONITORING_ENABLED value: "true" - 이 새로운 Datadog 에이전트 프로필을 적용한 후 Datadog Operator는 새 데몬셋 을 생성합니다.
datadog-agent-with-profile-<namespace>-gpu-nodes
헬름
Helm을 사용하여 혼합 클러스터에서 GPU 모니터링을 설정하려면 GPU 노드에 대한 배포와 비 GPU 노드에 대한 배포의 두 가지 Helm 배포를 생성합니다.
- 모니터링하려는 모든 GPU 호스트에 최신 버전의 Datadog 에이전트 가 설치 및 배포 되어 있는지 확인합니다.
- GPU가 아닌 노드를 대상으로 구성 파일을 수정합니다.
datadog-values.yaml
다음 예제에서는 이 레이블이 NVIDIA GPU Operator가 있는 노드에 일반적으로 존재하기 때문에 레이블이 없는 노드를 대상으로 합니다. 원하는 경우 다른 레이블을 사용하여 GPU 노드를 제외할 수 있습니다.nvidia.com/gpu.present=true - 새 값 파일. 이 파일을 구성하여 다음을 수행합니다.
datadog-gpu-values.yaml- GPU 노드만 대상 지정
- 기존 Datadog 클러스터 에이전트 가입
- 다음 매개변수를 사용하여 GPU 모니터링을 활성화합니다.
gpuMonitoring.enabled: true
GPU 모니터링을 활성화합니다.gpuMonitoring.privilegedMode: true
선택 사항. GPU 코어 사용률()과 같은 고급 eBPF 메트릭을 활성화합니다.gpu.core.usagegpuMonitoring.configureCgroupPerms: true
GKE에만 해당 됩니다. 에이전트가 GPU 장치에 액세스할 수 있도록 하는 코드 경로를 활성화합니다.system-probegpuMonitoring.runtimeClassName:<runtime-name>
선택 사항. GPU 디바이스에 액세스해야 하는 Pod의 컨테이너 런타임을 지정합니다(예:,, ). 기본값은 NVIDIA GPU Operator에서 정의한 기본 런타임이므로 입니다. EKS 및 Oracle Cloud에서는 기본 런타임 클래스가 이미 GPU 디바이스 액세스를 허용하므로 이 값을 빈 문자열로 설정해야 합니다.nvidianvidia-cdinvidia-legacynvidia
본보기:datadog-gpu-values.yaml
- 수정된.
datadog-values.yaml - GPU별 재정의를 사용하여 Helm 차트를 다시 배포합니다.
추가 유용한 문서, 링크 및 문서: