Skip to main content
The easiest way to run the collector. The image is published to GitHub Container Registry and supports linux/amd64 and linux/arm64.

Tags


Pre-built binaries

Download a binary for your platform from the GitHub Releases page. Binaries are available for:
GPU metrics (NVML, sysfs) and eBPF tracing only work on Linux. On macOS and Windows the binary runs with host and process metrics only.
Verify the SHA256 checksum from the SHA256SUMS.txt file in the release:

Build from source

Requirements: Go 1.21+, CGO enabled (required for NVML on Linux).
For eBPF CUDA tracing support, also run:

Upgrade

Docker

Binary

Download the new binary from the Releases page, replace the existing file, and restart the process.

Uninstall

Docker

Binary


Troubleshooting

  • Confirm the host has a supported GPU: lspci | grep -E 'VGA|3D|Display'
  • For NVIDIA: verify libnvidia-ml.so is present: ldconfig -p | grep nvidia-ml
  • For Docker: ensure --gpus all (NVIDIA) or --device /dev/dri (AMD/Intel) is passed
  • Check logs: docker logs otel-gpu-collector for "discovered GPU" entries
  • Confirm OTEL_GPU_EBPF_ENABLED=true is set
  • Check kernel version: uname -r (requires 5.8+)
  • The process needs CAP_BPF and CAP_PERFMON, or run as root
  • For Docker: add --privileged or --cap-add CAP_BPF --cap-add CAP_PERFMON
  • Verify libcudart.so is present on the host: ldconfig -p | grep cudart
  • Verify OTEL_EXPORTER_OTLP_ENDPOINT is reachable from the container: curl http://<endpoint>/health
  • For Docker networking: use the host IP or service name, not localhost
  • Check if gRPC vs HTTP/protobuf matches the backend: set OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf for HTTP backends (port 4318)
  • Verify the i915 or Xe driver is loaded: lsmod | grep -E 'i915|xe'
  • Check DRM entries exist: ls /sys/class/drm/
  • Requires Linux kernel 5.10+ for sysfs metric exposure
  • Fan speed requires kernel 6.16+