Windows 10 and above Aggregate Disk Trends Disk

Microsoft.Windows.Client.Win10.ComputerGroup.DiskTrendsDisk (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 disk type in the enterprise

Causes

Disk Failure

Resolutions

Having a reliable set of troubleshooting guidelines can increase your odds of recovering from a hard drive failure. This checklist walks you through a proven hard drive troubleshooting process.

Physical connections

Element properties:

TargetMicrosoft.SystemCenter.DataWarehouse
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Disks of a certain model 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 model of hard drives. Please look at the Alert Context section to find out more about the hard drive model that is suffering. To get a bigger picture of the state of disk health, please view Windows 10 and above Disk Health Report; to get a list of the machines that are suffering, please view Windows 10 and above Disk Failure Report.

Member Modules:

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

Source Code:

<Rule ID="Microsoft.Windows.Client.Win10.ComputerGroup.DiskTrendsDisk" 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.Win10.SQLProvider">
<Query>
SELECT 1, Win10.DiskData.Model
FROM Win10.vWin10DiskFailureAggregationDisk AS Result
JOIN Win10.DiskData ON (Win10.DiskData.DiskDataRowId = Result.DiskDataRowId)
WHERE (SELECT SUM(NumDrives)
FROM Win10.vWin10DiskFailureAggregationDisk AS ThisWeek
WHERE ThisWeek.DiskDataRowId = Result.DiskDataRowId
AND DATEDIFF(day, ThisWeek.DateTime, GETUTCDATE()) &lt;= 7
GROUP BY ThisWeek.DiskDataRowId
)
&gt;= 1.2 *
(SELECT SUM(NumDrives)
FROM Win10.vWin10DiskFailureAggregationDisk AS LastWeek
WHERE LastWeek.DiskDataRowId = Result.DiskDataRowId
AND DATEDIFF(day, LastWeek.DateTime, GETUTCDATE()) &lt;= 14
AND DATEDIFF(day, LastWeek.DateTime, GETUTCDATE()) &gt; 7
GROUP BY LastWeek.DiskDataRowId
)
GROUP BY Win10.DiskData.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.Win10.ComputerGroup.DiskTrendsDisk.AlertMessage"]$</AlertMessageId>
<AlertParameters/>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>