Logical Disk Free Space Monitor

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

Monitors the percentage free space and number of free MBytes remaining on a logical disk. Only when both the low percentage free space and low number of free MBytes thresholds are reached, the disk is flagged as having low disk free space.

Knowledge Base article:

Summary

The amount of free disk space on the logical disk volume has fallen below threshold.

Configuration

The Logical Disk Free Space monitoring routine is a highly configurable solution that allows Operators to set various 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 indicates 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 are as follows:

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.

Causes

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

Element properties:

TargetMicrosoft.Windows.Server.10.0.LogicalDisk
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.10.0.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.10.0.Legacy.LogicalDisk.FreeSpace.Monitor" Accessibility="Public" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.LogicalDisk" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.10.0.Legacy.LogicalDisk.FreeSpace.Monitortype" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.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>