Vista Aggregate Shell Performance Trends

Microsoft.Windows.Client.Vista.ComputerGroup.ShellPerfTrends (Rule)

Knowledge Base article:

Summary

This rule raises an alert when there is an alarming trend in the increase of shell performance issues in any given computer type in the enterprise

Causes

Shell performance degradation

Element properties:

TargetMicrosoft.SystemCenter.DataWarehouse
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Windows Vista Computers of a certain computer type in your enterprise suffered 20\% more shell performance issues this week than last week
There has been a trend of increased Shell Performance Degradation detected in computers of a certain type. Please look at the Alert Context section to find out more about the computer type that is suffering. To get a bigger picture of the state of performance health and to get a list of the machines that are suffering, please view the Windows Vista Shell Performance Report.

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.Client.Vista.SQLProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.Client.Vista.ComputerGroup.ShellPerfTrends" Target="SCDW!Microsoft.SystemCenter.DataWarehouse" Enabled="true" ConfirmDelivery="true" DiscardLevel="60" Remotable="true" Priority="Normal">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.Windows.Client.Vista.SQLProvider">
<Query>
SELECT 1, Vista.ComputerData.Manufacturer + ' ' + Vista.ComputerData.Model
FROM Vista.vShellPerfAggregationComputer AS Result
JOIN Vista.ComputerData ON (Vista.ComputerData.ComputerDataRowId = Result.ComputerDataRowId)
WHERE (SELECT SUM(NumComputers)
FROM Vista.vShellPerfAggregationComputer AS ThisWeek
WHERE ThisWeek.ComputerDataRowId = Result.ComputerDataRowId
AND DATEDIFF(day, ThisWeek.DateTime, GETUTCDATE()) &lt;= 7
GROUP BY ThisWeek.ComputerDataRowId
)
&gt;= 1.2 *
(SELECT SUM(NumComputers)
FROM Vista.vShellPerfAggregationComputer AS LastWeek
WHERE LastWeek.ComputerDataRowId = Result.ComputerDataRowId
AND DATEDIFF(day, LastWeek.DateTime, GETUTCDATE()) &lt;= 14
AND DATEDIFF(day, LastWeek.DateTime, GETUTCDATE()) &gt; 7
GROUP BY LastWeek.ComputerDataRowId
)
GROUP BY Vista.ComputerData.Manufacturer + ' ' + Vista.ComputerData.Model
</Query>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.Client.Vista.ComputerGroup.ShellPerfTrends.AlertMessage"]$</AlertMessageId>
<AlertParameters/>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>