Windows 2012 Logical Disk Free Space Monitor

Microsoft.Windows.Server.6.2.Legacy.LogicalDisk.FreeSpace.Monitor (UnitMonitor)

Monitor the percentage free space and number of free MBytes remaining on a logical disk. Only when both the low percentage free space threshold and low number of free MBytes threshold is the disk flagged as having low disk free space.

Knowledge Base article:

Summary

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

Resolutions

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

To view recent disk space history you can use the following view:

Start Disk Capacity View

Configuration

The Logical 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 logical disk volumes may vary in size from a few gigabytes to many terabytes or more the Logical Disk Free Space monitoring routine requires that an Operator indicate both the Megabyte and 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 both the Megabyte and Percentage based threshold values for the System or Non-System Drive must be breached.

The default threshold values for the Logical Disk Free Space monitoring routine include:

Please note that Overrides can be used to change any of the threshold values that are defined above. In addition these thresholds can be applied to all logical disk volume instances in the management group or if needed separate threshold values can be defined for specific logical disk volume instances.

Element properties:

TargetMicrosoft.Windows.Server.6.2.LogicalDisk
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.6.2.Legacy.LogicalDisk.FreeSpace.Monitortype
RemotableTrue
AccessibilityPublic
Alert Message
Logical Disk Free Space is low
The disk {0} on computer {1} is running out of disk space. The values that exceeded the threshold are {2}\% free space and {3} free Mbytes.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.6.2.Legacy.LogicalDisk.FreeSpace.Monitor" Accessibility="Public" Enabled="true" Target="WindowsServer!Microsoft.Windows.Server.6.2.LogicalDisk" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.6.2.Legacy.LogicalDisk.FreeSpace.Monitortype" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.6.2.Legacy.LogicalDisk.FreeSpace.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Windows!Microsoft.Windows.LogicalDevice"]/DeviceID$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='PctFree']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MbFree']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderWarningThresholds" MonitorTypeStateID="UnderWarningThresholds" HealthState="Success"/>
<OperationalState ID="OverWarningUnderErrorThresholds" MonitorTypeStateID="OverWarningUnderErrorThresholds" HealthState="Warning"/>
<OperationalState ID="OverErrorThresholds" MonitorTypeStateID="OverErrorThresholds" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>3600</IntervalSeconds>
<TargetComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</TargetComputerName>
<SystemDriveWarningMBytesThreshold>500</SystemDriveWarningMBytesThreshold>
<SystemDriveWarningPercentThreshold>10</SystemDriveWarningPercentThreshold>
<SystemDriveErrorMBytesThreshold>300</SystemDriveErrorMBytesThreshold>
<SystemDriveErrorPercentThreshold>5</SystemDriveErrorPercentThreshold>
<NonSystemDriveWarningMBytesThreshold>2000</NonSystemDriveWarningMBytesThreshold>
<NonSystemDriveWarningPercentThreshold>10</NonSystemDriveWarningPercentThreshold>
<NonSystemDriveErrorMBytesThreshold>1000</NonSystemDriveErrorMBytesThreshold>
<NonSystemDriveErrorPercentThreshold>5</NonSystemDriveErrorPercentThreshold>
<DiskLabel>$Target/Property[Type="Windows!Microsoft.Windows.LogicalDevice"]/DeviceID$</DiskLabel>
<TimeoutSeconds>360</TimeoutSeconds>
<DebugFlag>false</DebugFlag>
</Configuration>
</UnitMonitor>