Vista Aggregate Disk Trends Computer

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

Knowledge Base article:

Summary

This rule raises an alert when there is an alarming trend in the increase of disk failures in any given computer type in the enterprise

Causes

Disk failures

Element properties:

TargetMicrosoft.SystemCenter.DataWarehouse
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Disks in a certain computer type in your enterprise suffered 20\% more disk failures this week than last week
There has been a trend of increased disk failure detected in a certain computer 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 disk health, please view the Windows Vista Disk Health Report and to get a list of the machines that are suffering, please view the Windows Vista Disk Failure 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.DiskTrendsComputer" 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.vDiskFailureAggregationComputer AS Result
JOIN Vista.ComputerData ON (Vista.ComputerData.ComputerDataRowId = Result.ComputerDataRowId)
WHERE (SELECT SUM(NumDrives)
FROM Vista.vDiskFailureAggregationComputer AS ThisWeek
WHERE ThisWeek.ComputerDataRowId = Result.ComputerDataRowId
AND DATEDIFF(day, ThisWeek.DateTime, GETUTCDATE()) &lt;= 7
GROUP BY ThisWeek.ComputerDataRowId
)
&gt;= 1.2 *
(SELECT SUM(NumDrives)
FROM Vista.vDiskFailureAggregationComputer 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.DiskTrendsComputer.AlertMessage"]$</AlertMessageId>
<AlertParameters/>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>