# Modules generated by the plugin

The plugin generates modules in two groups: **per-GPU** and **global**.

## Per-GPU modules (18 per GPU)

Each GPU `i` (0-indexed) emits these modules:

| Module name | Type | Unit | Description |
|---|---|---|---|
| `GPU_<i>_Status` | `generic_proc` | - | 1 if GPU detected, 0 if not |
| `GPU_<i>_Utilization` | `generic_data` | % | GPU compute utilization (0-100) |
| `GPU_<i>_Throttle_Active` | `generic_data` | - | Active throttle reason bitmask (decimal) |
| `GPU_<i>_Throttle_Reasons` | `generic_data_string` | - | Comma-separated throttle reason labels |
| `GPU_<i>_Memory_Controller_Utilization` | `generic_data` | % | Memory controller utilization |
| `GPU_<i>_Memory_Used` | `generic_data` | MiB | Used memory |
| `GPU_<i>_Memory_Free` | `generic_data` | MiB | Free memory |
| `GPU_<i>_Memory_Total` | `generic_data` | MiB | Total memory |
| `GPU_<i>_Memory_Used_Percent` | `generic_data` | % | Used/total * 100, rounded to 1dp |
| `GPU_<i>_Temperature` | `generic_data` | °C | GPU temperature (warning 70-89, critical 90-110) |
| `GPU_<i>_Power_Draw` | `generic_data` | W | Current power draw |
| `GPU_<i>_Power_Limit` | `generic_data` | W | Power limit |
| `GPU_<i>_Fan_Speed` | `generic_data` | % | Fan speed (omitted with `--include-fan=false`) |
| `GPU_<i>_Graphics_Clock` | `generic_data` | MHz | Graphics clock frequency |
| `GPU_<i>_Performance_State` | `generic_data_string` | - | P-state label (e.g. P0) |
| `GPU_<i>_Performance_State_Number` | `generic_data` | PNumber | P-state numeric value |
| `GPU_<i>_Critical_Errors` | `generic_data` | - | Uncorrected ECC error count (0 = NORMAL, 1+ = CRITICAL) |
| `GPU_<i>_Name` | `generic_data_string` | - | GPU model name |

## Global modules (3 total)

| Module name | Type | Description |
|---|---|---|
| `GPU_Count` | `generic_proc` | Number of GPUs detected (0 = CRITICAL) |
| `GPU_Driver_Version` | `generic_data_string` | NVIDIA driver version |
| `GPU_CUDA_Version` | `generic_data_string` | Maximum supported CUDA version |

## Threshold policy

| Module | Normal | Warning | Critical |
|---|---|---|---|
| Temperature | [0, 69] | [70, 89] | [90, 110] |
| Memory_Used_Percent | [0, 69] | [70, 84] | [85, 100] |
| Critical_Errors | 0 | (none) | [1, 1000000] |

Thresholds are hardcoded. To override, use alert templates in the Pandora FMS console.

## Module groups

- All per-GPU modules use `module_group=GPU`
- Global modules (`GPU_Count`, `GPU_Driver_Version`, `GPU_CUDA_Version`) have no module group