rule_files: - ../windows_rules.yaml - ../windows_alerts.yaml evaluation_interval: 1m group_eval_order: - windows-exporter-recording - windows-exporter-alerts tests: - name: Commit pressure, disk latency and network failures wait and recover interval: 1m input_series: - series: 'windows_memory_committed_bytes{job="windows_exporter", instance="host:9182", cluster="a"}' values: '95x20 50x10' - series: 'windows_memory_commit_limit{job="windows_exporter", instance="host:9182", cluster="a"}' values: '100x31' - series: 'windows_logical_disk_read_seconds_total{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '0+12x20 252x10' - series: 'windows_logical_disk_reads_total{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '0+120x31' - series: 'windows_logical_disk_write_seconds_total{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '0+24x20 504x10' - series: 'windows_logical_disk_writes_total{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '0+240x31' - series: 'windows_net_packets_received_errors_total{job="windows_exporter", instance="host:9182", cluster="a", nic="Ethernet"}' values: '0+120x20 2520x10' - series: 'windows_net_packets_outbound_errors_total{job="windows_exporter", instance="host:9182", cluster="a", nic="Ethernet"}' values: '0x31' - series: 'windows_net_packets_received_discarded_total{job="windows_exporter", instance="host:9182", cluster="a", nic="Ethernet"}' values: '0x31' - series: 'windows_net_packets_outbound_discarded_total{job="windows_exporter", instance="host:9182", cluster="a", nic="Ethernet"}' values: '0+120x20 2520x10' alert_rule_test: - {alertname: WindowsMemoryCommitHighUsage, eval_time: 14m, exp_alerts: []} - alertname: WindowsMemoryCommitHighUsage eval_time: 15m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsmemorycommithighusage/ summary: Windows memory commit usage is high description: 'Committed memory on host:9182 has exceeded 90% of the commit limit for 15 minutes.' - {alertname: WindowsMemoryCommitHighUsage, eval_time: 21m, exp_alerts: []} - {alertname: WindowsDiskReadLatencyHigh, eval_time: 15m, exp_alerts: []} - alertname: WindowsDiskReadLatencyHigh eval_time: 16m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, volume: 'C:', severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskreadlatencyhigh/ summary: Windows disk read latency is high description: 'Volume C: on host:9182 has averaged more than 0.05 seconds per read operation for 15 minutes.' - {alertname: WindowsDiskReadLatencyHigh, eval_time: 25m, exp_alerts: []} - {alertname: WindowsDiskWriteLatencyHigh, eval_time: 15m, exp_alerts: []} - alertname: WindowsDiskWriteLatencyHigh eval_time: 16m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, volume: 'C:', severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskwritelatencyhigh/ summary: Windows disk write latency is high description: 'Volume C: on host:9182 has averaged more than 0.05 seconds per write operation for 15 minutes.' - {alertname: WindowsDiskWriteLatencyHigh, eval_time: 25m, exp_alerts: []} - {alertname: WindowsNetworkErrors, eval_time: 17m, exp_alerts: []} - alertname: WindowsNetworkErrors eval_time: 18m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, nic: Ethernet, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsnetworkerrors/ summary: Windows network packet errors are high description: 'Packet errors on interface Ethernet on host:9182 have exceeded 1 per second for 15 minutes.' - {alertname: WindowsNetworkErrors, eval_time: 25m, exp_alerts: []} - {alertname: WindowsNetworkDiscards, eval_time: 17m, exp_alerts: []} - alertname: WindowsNetworkDiscards eval_time: 18m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, nic: Ethernet, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsnetworkdiscards/ summary: Windows network packet discards are high description: 'Packet discards on interface Ethernet on host:9182 have exceeded 1 per second for 15 minutes.' - {alertname: WindowsNetworkDiscards, eval_time: 25m, exp_alerts: []} - name: New resource alerts stay quiet at exact thresholds and clock alerts are disabled interval: 1m input_series: - series: 'windows_memory_committed_bytes{job="windows_exporter", instance="host:9182"}' values: '90x20' - series: 'windows_memory_commit_limit{job="windows_exporter", instance="host:9182"}' values: '100x20' - series: 'windows_logical_disk_read_seconds_total{job="windows_exporter", instance="host:9182", volume="C:"}' values: '0+6x20' - series: 'windows_logical_disk_reads_total{job="windows_exporter", instance="host:9182", volume="C:"}' values: '0+120x20' - series: 'windows_logical_disk_write_seconds_total{job="windows_exporter", instance="host:9182", volume="C:"}' values: '0+6x20' - series: 'windows_logical_disk_writes_total{job="windows_exporter", instance="host:9182", volume="C:"}' values: '0+120x20' - series: 'windows_net_packets_received_errors_total{job="windows_exporter", instance="host:9182", nic="Ethernet"}' values: '0+30x20' - series: 'windows_net_packets_outbound_errors_total{job="windows_exporter", instance="host:9182", nic="Ethernet"}' values: '0+30x20' - series: 'windows_net_packets_received_discarded_total{job="windows_exporter", instance="host:9182", nic="Ethernet"}' values: '0+30x20' - series: 'windows_net_packets_outbound_discarded_total{job="windows_exporter", instance="host:9182", nic="Ethernet"}' values: '0+30x20' - series: 'windows_time_ntp_client_time_sources{job="windows_exporter", instance="host:9182"}' values: '0x20' - series: 'windows_time_computed_time_offset_seconds{job="windows_exporter", instance="host:9182"}' values: '1x20' alert_rule_test: - {alertname: WindowsMemoryCommitHighUsage, eval_time: 20m, exp_alerts: []} - {alertname: WindowsDiskReadLatencyHigh, eval_time: 20m, exp_alerts: []} - {alertname: WindowsDiskWriteLatencyHigh, eval_time: 20m, exp_alerts: []} - {alertname: WindowsNetworkErrors, eval_time: 20m, exp_alerts: []} - {alertname: WindowsNetworkDiscards, eval_time: 20m, exp_alerts: []} - {alertname: WindowsClockNotSynchronising, eval_time: 20m, exp_alerts: []} - {alertname: WindowsClockSkewDetected, eval_time: 20m, exp_alerts: []} - name: Exporter and collector failures wait five minutes and recover interval: 1m input_series: - series: 'up{job="windows_exporter", instance="host:9182"}' values: '0x5 1x5' - series: 'up{job="other", instance="other:9182"}' values: '0x10' - series: 'windows_exporter_collector_success{job="windows_exporter", instance="host:9182", collector="cpu"}' values: '0x5 1x5' alert_rule_test: - alertname: WindowsExporterDown eval_time: 4m exp_alerts: [] - alertname: WindowsExporterDown eval_time: 5m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', severity: critical} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsexporterdown/ summary: Windows exporter is unreachable description: 'Prometheus cannot scrape Windows exporter on host:9182 (job windows_exporter).' - alertname: WindowsExporterDown eval_time: 6m exp_alerts: [] - alertname: WindowsCollectorFailed eval_time: 4m exp_alerts: [] - alertname: WindowsCollectorFailed eval_time: 5m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', collector: cpu, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowscollectorfailed/ summary: Windows collector failed description: 'Collector cpu on host:9182 has failed for at least 5 minutes.' - alertname: WindowsCollectorFailed eval_time: 6m exp_alerts: [] - name: Resource alerts use recording rules and wait fifteen minutes interval: 1m input_series: - series: 'windows_cpu_time_total{job="windows_exporter", instance="host:9182", cluster="a", core="0", mode="idle"}' values: '0+3x20 120+60x10' - series: 'windows_memory_available_bytes{job="windows_exporter", instance="host:9182", cluster="a"}' values: '5x20 50x10' - series: 'windows_memory_physical_total_bytes{job="windows_exporter", instance="host:9182", cluster="a"}' values: '100x31' alert_rule_test: - alertname: WindowsCPUHighUsage eval_time: 15m exp_alerts: [] - alertname: WindowsCPUHighUsage eval_time: 16m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowscpuhighusage/ summary: Windows CPU usage is high description: 'CPU usage on host:9182 has exceeded 90% for 15 minutes.' - alertname: WindowsCPUHighUsage eval_time: 25m exp_alerts: [] - alertname: WindowsMemoryHighUsage eval_time: 14m exp_alerts: [] - alertname: WindowsMemoryHighUsage eval_time: 15m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsmemoryhighusage/ summary: Windows memory usage is high description: 'Physical memory usage on host:9182 has exceeded 90% for 15 minutes.' - alertname: WindowsMemoryHighUsage eval_time: 21m exp_alerts: [] - name: Disk alerts retain volume labels and fire at both severity levels interval: 1m input_series: - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", volume="C:"}' values: '3x15 30x5' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", volume="C:"}' values: '100x21' alert_rule_test: - alertname: WindowsDiskAlmostFull eval_time: 14m exp_alerts: [] - alertname: WindowsDiskAlmostFull eval_time: 15m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', volume: 'C:', severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskalmostfull/ summary: Windows disk space is low description: 'Volume C: on host:9182 has less than 10% free space. Windows may delay space metrics by 10–15 minutes.' - exp_labels: {job: windows_exporter, instance: 'host:9182', volume: 'C:', severity: critical} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskalmostfull/ summary: Windows disk space is low description: 'Volume C: on host:9182 has less than 5% free space. Windows may delay space metrics by 10–15 minutes.' - alertname: WindowsDiskAlmostFull eval_time: 16m exp_alerts: [] - name: Healthy resources at the exact thresholds do not fire interval: 1m input_series: - series: 'windows_cpu_time_total{job="windows_exporter", instance="host:9182", core="0", mode="idle"}' values: '0+6x20' - series: 'windows_memory_available_bytes{job="windows_exporter", instance="host:9182"}' values: '10x20' - series: 'windows_memory_physical_total_bytes{job="windows_exporter", instance="host:9182"}' values: '100x20' - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", volume="C:"}' values: '10x20' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", volume="C:"}' values: '100x20' alert_rule_test: - {alertname: WindowsCPUHighUsage, eval_time: 20m, exp_alerts: []} - {alertname: WindowsMemoryHighUsage, eval_time: 20m, exp_alerts: []} - {alertname: WindowsDiskAlmostFull, eval_time: 20m, exp_alerts: []} - name: Prediction fires only for low and declining disk space interval: 1m input_series: - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '1000-1x420' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="C:"}' values: '20000x420' - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="D:"}' values: '1000x420' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="D:"}' values: '20000x420' - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="E:"}' values: '500+1x420' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", cluster="a", volume="E:"}' values: '20000x420' - series: 'windows_logical_disk_free_bytes{job="windows_exporter", instance="host:9182", cluster="b", volume="C:"}' values: '1000x420' - series: 'windows_logical_disk_size_bytes{job="windows_exporter", instance="host:9182", cluster="b", volume="C:"}' values: '20000x420' alert_rule_test: - alertname: WindowsDiskFillingUp eval_time: 60m exp_alerts: [] - alertname: WindowsDiskFillingUp eval_time: 61m exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, volume: 'C:', severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskfillingup/ summary: Windows disk is predicted to fill up description: 'Volume C: on host:9182 is predicted to fill within 24 hours.' - alertname: WindowsDiskFillingUp eval_time: 7h exp_alerts: - exp_labels: {job: windows_exporter, instance: 'host:9182', cluster: a, volume: 'C:', severity: warning} exp_annotations: runbook_url: https://prometheus-community.github.io/windows_exporter/runbooks/windowsdiskfillingup/ summary: Windows disk is predicted to fill up description: 'Volume C: on host:9182 is predicted to fill within 24 hours.' - name: Missing collector metrics do not produce resource alerts interval: 1m input_series: - series: 'up{job="windows_exporter", instance="host:9182"}' values: '1x70' alert_rule_test: - {alertname: WindowsCPUHighUsage, eval_time: 70m, exp_alerts: []} - {alertname: WindowsMemoryHighUsage, eval_time: 70m, exp_alerts: []} - {alertname: WindowsDiskAlmostFull, eval_time: 70m, exp_alerts: []} - {alertname: WindowsDiskFillingUp, eval_time: 70m, exp_alerts: []}