Files

17 lines
734 B
Bash
Executable File

#!/usr/bin/env bash
# Zählt NVIDIA-Xid-Fehler aus dem Kernel-Log und schreibt sie für den node_exporter (textfile collector).
# Aufruf per systemd-Timer jede Minute (siehe platform/proxmox/ansible/roles/gpu-node).
set -euo pipefail
OUT_DIR="${1:-/var/lib/node_exporter/textfile}"
TMP="$(mktemp "${OUT_DIR}/.xid.XXXXXX")"
{
echo "# HELP knaster_gpu_xid_errors_total NVIDIA Xid-Fehler seit Boot"
echo "# TYPE knaster_gpu_xid_errors_total counter"
journalctl -k -b --no-pager -o cat 2>/dev/null \
| grep -oE 'NVRM: Xid \([^)]*\): [0-9]+' \
| awk '{print $NF}' | sort | uniq -c \
| awk '{printf "knaster_gpu_xid_errors_total{xid=\"%s\"} %d\n", $2, $1}'
} > "$TMP"
chmod 0644 "$TMP"
mv "$TMP" "${OUT_DIR}/gpu_xid.prom"