Partition Storage Free Space

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

The monitor reports a warning, when the available free space for the partition storage location drops below Critical Threshold setting expressed as percentage of the sum of the total size of the folder plus disk free space. The monitor reports a critical alert, when the available space drops below Warning Threshold. The monitor does not monitor available space for the default storage location for SSAS instance.

Knowledge Base article:

Summary

The monitor reports a warning, when the available free space for the partition storage location drops below Critical Threshold setting, expressed as percentage of the sum of the total size of the folder plus free space. The monitor reports a critical alert, when the available space drops below Warning Threshold. The monitor does not monitor available space for the default storage location for SSAS instance.

Causes

When the available disk space as a percentage of the sum of the partition storage location folder size plus disk free space becomes low, the cube can become unhealthy, negatively affecting the performance, or even causing the server to fail. A common cause for this behavior may be fast growing database(s), but could also occur due to other data sharing available disk space with the partition.

Resolutions

The resolution(s) for disk space exhaustion 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 Partition 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, when Partition Free Space (%) performance counter drops below the threshold, but is still higher than Critical Threshold (%).

10

Element properties:

TargetMicrosoft.SQLServer.AnalysisServices.Windows.MultidimensionalPartition
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Partition.FreeSpacePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS: The partition storage folder lacks sufficient disk space.
Only {3}\% of free space is available for SSAS partition folder "{1}", which is less than the configured threshold for the monitor.
Partition: {5}
Cube: {6}
Measure group: {7}
Storage location: {1}
Disk size: {0} GB
Database free space: {4} GB ({3}\%)
Partition size: {2} GB
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Partition.FreeSpace" Target="SQLAS!Microsoft.SQLServer.AnalysisServices.Windows.MultidimensionalPartition" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Partition.FreeSpacePercent" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Partition.FreeSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='TotalSpaceGB']$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.MultidimensionalPartition']/StorageLocation$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='PartitionSizeGB']$</AlertParameter3>
<!--<AlertParameter4>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.MultidimensionalPartition']/MountPoint$</AlertParameter4>-->
<AlertParameter4>$Data/Context/Property[@Name='PartitionFreeSpacePercent']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='AvailableSpaceGB']$</AlertParameter5>
<AlertParameter6>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.MultidimensionalPartition']/PartitionName$</AlertParameter6>
<AlertParameter7>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.MultidimensionalPartition']/CubeName$</AlertParameter7>
<AlertParameter8>$Target/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.MultidimensionalPartition']/MeasureGroup$</AlertParameter8>
</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/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Database']/DatabaseName$</DatabaseName>
<DataDir>$Target/Host/Host/Property[Type='ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance']/DataDir$</DataDir>
<WarningThreshold>10</WarningThreshold>
<CriticalThreshold>5</CriticalThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>