DB File Space (rollup)

Microsoft.SQLServer.2014.DBFileGroup.DBFileSpaceMonitorRollUp (DependencyMonitor)

The monitor oversees the space available in all file groups in the database and on related media. The space available on the media hosting files is only included as part of the available space if auto grow is enabled for at least one file. This monitor is a dependency (rollup) monitor.

Knowledge Base article:

Summary

Note: This monitor is a dependency (rollup) monitor. The health state for this monitor is determined by best state of any member monitor. Please also review the knowledge base article for related unit monitors.

The monitor oversees the space available in all file groups in the database and on related media. The space available on the media hosting files is only included as part of the space available if auto grow is enabled for at least one file. This monitor is a dependency (rollup) monitor.

Causes

An unhealthy state is caused by having low available for this file group. Low available space can be caused by:

Use the following link to view the performance data: DB File Group Free Space Performance Data

No Auto Grow

For a file that is not configured to grow automatically, available space would be the difference between the size of the file and the used space (size of the data stored in the file).

Auto Grow Enabled

With auto grow enabled, the available disk space is included as part of the available space. In addition to the difference between the file size and the used space, the available space for files with auto grow enabled also includes the free space on the media (but not more than the difference between file max size and current file size).

Low available space for database files that have auto grow could mean that the file is approaching the limits of the hosting logical drive. For files with auto grow enabled with a max size, low available space could also mean that the file is approaching the max size specified for a file.

The available space calculations also take into account that the file can also fail to grow if the file growth step (in MB or %) is greater than the free space available on the media. The same logics applies to files, which have their growth limited by max size setting. In these situations, available free space left on disk is not included as part of the available space because further file expansion is impossible.

Resolutions

This issue may be resolved by either:

See SQL Server Books Online: Files and File Groups Architecture

Overrideable Parameters

Name

Description

Default Value

Enabled

 

Yes

Generates Alerts

 

Yes

Element properties:

TargetMicrosoft.SQLServer.2014.DBFileGroup
Parent MonitorMicrosoft.SQLServer.2014.Database.DBFileGroupSpaceMonitor
AlgorithmBestOf
Source MonitorMicrosoft.SQLServer.2014.Monitoring.DBFileSpaceMonitor
RelationshipMicrosoft.SQLServer.2014.DBFileGroupHostsDBFile
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: File group is running out of space
The file group "{0}" for the database "{1}" in SQL instance "{2}" on computer "{3}" is running out of space. See knowledge section for more details.

Source Code:

<DependencyMonitor ID="Microsoft.SQLServer.2014.DBFileGroup.DBFileSpaceMonitorRollUp" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.DBFileGroup" ParentMonitorID="Microsoft.SQLServer.2014.Database.DBFileGroupSpaceMonitor" Remotable="true" Priority="Normal" RelationshipType="SQL2014Core!Microsoft.SQLServer.2014.DBFileGroupHostsDBFile" MemberMonitor="Microsoft.SQLServer.2014.Monitoring.DBFileSpaceMonitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.DBFileGroup.DBFileSpaceMonitorRollUp.AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.FileGroup"]/GroupName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<Algorithm>BestOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>