Hi everyone!
We've released a production-ready version of the SQL Server MP with the mentioned bug fix. You can read about this release in the blog post here, and download the release here.
Thank you for your feedback, we always appreciate it!
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
After installing the latest SQL MP i started getting these alerts from all my SQL servers.
I guess the main error is this:
Exception Type: System.FormatException
Message: Input string was not in a correct format.
Management Group: -
Module: Microsoft.SQLServer.Core.Module.Helper.ScomModules.Monitoring.MultiValueSpaceHealthCalculator
Version: 7.0.34.0
Error(s) was(were) occurred:
Exception Type: Microsoft.EnterpriseManagement.HealthService.MalformedDataItemException
Message: Exception has been thrown by the target of an invocation.
Source: Microsoft.Mom.Modules.DataTypes
Exception Type: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
Stack Trace:
Exception Type: System.FormatException
Message: Input string was not in a correct format.
Source: mscorlib
State:
The configuration properties are:
ManagementGroupName = -
Publisher = SQLMonitoringWindows
HealthCalcMode = 1
StateType = TwoState
Threshold11 = 10
Threshold12 = 0
Threshold21 = 5000
Threshold22 = 0
TimeoutSeconds = 300
Value1Name = DBLogFreeSpacePercent
Value1StateDirection = BadLessT1
Value2Name = DBLogFreeSpaceMB
Value2StateDirection = BadLessT1
---------- Exception: ----------
Exception Type: Microsoft.EnterpriseManagement.HealthService.MalformedDataItemException
Message: Exception has been thrown by the target of an invocation.
Source: Microsoft.Mom.Modules.DataTypes
Stack Trace:
Hi Jan,
I am also seen the same behaviour and I am not quite sure what it actually means. Will try to find some more information and post back here.
If my reply was helpful please don't forget to upvote and/or accept as answer, thank you!
Regards,
Stoyan
Got it to, but only on my SQL 2019 servers.
I wonder if it because the new function 'Health Calculation Mode' override for space monitoring?
Hi everyone!
I'm Dmitry from the SQL Server MP team.
The following issue became in the latest release of the SQL Server MP when we're added a new one 'Health Calculation Mode' override for space monitoring workflows targeted to the database. This override allows you to define how you want to monitor free space in your environment. You can now track the health state based on the 'Threshold' parameter expressed as a percentage term (%) or as a capacity metric (MB). The override is added to the following monitors: "LOG Free Space Left", "ROWS Data Free Space Left", "FILESTREAM Data Free Space Left", "In-Memory OLTP Data Free Space Left".
Unfortunately, this feature turned out to be non-working for those environments in which the localization of the operating system where SQL Server is installed is different from the English one, namely, where the separator in the format of time/date/etc is different from the dot (.)
For example, the following PowerShell script could help to detect the affected locales:
[System.Globalization.CultureInfo]::GetCultures('AllCultures') `
| ? {$_.NumberFormat.NumberDecimalSeparator -ne '.'} `
| Select -Property Name, @{Name = 'Separator'; Expression = {$_.NumberFormat.NumberDecimalSeparator}}
If you see your OS locale from the script output below, then you are affected.
Now we've added a known issue in the operations guide with the workaround as:
Disable monitors "ROWS Data Free Space Left" and "LOG Free Space Left".
We know that this way is not correct, but to avoid such errors, you can do so for now.
Currently, we're working on a fix for this issue, which will be available in the next release of the SQL Server MP soon, around the beginning of February.
If you guys have some questions or suggestions you can always write us on SQLMPsfeedback@microsoft.com - this way will be the fastest and most effective.
Stay tuned here so as not to miss the new release.
That error comes from the following ConditionDetection module : https://systemcenter.wiki/?GetElement=Microsoft.SQLServer.Windows.ConditionDetection.MultiValueSpaceHealthCalculator&Type=ConditionDetectionModuleType&ManagementPack=Microsoft.SQLServer.Windows.Monitoring&Version=7.0.34.0
It's used in two monitor types :
https://systemcenter.wiki/?GetElement=Microsoft.SQLServer.Windows.MonitorType.Database.DBSize&Type=UnitMonitorType&ManagementPack=Microsoft.SQLServer.Windows.Monitoring&Version=7.0.34.0
https://systemcenter.wiki/?GetElement=Microsoft.SQLServer.Windows.MonitorType.Database.TransactionLogSpaceFreePercent&Type=UnitMonitorType&ManagementPack=Microsoft.SQLServer.Windows.Monitoring&Version=7.0.34.0
Basically, these monitor types are fetching the DB Size using this datasource : https://systemcenter.wiki/?GetElement=Microsoft.SQLServer.Windows.ProbeAction.DBSize&Type=ProbeActionModuleType&ManagementPack=Microsoft.SQLServer.Windows.Monitoring&Version=7.0.34.0
And they output the result in a propertybag that is later interpretated by the ConditionDetection.
In the error, we can see that the ConditionDetection has an issue because "MalformedDataItemException". Said otherwise, the Property Bag it receives from the datasource is somehow incorrect.
You may have other errors showing that the datasource is failing, otherwise what you can do to get a better understanding of is going on is running a workflow trace : https://monitoringguys.com/2020/12/15/tracing-scom-workflows-with-powershell/