OpenLIT OTel GPU Collector
OpenLIT OTel GPU Collector는 OpenTelemetry OTLP를 통해 DataKit으로 GPU 하드웨어, GPU 프로세스, 호스트 및 Linux/NVIDIA CUDA eBPF 메트릭을 전송합니다.
설정¶
사전 조건¶
- DataKit가 설치되어 있어야 하며, OpenLIT Collector에서 DataKit로의 OTLP 네트워크가 도달 가능해야 합니다.
- NVIDIA GPU 컨테이너를 사용할 때는 호스트에 NVIDIA 드라이버, Docker 및 NVIDIA Container Toolkit이 설치되어 있어야 합니다. AMD는
/dev/kfd와/dev/dri를 매핑해야 하며, Intel은/dev/dri를 매핑해야 합니다. - 프로세스 수준 GPU 귀속을 위해서는 컨테이너가 호스트 PID namespace를 사용해야 합니다. Linux/NVIDIA CUDA eBPF 메트릭에는 BPF/PERFMON 권한과 잠금 가능한 메모리도 필요합니다. 이러한 권한이 없으면 장치 수준
hw.gpu.*메트릭은 계속 동작하지만, 프로세스와 eBPF 뷰는 불완전합니다.
DataKit OpenTelemetry 수신 활성화¶
cd /usr/local/datakit/conf.d
sudo cp samples/opentelemetry.conf.sample opentelemetry.conf
sudo vim opentelemetry.conf
[[inputs.opentelemetry]]
customer_tags_all = true
[inputs.opentelemetry.grpc]
addr = "127.0.0.1:4317"
max_payload = 16777216
Collector와 DataKit가 서로 다른 호스트에 있거나 host network를 사용하지 않을 때는 addr를 0.0.0.0:4317로 변경하고, Collector 엔드포인트를 DataKit의 실제 사설 IP 또는 DNS의 4317 포트로 변경한 뒤, 방화벽이나 보안 그룹으로 출발지을 제한하십시오. 4317을 보호 없이 공용망에 노출하지 마십시오.
DataKit를 다시 시작합니다.
OpenLIT OTel GPU Collector 시작¶
NVIDIA GPU, Collector, DataKit가 같은 호스트에 있는 예시입니다:
docker pull ghcr.io/openlit/otel-gpu-collector:latest
docker run -d \
--name otel-gpu-collector \
--restart unless-stopped \
--network host \
--gpus all \
--pid=host \
--cap-add BPF \
--cap-add PERFMON \
--ulimit memlock=-1:-1 \
-e OTEL_SERVICE_NAME=openlit-otel-gpu-collector \
-e OTEL_RESOURCE_ATTRIBUTES='deployment.environment=production,team=ml,host.name=gpu-host-01' \
-e OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 \
-e OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
-e OTEL_METRIC_EXPORT_INTERVAL=15000 \
-e OTEL_GPU_EBPF_ENABLED=true \
ghcr.io/openlit/otel-gpu-collector:latest
AMD 컨테이너는 --gpus all을 --device /dev/kfd:/dev/kfd --device /dev/dri:/dev/dri로 바꾸고, Intel은 --device /dev/dri:/dev/dri를 사용합니다. AMD/Intel은 CUDA eBPF 경로를 사용하지 않으므로, CUDA 전용 뷰가 비어 있는 것은 기능 한계입니다.
Kubernetes 배포¶
OpenLIT 공식은 각 GPU 노드에서 하나의 Collector를 DaemonSet으로 실행하는 방식을 지원합니다. 이 통합은 버전에 따라 바뀔 수 있는 전체 YAML을 복제하지 않으므로, OpenLIT Kubernetes DaemonSet 공식 구성을 직접 참고하고 OTEL_EXPORTER_OTLP_ENDPOINT를 클러스터 내부에서 접근 가능한 DataKit 또는 OpenTelemetry Collector 서비스로 지정하십시오.
Kubernetes 배포에서는 hostPID: true, GPU 장치 접근, kubelet PodResources 마운트, 그리고 eBPF에 필요한 BPF 권한을 반드시 유지해야 합니다. Node 레이블이나 providerID로 host.type, 클라우드 공급자, 리전을 식별하려면 공식 예시처럼 ServiceAccount에 nodes/get 권한도 부여해야 합니다. EKS, GKE, AKS 또는 자체 구축 클러스터의 인증 설정 차이는 공식 문서를 따르십시오.
검증¶
- Guance의 「지표」에서
otel_service를 조회하고,hw.gpu.up,hw.gpu.utilization,hw.gpu.memory.usage등이 지속적으로 전송되는지 확인합니다. - 프로세스 또는 CUDA eBPF 차트에 데이터가 없으면, host PID, GPU 장치 매핑, BPF/PERFMON 권한, memlock, 작업 부하가
libcudart를 로드했는지 여부, 그리고 호스트 보안 정책이 eBPF uprobe를 차단하는지 순서대로 확인합니다.
메트릭¶
OpenLIT 메트릭은 OTLP를 통해 otel_service에 기록됩니다. 아래 표는 OpenLIT OTel GPU Collector 공식 Metrics Reference의 GPU 하드웨어, 호스트 시스템, Collector 프로세스, GPU 작업 부하 프로세스 및 CUDA eBPF 메트릭을 포함합니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
otel_service.gpu.core.limit |
Gauge;NVML이 보고한 GPU CUDA 코어 총수입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
{cores} |
otel_service.gpu.kernel.block.size_bucket |
Histogram bucket;CUDA Kernel의 Block당 스레드 수 히스토그램에서 le 경계 기준으로 누적된 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, le, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.block.size_count |
Histogram count;CUDA Kernel의 Block당 스레드 수 히스토그램의 누적 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.block.size_max |
Histogram max;CUDA Kernel의 Block당 스레드 수 히스토그램에서 현재 집계 주기의 최대값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.block.size_min |
Histogram min;CUDA Kernel의 Block당 스레드 수 히스토그램에서 현재 집계 주기의 최소값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.block.size_sum |
Histogram sum;CUDA Kernel의 Block당 스레드 수 히스토그램의 누적값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.grid.size_bucket |
Histogram bucket;CUDA Kernel Grid의 총 스레드 수 히스토그램에서 le 경계 기준으로 누적된 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, le, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.grid.size_count |
Histogram count;CUDA Kernel Grid의 총 스레드 수 히스토그램의 누적 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.grid.size_max |
Histogram max;CUDA Kernel Grid의 총 스레드 수 히스토그램에서 현재 집계 주기의 최대값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.grid.size_min |
Histogram min;CUDA Kernel Grid의 총 스레드 수 히스토그램에서 현재 집계 주기의 최소값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.grid.size_sum |
Histogram sum;CUDA Kernel Grid의 총 스레드 수 히스토그램의 누적값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{thread} |
otel_service.gpu.kernel.launch.calls |
Counter;CUDA Kernel의 누적 발사 횟수입니다. rate 결과는 초당 발사 횟수입니다. |
container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.shared_memory_bucket |
Histogram bucket;CUDA Kernel의 각 발사에서 사용한 동적 공유 메모리 히스토그램에서 le 경계 기준으로 누적된 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, le, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.shared_memory_count |
Histogram count;CUDA Kernel의 각 발사에서 사용한 동적 공유 메모리 히스토그램의 누적 관측 횟수입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{call} |
otel_service.gpu.kernel.shared_memory_max |
Histogram max;CUDA Kernel의 각 발사에서 사용한 동적 공유 메모리 히스토그램에서 현재 집계 주기의 최대값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.kernel.shared_memory_min |
Histogram min;CUDA Kernel의 각 발사에서 사용한 동적 공유 메모리 히스토그램에서 현재 집계 주기의 최소값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.kernel.shared_memory_sum |
Histogram sum;CUDA Kernel의 각 발사에서 사용한 동적 공유 메모리 히스토그램의 누적값입니다. | container_id, cuda_kernel_name, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.memory.allocations |
Counter;cudaMalloc을 통해 누적 할당된 바이트 수입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.memory.copies_bucket{le=10000} |
Histogram bucket;CUDA 비동기 메모리 복사 바이트 수 히스토그램에서 le 경계 기준으로 누적된 관측 횟수입니다. | container_id, cuda_memcpy_kind, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, le, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{copy} |
otel_service.gpu.memory.copies_count |
Histogram count;CUDA 비동기 메모리 복사 바이트 수 히스토그램의 누적 관측 횟수입니다. | container_id, cuda_memcpy_kind, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, le, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{copy} |
otel_service.gpu.memory.copies_max |
Histogram max;CUDA 비동기 메모리 복사 바이트 수 히스토그램에서 현재 집계 주기의 최대값입니다. | container_id, cuda_memcpy_kind, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.memory.copies_min |
Histogram min;CUDA 비동기 메모리 복사 바이트 수 히스토그램에서 현재 집계 주기의 최소값입니다. | container_id, cuda_memcpy_kind, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.memory.copies_sum |
Histogram sum;CUDA 비동기 메모리 복사 바이트 수 히스토그램의 누적값입니다. | container_id, cuda_memcpy_kind, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.gpu.sm_active |
Gauge;GPU 장치 수준의 launch-to-sync 시간 구간 합집합 비율이며, 원시 값 범위는 0..1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.errors |
Counter;GPU ECC, PCIe, XID 또는 RAS 누적 오류 수입니다. | error_type, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_type, hw_vendor |
{error} |
otel_service.hw.gpu.allocated |
Gauge;프로세스 메모리 점유율 또는 GPU 이용률이 구성된 임계값에 도달하면 1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.clock.graphics |
Gauge;GPU Graphics/SM 클록 주파수입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
MHz |
otel_service.hw.gpu.clock.memory |
Gauge;GPU 메모리 클록 주파수입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
MHz |
otel_service.hw.gpu.energy.consumed |
Counter;GPU가 누적 소비한 에너지입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
J |
otel_service.hw.gpu.fan_speed |
Gauge;GPU 팬 속도이며, 보고 여부는 제조사와 장치 기능에 따라 달라집니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
{rpm} |
otel_service.hw.gpu.idle |
Gauge;GPU 유휴 비율이며, 이용률을 얻을 수 있을 때는 1에서 이용률을 뺀 값입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.interconnect.throughput |
Gauge;GPU NVLink 또는 XGMI 인터커넥트의 집계 수신/송신 처리량입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_interconnect_type, hw_id, hw_name, hw_vendor, network_io_direction |
By/s |
otel_service.hw.gpu.memory.free |
UpDownCounter;GPU의 사용 가능한 메모리 바이트 수입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
By |
otel_service.hw.gpu.memory.limit |
UpDownCounter;GPU의 총 메모리 용량입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
By |
otel_service.hw.gpu.memory.usage |
UpDownCounter;GPU가 사용 중인 메모리 바이트 수입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
By |
otel_service.hw.gpu.memory.utilization |
Gauge;GPU 메모리 컨트롤러 이용률이며, 원시 값 범위는 0..1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.pcie.throughput |
Gauge;GPU PCIe 수신/송신 처리량입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, network_io_direction |
By/s |
otel_service.hw.gpu.power.draw |
Gauge;GPU의 현재 전력 소비입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
W |
otel_service.hw.gpu.power.limit |
Gauge;GPU 전력 상한입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
W |
otel_service.hw.gpu.temperature |
Gauge;GPU 칩 또는 메모리 온도입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, sensor |
Cel |
otel_service.hw.gpu.throttled |
Gauge;온도 또는 전력 스로틀링이 활성화되면 1입니다. 원인은 hw_gpu_throttle_reasons 태그에 있습니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_throttle_reasons, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.throttled{hw_gpu_throttle_reasons!=none} |
Gauge;온도 또는 전력 스로틀링이 활성화되면 1입니다. 원인은 hw_gpu_throttle_reasons 태그에 있습니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_throttle_reasons, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.up |
Gauge;GPU 장치가 성공적으로 수집되면 1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.utilization{hw_gpu_task=decoder} |
Gauge;GPU 계산, 인코딩 또는 디코딩 이용률이며, 원시 값 범위는 0..1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_task, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.utilization{hw_gpu_task=encoder} |
Gauge;GPU 계산, 인코딩 또는 디코딩 이용률이며, 원시 값 범위는 0..1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_task, hw_id, hw_name, hw_vendor |
1(0..1) |
otel_service.hw.gpu.utilization{hw_gpu_task=general} |
Gauge;GPU 계산, 인코딩 또는 디코딩 이용률이며, 원시 값 범위는 0..1입니다. | gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_task, hw_id, hw_name, hw_vendor, team |
1(0..1) |
otel_service.process.cpu.time |
Counter;Collector 프로세스의 누적 CPU 시간입니다. | cpu_mode, host, host_name |
s |
otel_service.process.cpu.utilization |
Gauge;Collector 프로세스의 CPU 이용률이며, 원시 값 범위는 0..1입니다. | host, host_name |
1(0..1) |
otel_service.process.gpu.core.usage |
Gauge;프로세스가 Kernel 발사부터 동기화까지의 구간에서 정규화된 평균 CUDA 코어 사용량입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
{cores} |
otel_service.process.gpu.memory.usage |
UpDownCounter;프로세스가 지정한 GPU에서 점유한 메모리 바이트 수입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
By |
otel_service.process.gpu.sm_active |
Gauge;샘플링 주기 내에서 프로세스가 launch-to-sync 시간 구간을 보유한 비율입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
1(0..1) |
otel_service.process.gpu.utilization |
Gauge;프로세스의 GPU 이용률이며, 원시 값 범위는 0..1입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_gpu_task, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
1(0..1) |
otel_service.process.memory.usage |
UpDownCounter;Collector 프로세스의 상주 메모리 RSS입니다. | host, host_name |
By |
otel_service.process.memory.virtual |
UpDownCounter;Collector 프로세스의 가상 메모리 크기입니다. | host, host_name |
By |
otel_service.process.runtime.go.goroutines |
Gauge;Collector 프로세스의 Go goroutine 수입니다. | host, host_name |
{goroutine} |
otel_service.process.runtime.go.mem.heap_alloc |
Gauge;Collector 프로세스에 할당된 Go 힙 메모리입니다. | host, host_name |
By |
otel_service.process.thread.count |
UpDownCounter;Collector 프로세스의 OS 스레드 수입니다. | host, host_name |
{thread} |
otel_service.process.unix.file_descriptor.count |
UpDownCounter;Collector 프로세스가 열어 둔 파일 디스크립터 수입니다. | host, host_name |
{file_descriptor} |
otel_service.process.uptime |
Gauge;GPU 귀속 프로세스의 실행 시간입니다. | container_id, gpu_index, gpu_mig_device_id, gpu_mig_enabled, gpu_mig_instance_id, gpu_mig_profile, gpu_parent_uuid, gpu_pci_address, host, host_name, hw_id, hw_name, hw_vendor, k8s_container_name, k8s_namespace_name, k8s_pod_name, k8s_pod_uid, process_command_line, process_executable_name, process_owner, process_owner_userid, process_pid, process_state, process_workload_framework, process_workload_kind |
s |
otel_service.system.cpu.logical.count |
UpDownCounter;호스트의 논리 CPU 코어 수입니다. | host, host_name |
{cpu} |
otel_service.system.cpu.utilization |
Gauge;각 논리 CPU 코어의 이용률이며, 원시 값 범위는 0..1입니다. | cpu_logical_number, host, host_name |
1(0..1) |
otel_service.system.disk.io |
Counter;디스크의 누적 읽기/쓰기 바이트 수입니다. | disk_io_direction, host, host_name, system_device |
By |
otel_service.system.disk.operations |
Counter;디스크의 누적 읽기/쓰기 작업 수입니다. | disk_io_direction, host, host_name, system_device |
{operation} |
otel_service.system.filesystem.usage |
UpDownCounter;상태별 파일시스템 공간 바이트 수입니다. | host, host_name, system_device, system_filesystem_mountpoint, system_filesystem_state, system_filesystem_type |
By |
otel_service.system.filesystem.utilization |
Gauge;파일시스템 이용률이며, 원시 값 범위는 0..1입니다. | host, host_name, system_device, system_filesystem_mountpoint, system_filesystem_type |
1(0..1) |
otel_service.system.memory.usage |
UpDownCounter;상태별 호스트 메모리 바이트 수입니다. | host, host_name, system_memory_state |
By |
otel_service.system.memory.utilization |
Gauge;호스트 메모리 이용률이며, 원시 값 범위는 0..1입니다. | host, host_name |
1(0..1) |
otel_service.system.network.errors |
Counter;네트워크 인터페이스의 누적 수신/송신 오류 수입니다. | host, host_name, network_interface_name, network_io_direction |
{error} |
otel_service.system.network.io |
Counter;네트워크 인터페이스의 누적 수신/송신 바이트 수입니다. | host, host_name, network_interface_name, network_io_direction |
By |