Skip to content

AMD GPUs

The collector monitors AMD GPUs directly from the Linux kernel’s sysfs and hwmon interfaces. No ROCm, no user-space libraries, and no additional drivers are needed beyond the standard AMDGPU kernel module.

  • Linux with the amdgpu kernel driver
  • Kernel 5.x+ (sysfs/hwmon paths are stable from 5.x onwards)
MetricDescription
hw.gpu.utilizationCompute utilization (0.0–1.0)
hw.gpu.memory.utilizationFraction of GPU memory used (usage / limit)
hw.gpu.memory.controller.utilizationMemory controller busy fraction (extension)
hw.gpu.memory.limitTotal VRAM (bytes)
hw.gpu.memory.usageUsed VRAM (bytes)
hw.gpu.memory.freeFree VRAM (bytes)
hw.temperatureDie temperature (°C)
hw.fan.speedFan speed (RPM)
hw.powerCurrent power draw (W)
hw.power.limitPower cap (W)
hw.energyCumulative energy (J)
Terminal window
docker run -d \
--name otel-gpu-collector \
--device /dev/kfd:/dev/kfd \
--device /dev/dri:/dev/dri \
--pid=host \
-e OTEL_SERVICE_NAME=my-app \
-e OTEL_RESOURCE_ATTRIBUTES='deployment.environment=production' \
-e OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318 \
ghcr.io/thinkfleetai/otel-gpu-collector:latest

--pid=host is required for per-process GPU attribution (cmdline, PID, zombie state).

services:
otel-gpu-collector:
image: ghcr.io/thinkfleetai/otel-gpu-collector:latest
pid: host
environment:
OTEL_SERVICE_NAME: my-app
OTEL_RESOURCE_ATTRIBUTES: deployment.environment=production
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4318
devices:
- /dev/kfd:/dev/kfd
- /dev/dri:/dev/dri
restart: always
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: otel-gpu-collector
namespace: monitoring
spec:
selector:
matchLabels:
app: otel-gpu-collector
template:
metadata:
labels:
app: otel-gpu-collector
spec:
hostPID: true
containers:
- name: collector
image: ghcr.io/thinkfleetai/otel-gpu-collector:latest
env:
- name: OTEL_SERVICE_NAME
value: gpu-collector
- name: OTEL_RESOURCE_ATTRIBUTES
value: deployment.environment=production
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://otel-collector.monitoring.svc.cluster.local:4318
securityContext:
privileged: false
volumeMounts:
- name: sys
mountPath: /sys
readOnly: true
- name: dri
mountPath: /dev/dri
volumes:
- name: sys
hostPath:
path: /sys
- name: dri
hostPath:
path: /dev/dri