Skip to content

Intel GPUs

The collector monitors Intel GPUs via the Linux kernel’s sysfs, hwmon, and DRM interfaces exposed by the i915 and Xe drivers. No Intel GPU tools, no OneAPI, and no user-space libraries are required.

  • Linux with the i915 or xe kernel driver
  • Kernel 5.10+ for sysfs metric exposure
  • Kernel 6.16+ for fan speed (fan1_input)
MetricSourceRequirement
hw.temperaturehwmon temp1_inputkernel 5.10+
hw.powerhwmon power1_averagekernel 5.10+
hw.power.limithwmon power1_maxkernel 5.10+
hw.energyhwmon energy1_inputkernel 5.10+
hw.gpu.speed (clock_domain=graphics)DRM gt_cur_freq_mhzXe driver
hw.fan.speedhwmon fan1_inputkernel 6.16+
Terminal window
docker run -d \
--name otel-gpu-collector \
--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/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