SSAS 2012: Collect Memory Usage on the Server (GB)

Microsoft.SQLServer.2012.AnalysisServices.PerformanceRule.Instance.MemoryUsageOnTheServer (Rule)

The rule collects total memory usage in gigabytes on the server where the SSAS instance is located.

Knowledge Base article:

Summary

The rule collects total memory usage in gigabytes on the server where the SSAS instance is located.

External

Memory configuration and sizing considerations in SQL Server 2012

TechNet documentation for Analysis Services memory properties

TechNet documentation for SSAS Performance Counters

SSAS Multidimensional Performance Guide

Element properties:

TargetMicrosoft.SQLServer.2012.AnalysisServices.Instance
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2012.AnalysisServices.DataSource.ScheduledInstancePerfomanceDataProvider Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring
Mapper ConditionDetection System.Performance.DataGenericMapper Default
WriteToDatabase WriteAction Microsoft.SystemCenter.CollectPerformanceData Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring

Source Code:

<Rule ID="Microsoft.SQLServer.2012.AnalysisServices.PerformanceRule.Instance.MemoryUsageOnTheServer" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.Instance" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2012.AnalysisServices.DataSource.ScheduledInstancePerfomanceDataProvider" RunAs="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring">
<ServiceName>$Target/Property[Type='SQLAS!Microsoft.SQLServer.2012.AnalysisServices.Instance']/ServiceName$</ServiceName>
<PerformanceCounterClassName>ServerHardwareInfo</PerformanceCounterClassName>
<PerformanceCounterPropertyName>UsedPhysicalMemoryKB</PerformanceCounterPropertyName>
<DividerIfGreater>0</DividerIfGreater>
<Divider>1048576</Divider>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</DataSource>
</DataSources>
<ConditionDetection ID="Mapper" TypeID="SystemPerf!System.Performance.DataGenericMapper">
<ObjectName>SSAS Instance</ObjectName>
<CounterName>Memory Usage on the Server (GB)</CounterName>
<InstanceName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.ServerRole"]/InstanceName$</InstanceName>
<Value>$Data/Property[@Name='UsedPhysicalMemoryKB']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WriteToDatabase" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" RunAs="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData" RunAs="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.RunAsProfile.ASMonitoring"/>
</WriteActions>
</Rule>