Files
windows_exporter/internal/collector/smbclient/AGENTS.md
T

3.3 KiB

smbclient collector

The collector reads the SMB Client Shares PDH object with pdh.CounterTypeRaw. It is multi-instance, with one instance per share the host has connected to. These notes were recorded on a Windows Server 2025 (build 26100) Hyper-V guest that had mapped one share of its own SMB server.

  • Instance names have a single leading backslash: \SERVER2025\SmbClientTest. The collector splits the name at \ and uses the two parts as the server and share labels. The aggregate _Total is dropped by internal/pdh because the collector asks for pdh.InstancesAll.
  • The mapped share was idle, so every counter of the sample instance was 0.
  • Current Data Queue Length is the only gauge ("the current number of read or write requests outstanding"). The /sec counters are cumulative counts.
  • Avg. Data/Read/Write Queue Length are PERF_COUNTER_100NS_QUEUELEN_TYPE: the raw value is accumulated queue time in 100 ns ticks. internal/pdh does not convert this type, so the collector applies the 1e-7 factor.
  • Avg. sec/Read, Avg. sec/Write and Avg. sec/Data Request are PERF_AVERAGE_TIMER. The first value is the summed latency in ticks of the 10 MHz counter time base and the base is the request count; the collector reads only the first value.
  • Data Bytes/sec, Read Bytes/sec and Write Bytes/sec are bytes (PERF_COUNTER_BULK_COUNT).

Counter reference

Recorded on Windows Server 2025 (build 26100). Raw and Base are the first and second values that pdh.CounterTypeRaw returns for the sample instance.

SMB Client Shares

Multi-instance. Instances: \SERVER2025\SmbClientTest, _Total. Sample instance: \SERVER2025\SmbClientTest.

Counters the collector reads:

Counter Type Raw Base
Avg. Data Queue Length PERF_COUNTER_100NS_QUEUELEN_TYPE 0
Avg. Read Queue Length PERF_COUNTER_100NS_QUEUELEN_TYPE 0
Avg. sec/Data Request PERF_AVERAGE_TIMER 0 0
Avg. sec/Read PERF_AVERAGE_TIMER 0 0
Avg. sec/Write PERF_AVERAGE_TIMER 0 0
Avg. Write Queue Length PERF_COUNTER_100NS_QUEUELEN_TYPE 0
Credit Stalls/sec PERF_COUNTER_COUNTER 0
Current Data Queue Length PERF_COUNTER_RAWCOUNT 0
Data Bytes/sec PERF_COUNTER_BULK_COUNT 0
Data Requests/sec PERF_COUNTER_COUNTER 0
Metadata Requests/sec PERF_COUNTER_COUNTER 0
Read Bytes transmitted via SMB Direct/sec PERF_COUNTER_BULK_COUNT 0
Read Bytes/sec PERF_COUNTER_BULK_COUNT 0
Read Requests transmitted via SMB Direct/sec PERF_COUNTER_COUNTER 0
Read Requests/sec PERF_COUNTER_COUNTER 0
Turbo I/O Reads/sec PERF_COUNTER_COUNTER 0
Turbo I/O Writes/sec PERF_COUNTER_COUNTER 0
Write Bytes transmitted via SMB Direct/sec PERF_COUNTER_BULK_COUNT 0
Write Bytes/sec PERF_COUNTER_BULK_COUNT 0
Write Requests transmitted via SMB Direct/sec PERF_COUNTER_COUNTER 0
Write Requests/sec PERF_COUNTER_COUNTER 0

Not read by the collector:

  • PERF_AVERAGE_BULK: Avg. Bytes/Read, Avg. Bytes/Write, Avg. Data Bytes/Request
  • PERF_COUNTER_COUNTER: Attempted Compressed Requests/sec, Compressed Bytes Sent/sec, Compressed Responses/sec, Successful Compressed Requests /sec