Cluster Disk - Free Space Monitor (\%)

Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk.FreeSpacePercent (UnitMonitor)

This monitor checks the free space in \% of the targeted cluster disk.

Knowledge Base article:

Summary

The amount of free disk space on the Cluster Disk has exceeded the threshold. System performance may be adversely affected and the ability to add or modify existing files on the Cluster Disk may not be possible until additional free space is made available.

Configuration

The Cluster Disk Free Space monitoring routine is a high configurable solution that enables Operators to set varying threshold values for system and non-system logical disk volumes. In addition separate threshold values can be set for Warning and Error states.

Since Cluster Disk may vary in size from a few gigabytes to many terabytes or more the Cluster Disk Free Space monitoring routine requires that an Operator indicate both the Percentage based threshold values that must be passed before the Warning and Error thresholds reached. This means that in order for the threshold to be reached the Percentage based threshold values for the System or Non-System Drive must be breached.

Causes

When existing files grow in size and the new files are added, the free space is taken up on a Cluster Disk. When the amount of free space on the Cluster disk falls below the threshold, the state for the Cluster disk will change.

Resolutions

To increase the amount of available disk space, do one or more of the following:

Element properties:

TargetMicrosoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk
Parent MonitorMicrosoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk.FreeSpaceMonitorRollup
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.ClusterDisksMonitoring.DiskState.Monitortype
RemotableTrue
AccessibilityPublic
Alert Message
Free Space (\%) For Cluster Disk Alert
{0}: The cluster Disk {1} Named as {2} is running out of disk space. The value that exceeded the warning or error threshold is {4}\% free space. (Partition: {3}).
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk.FreeSpacePercent" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk" ParentMonitorID="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk.FreeSpaceMonitorRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.ClusterDisksMonitoring.DiskState.Monitortype" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk"]/ClusterResourceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk"]/ClusterDiskName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk"]/PartitionName$</AlertParameter4>
<AlertParameter5>$Data/Context/Value$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MonitorOk" MonitorTypeStateID="MonitorOk" HealthState="Success"/>
<OperationalState ID="MonitorWarning" MonitorTypeStateID="MonitorWarning" HealthState="Warning"/>
<OperationalState ID="MonitorError" MonitorTypeStateID="MonitorError" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<LogSuccessEvent>false</LogSuccessEvent>
<ScriptGroupId>ClusterDiskMonitoring</ScriptGroupId>
<TargetComputer>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</TargetComputer>
<ClusterName>$Target/Property[Type="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk"]/ClusterName$</ClusterName>
<TimeoutSeconds>300</TimeoutSeconds>
<ClusterResourceName>$Target/Property[Type="Microsoft.Windows.Server.ClusterDisksMonitoring.ClusterDisk"]/ClusterResourceName$</ClusterResourceName>
<CounterName>Free space / Percent</CounterName>
<DriveErrorThreshold>5</DriveErrorThreshold>
<DriveWarningThreshold>10</DriveWarningThreshold>
</Configuration>
</UnitMonitor>