iis: fix types, units and names of app pool, queue and worker metrics (#2715)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2026-10-15 20:34:37 +02:00
committed by GitHub
parent 04ec4a0308
commit 8138b2e073
8 changed files with 315 additions and 67 deletions
+15 -13
View File
@@ -26,6 +26,8 @@ If given, an application needs to match the include regular expression in order
If given, an application needs to *not* match the exclude regular expression in order for the corresponding metrics to be reported.
The application filters apply to the application pool, worker process and HTTP request queue metrics (`app` label). The site filters apply to the `Web Service` metrics (`site` label).
## Collection duration
`windows_exporter_collector_duration_seconds{collector="iis"}` can jump to about 250 ms on some scrapes, while it normally stays in the low milliseconds. At the same moments, some other collectors that read performance counters, such as `system`, `logical_disk` or `net`, can show the same duration.
@@ -70,13 +72,13 @@ See [#2698](https://github.com/prometheus-community/windows_exporter/issues/2698
| `windows_iis_not_found_errors_total` | The number of requests that have been made since the service started that were not satisfied by the server because the requested document was not found. Usually reported as HTTP error 404 | counter | `site` |
| `windows_iis_rejected_async_io_requests_total` | The total number of rejected asynchronous I/O requests since the start of the IIS service. | counter | `site` |
| `windows_iis_current_application_pool_state` | The current status of the application pool (1 - Uninitialized, 2 - Initialized, 3 - Running, 4 - Disabling, 5 - Disabled, 6 - Shutdown Pending, 7 - Delete Pending) | gauge | `app`, `state` |
| `windows_iis_current_application_pool_start_time` | The Unix timestamp for the application pool start time | gauge | `app` |
| `windows_iis_current_application_pool_uptime_seconds` | The time, in seconds, since the application pool was last started or recycled | gauge | `app` |
| `windows_iis_current_worker_processes` | The current number of worker processes that are running in the application pool | gauge | `app` |
| `windows_iis_maximum_worker_processes` | The maximum number of worker processes that have been created for the application pool since Windows Process Activation Service (WAS) started | gauge | `app` |
| `windows_iis_recent_worker_process_failures` | The number of times that worker processes for the application pool failed during the rapid-fail protection interval | gauge | `app` |
| `windows_iis_time_since_last_worker_process_failure` | The length of time, in seconds, since the last worker process failure occurred for the application pool | gauge | `app` |
| `windows_iis_time_since_last_worker_process_failure_seconds` | The length of time, in seconds, since the last worker process failure occurred for the application pool. Equals the pool uptime if no worker process failed | gauge | `app` |
| `windows_iis_total_application_pool_recycles` | The number of times that the application pool has been recycled since Windows Process Activation Service (WAS) started | counter | `app` |
| `windows_iis_total_application_pool_start_time` | The Unix timestamp for the application pool of when the Windows Process Activation Service (WAS) started | counter | `app` |
| `windows_iis_total_application_pool_uptime_seconds` | The time, in seconds, since the application pool was first started after the Windows Process Activation Service (WAS) started | gauge | `app` |
| `windows_iis_total_worker_processes_created` | The number of worker processes created for the application pool since Windows Process Activation Service (WAS) started | counter | `app` |
| `windows_iis_total_worker_process_failures` | The number of times that worker processes have crashed since the application pool was started | counter | `app` |
| `windows_iis_total_worker_process_ping_failures` | The number of times that Windows Process Activation Service (WAS) did not receive a response to ping messages sent to a worker process | counter | `app` |
@@ -111,14 +113,14 @@ See [#2698](https://github.com/prometheus-community/windows_exporter/issues/2698
| `windows_iis_worker_output_cache_items_flushed_total` | Total number of items flushed from output cache (since service startup) | counter | `app`, `pid` |
| `windows_iis_worker_output_cache_flushes_total` | Total number of flushes of output cache (since service startup) | counter | `app`, `pid` |
| `windows_iis_worker_threads` | Number of threads actively processing requests in the worker process | gauge | `app`, `pid`, `state` |
| `windows_iis_worker_max_threads` | Maximum number of threads to which the thread pool can grow as needed | counter | `app`, `pid` |
| `windows_iis_worker_max_threads` | Maximum number of threads to which the thread pool can grow as needed | gauge | `app`, `pid` |
| `windows_iis_worker_requests_total` | Total number of HTTP requests served by the worker process | counter | `app`, `pid` |
| `windows_iis_worker_current_requests` | Current number of requests being processed by the worker process | counter | `app`, `pid` |
| `windows_iis_worker_current_requests` | Current number of requests being processed by the worker process | gauge | `app`, `pid` |
| `windows_iis_worker_request_errors_total` | Total number of requests that returned an error | counter | `app`, `pid`, `status_code` |
| `windows_iis_worker_current_websocket_requests` | the current number of WebSocket connections being processed by the IIS worker process. | counter | `app`, `pid` |
| `windows_iis_worker_websocket_connection_attempts_total` | the total number of attempted WebSocket connections since the start of the IIS worker process | counter | `app`, `pid` |
| `windows_iis_worker_websocket_connection_accepted_total` | the total number of WebSocket connections that have been successfully established since the start of the IIS worker process | counter | `app`, `pid` |
| `windows_iis_worker_websocket_connection_rejected_total` | the total number of WebSocket connections that have been rejected by the server since the start of the IIS worker process. Connections can be rejected for various reasons, such as capacity limitations, authentication failures, or configuration issues | counter | `app`, `pid` |
| `windows_iis_worker_current_websocket_requests` | Current number of WebSocket requests being processed by the worker process | gauge | `app`, `pid` |
| `windows_iis_worker_websocket_connection_attempts_total` | Total number of WebSocket connection attempts since the worker process started | counter | `app`, `pid` |
| `windows_iis_worker_websocket_connection_accepted_total` | Total number of WebSocket connections accepted since the worker process started | counter | `app`, `pid` |
| `windows_iis_worker_websocket_connection_rejected_total` | Total number of WebSocket connections rejected since the worker process started | counter | `app`, `pid` |
| `windows_iis_server_cache_active_flushed_entries` | Number of file handles cached that will be closed when all current transfers complete | gauge | None |
| `windows_iis_server_file_cache_memory_bytes` | Current number of bytes used by file cache | gauge | None |
| `windows_iis_server_file_cache_max_memory_bytes` | Maximum number of bytes used by file cache | counter | None |
@@ -147,10 +149,10 @@ See [#2698](https://github.com/prometheus-community/windows_exporter/issues/2698
| `windows_iis_server_output_cache_hits_total` | Total number of successful lookups in output cache (since service startup) | counter | None |
| `windows_iis_server_output_cache_items_flushed_total` | Total number of items flushed from output cache (since service startup) | counter | None |
| `windows_iis_server_output_cache_flushes_total` | Total number of flushes of output cache (since service startup) | counter | None |
| `windows_iis_http_requests_current_queue_size` | Http Request Current queue size | gauge | `site` |
| `windows_iis_http_request_total_rejected_request` | Http Request total rejected request | gauge | `site` |
| `windows_iis_http_requests_max_queue_item_age` | Http Request Max queue Item age | gauge | `site` |
| `windows_iis_http_requests_arrival_rate` | Http requests Arrival Rate | gauge | `site` |
| `windows_iis_http_requests_current_queue_size` | Number of requests in the HTTP.sys request queue of the application pool | gauge | `app` |
| `windows_iis_http_requests_rejected_total` | Total number of requests rejected by the HTTP.sys request queue of the application pool | counter | `app` |
| `windows_iis_http_requests_max_queue_item_age_seconds` | Age, in seconds, of the oldest request in the HTTP.sys request queue of the application pool. Not reported while the queue is empty | gauge | `app` |
| `windows_iis_http_requests_arrived_total` | Total number of requests that arrived in the HTTP.sys request queue of the application pool | counter | `app` |
### Example metric
_This collector does not yet have explained examples, we would appreciate your help adding them!_