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.
Requirements
Section titled “Requirements”- Linux with the
i915orxekernel driver - Kernel 5.10+ for sysfs metric exposure
- Kernel 6.16+ for fan speed (
fan1_input)
Collected metrics
Section titled “Collected metrics”| Metric | Source | Requirement |
|---|---|---|
hw.temperature | hwmon temp1_input | kernel 5.10+ |
hw.power | hwmon power1_average | kernel 5.10+ |
hw.power.limit | hwmon power1_max | kernel 5.10+ |
hw.energy | hwmon energy1_input | kernel 5.10+ |
hw.gpu.speed (clock_domain=graphics) | DRM gt_cur_freq_mhz | Xe driver |
hw.fan.speed | hwmon fan1_input | kernel 6.16+ |
Docker
Section titled “Docker”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).
Docker Compose
Section titled “Docker Compose”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: alwaysKubernetes (DaemonSet)
Section titled “Kubernetes (DaemonSet)”apiVersion: apps/v1kind: DaemonSetmetadata: name: otel-gpu-collector namespace: monitoringspec: 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