Database Free Space

Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.TabularDatabase.FreeSpace (UnitMonitor)

The monitor reports a warning, when the available disk space for SSAS tabular database storage folder drops below Warning Threshold setting, expressed as percentage of the sum of the estimated database storage folder size and disk free space. The monitor reports a critical alert, when the available space drops below Critical Threshold.

Knowledge Base article:

Summary

SSAS tabular database folder may grow over time, while the data is being continuously added from data sources. Therefore, the administrators would like to monitor the issue to be sure that there is always sufficient space left in the storage location for the database folder.

Causes

When the available disk space on the drive, where the database storage location is configured becomes too low, some failures may occur, delaying user’s queries, or affecting other applications as well, which share the same allocation of disk space. This appears to be unhealthy for the server. Consequently, it is important to monitor and ensure that a sufficient margin of available space remains, to avoid costly and time-consuming failures, which may incur production outages or delays. It is especially actual for databases that tend to grow quickly over time.

Resolutions

The resolution(s) for low available disk space depend upon the root causes, which must be investigated in each case when this issue occurs. The condition may be alleviated by any of the following potential approaches:

External

Configure Server Properties in Analysis Services

TechNet documentation for SSAS Performance Counters

Overridable Parameters

Name

Description

Default Value

Critical Threshold (%)

Health State changes to Critical, when Database Free Space (%) performance counter drops below the threshold.

5

Enabled

Enables or disables the workflow

Yes

Generates Alerts

Defines whether the workflow generates an Alert

Yes

Interval Seconds

The recurring interval of time in seconds in which to run the workflow.

900

Synchronization Time

The synchronization time specified by using a 24-hour format. May be omitted.

 

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

300

Warning Threshold (%)

Health State changes to Warning, if Database Free Space (%) performance counter drops below the threshold, but is still higher than Critical Threshold (%).

10

Element properties:

TargetMicrosoft.SQLServer.AnalysisServices.Windows.TabularDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Database.FreeSpacePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS: Insufficient Database Free Space
Only {4}\% of free space is available for SSAS tabular instance database folder "{2}", which is less than the configured threshold for the monitor.
Storage location: {2}
Disk size: {1} GB
Database free space: {5} GB ({4}\%)
Database folder size: {3} GB
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.TabularDatabase.FreeSpace" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.AnalysisServices.Windows.TabularDatabase" TypeID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Database.FreeSpacePercent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.TabularDatabase.DatabaseFreeSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='UsedOnDatabaseDriveGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='TotalOnDatabaseDriveGB']$</AlertParameter2>
<AlertParameter3>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Database']/StorageLocation$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DatabaseDefaultForlderSizeGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='DatabaseFreeSpacePercent']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='DatabaseFreeSpaceGB']$</AlertParameter6>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Above" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="Below" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/ServiceName$</ServiceName>
<DatabaseName>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Database']/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/ConnectionString$</ConnectionString>
<DataDir>$Target/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/DataDir$</DataDir>
<CriticalThreshold>5</CriticalThreshold>
<WarningThreshold>10</WarningThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>