DB Log File Space (rollup)

Microsoft.SQLServer.2014.Database.DBLogFileSpaceMonitorRollUp (DependencyMonitor)

The monitor oversees the space available in all transaction log files in the database and on related media. The space available on the media hosting transaction log files is only included as part of the available space if auto grow is enabled for at least one transaction log 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 transaction log files in the database and on related media. The space available on the media hosting the log files is only included as part of the space available if auto grow is enabled for at least one of the files. This monitor is a dependency (rollup) monitor.

Causes

An unhealthy state is caused by having low available space across all log files. Low available space can be caused by:

This monitor aggregates the space available for each log file within a database depending on each file’s configuration:

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.Database
Parent MonitorMicrosoft.SQLServer.2014.Database.DBLogFileSpaceMonitor
AlgorithmBestOf
Source MonitorMicrosoft.SQLServer.2014.Monitoring.DBLogFileSpaceMonitor
RelationshipMicrosoft.SQLServer.2014.DBHostsLogFile
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: Log files are running out of space
The database {0} in SQL instance {1} on computer {2} is running out of log file space. See knowledge section for more details.

Source Code:

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