SQL server MP Bug

Jan Pettersson 26 Reputation points
2022-01-13T09:09:44.157+00:00

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:

Operations Manager
Operations Manager
A family of System Center products that provide infrastructure monitoring, help ensure the predictable performance and availability of vital applications, and offer comprehensive monitoring for datacenters and cloud, both private and public.
1,413 questions
0 comments No comments
{count} vote

Accepted answer
  1. Dmitry Kalashnikov 86 Reputation points
    2022-02-22T11:50:52.13+00:00

    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!

    1 person found this answer helpful.
    0 comments No comments

6 additional answers

Sort by: Most helpful
  1. SChalakov 10,261 Reputation points MVP
    2022-01-14T08:51:41.687+00:00

    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

    1 person found this answer helpful.

  2. Johan 6 Reputation points
    2022-01-18T09:35:21.603+00:00

    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?

    1 person found this answer helpful.

  3. Dmitry Kalashnikov 86 Reputation points
    2022-01-27T09:58:18.163+00:00

    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.

    1 person found this answer helpful.

  4. CyrAz 5,181 Reputation points
    2022-01-18T11:57:21.55+00:00

    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/