diff --git a/Prometheus-and-WMI-CounterTypes.md b/Prometheus-and-WMI-CounterTypes.md index 3331984..5341ba5 100644 --- a/Prometheus-and-WMI-CounterTypes.md +++ b/Prometheus-and-WMI-CounterTypes.md @@ -20,28 +20,31 @@ This applies to WMI classes inheriting `Win32_PerfRawData`. | `PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE` | `gauge` | | | `PERF_COUNTER_COUNTER` | `counter` | | | `PERF_COUNTER_BULK_COUNT` | `counter` | | -| `PERF_RAW_FRACTION` | `gauge` | | -| `PERF_COUNTER_TIMER` | `counter` | Units are "high-resolution performance counter" | -| `PERF_PRECISION_SYSTEM_TIMER` | `counter` | Units are "system performance timer" | +| `PERF_RAW_FRACTION` | `gauge` | Verify units. Numerator. Goes with `PERF_RAW_BASE` | +| `PERF_COUNTER_TIMER` | `counter` | PerfTime, normalise to seconds. | +| `PERF_PRECISION_SYSTEM_TIMER` | `counter` | PerfTime, normalise to seconds. | | `PERF_100NSEC_TIMER` | `counter` | Normalize to seconds (`value / 1e7`) | | `PERF_PRECISION_100NS_TIMER` | `counter` | Normalize to seconds (`value / 1e7`) | | `PERF_OBJ_TIME_TIMER` | `counter` | Object-specific units | | `PERF_PRECISION_OBJECT_TIMER` | `counter` | Object-specific units | -| `PERF_SAMPLE_FRACTION` | 2x`gauge` | Verify units | -| `PERF_COUNTER_TIMER_INV` | | | -| `PERF_100NSEC_TIMER_INV` | | | -| `PERF_COUNTER_MULTI_TIMER` | | | -| `PERF_100NSEC_MULTI_TIMER` | | | -| `PERF_COUNTER_MULTI_TIMER_INV` | | | -| `PERF_100NSEC_MULTI_TIMER_INV` | | | -| `PERF_AVERAGE_TIMER` | | | -| `PERF_ELAPSED_TIME` | | | -| `PERF_COUNTER_NODATA` | | | -| `PERF_AVERAGE_BULK` | | | -| `PERF_SAMPLE_BASE` | | | -| `PERF_AVERAGE_BASE` | | | -| `PERF_RAW_BASE` | | | -| `PERF_PRECISION_TIMESTAMP` | | | -| `PERF_LARGE_RAW_BASE` | | | -| `PERF_COUNTER_MULTI_BASE` | | | -| `PERF_COUNTER_HISTOGRAM_TYPE` | | | +| `PERF_SAMPLE_FRACTION` | `gauge` | Verify units. Numerator. Goes with `PERF_SAMPLE_BASE` | +| `PERF_COUNTER_TIMER_INV` | `counter` | Inactive time. PerfTime, normalise to seconds | +| `PERF_100NSEC_TIMER_INV` | `counter` | Inactive time. Normalize to seconds (`value / 1e7`) | +| `PERF_COUNTER_MULTI_TIMER` | Many `counter` | PerfTime, normalise to seconds | +| `PERF_100NSEC_MULTI_TIMER` | Many `counter` | Normalize to seconds (`value / 1e7`) | +| `PERF_COUNTER_MULTI_TIMER_INV` | Many `counter` | Inactive time. PerfTime, normalise to seconds | +| `PERF_100NSEC_MULTI_TIMER_INV` | Many `counter` | Inactive time. Normalize to seconds (`value / 1e7`) | +| `PERF_AVERAGE_TIMER` | `summary` | Verify units. The `_count` is the `_Base` | +| `PERF_ELAPSED_TIME` | `gauge` | PerfTime, normalise to seconds. Convert to unixtime? | +| `PERF_COUNTER_NODATA` | ?? | Error value? | +| `PERF_AVERAGE_BULK` | `summary` | `_sum` part. Goes with `PERF_AVERAGE_BASE` | +| `PERF_SAMPLE_BASE` | `gauge` | Verify units. Denominator. Goes with `PERF_SAMPLE_FRACTION` | +| `PERF_AVERAGE_BASE` | `summary` | `_count` part. Goes with `PERF_AVERAGE_BULK` | +| `PERF_RAW_BASE` | `gauge` | Verify units. Denominator. Goes with `PERF_RAW_FRACTION` | +| `PERF_PRECISION_TIMESTAMP` | `counter` | PerfTime, normalise to seconds | +| `PERF_LARGE_RAW_FRACTION` | `counter` | Verify units. Numerator. Goes with `PERF_LARGE_RAW_FRACTION` | +| `PERF_LARGE_RAW_BASE` | `counter` | Verify units. Denominator. Goes with `PERF_LARGE_RAW_FRACTION` | +| `PERF_COUNTER_MULTI_BASE` | `counter` | Seems to be a time denominator. Drop. | +| `PERF_COUNTER_HISTOGRAM_TYPE` | ?? | No docs. | + +To convert "PerfTime" units to seconds, divide by the result of `QueryPerformanceFrequency()`. \ No newline at end of file