Last Data Point

QND.OMS.ManagedSystemLastData.Monitor (UnitMonitor)

Knowledge Base article:

Summary

The monitor checks the last data point submitted to OMS for every manged system and alerts if any of them is not sending data accordingly to two different thresholds. By default the monitor alerts only on obsolete data (older than 24 hours by defualt). If an alert is raised is highly probable your loosing data in an unrecoverrable way. Possibile states

For more info see GitHub Wiki

Configuration

The following options can be configured on this monitor:

Option

Definition

Default

IntervalSeconds

Amount of time in seconds between checks of the connectivity status

3611 seconds

Sync Time

Optional time wihtin the hour to sync the check exectuion to

TimeoutSeconds

Amount of time in seconds to wait for script execution and hance for API Search response

30 seconds

TraceLevel

Debugging level (0-5) anything above 2 will log clear text password in eventlog

2

DelayLateHours

Number of hours after which consider an agent in a late/delayed state

1

DelayObsoleteHours

Number of hours after which consider an agent in a obsolete critical state

24

Causes

There two known causes of errors if the issue affects a small part of your managed system

The alert context tries to give a specific cause for any issue

Resolutions

Check the two known causes and fix any issue

Element properties:

TargetQND.OMS.ManagedSystem
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeQND.OMS.ManagedSystem.LastData.MT
RemotableTrue
AccessibilityPublic
Alert Message
QND - OMS System Data obsolete
{0} data is obsolete. Last data point received {1} hours ago
RunAsDefault

Source Code:

<UnitMonitor ID="QND.OMS.ManagedSystemLastData.Monitor" Accessibility="Public" Enabled="true" Target="QND.OMS.ManagedSystem" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="QND.OMS.ManagedSystem.LastData.MT" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="QND.OMS.ManagedSystemLastData.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="QND.OMS.ManagedSystem"]/Computer$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name="AgeHours"]$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Late" MonitorTypeStateID="Late" HealthState="Warning"/>
<OperationalState ID="Obsolete" MonitorTypeStateID="Obsolete" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>3611</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>900</TimeoutSeconds>
<TraceLevel>2</TraceLevel>
<Computer>$Target/Property[Type="QND.OMS.ManagedSystem"]/Computer$</Computer>
<DelayLateHours>2</DelayLateHours>
<ClientId>$Target/Host/Host/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.Subscription"]/ClientId$</ClientId>
<SubscriptionId>$Target/Host/Host/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.Subscription"]/SubscriptionId$</SubscriptionId>
<!-- <ResourceGroupId>$Target/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.ArmService"]/ResourceGroup$</ResourceGroupId> -->
<Proxy>$Target/Host/Host/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.Subscription"]/ProxyServerAddress$</Proxy>
<AuthBaseAddress>$Target/Host/Host/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.Subscription"]/Authority$</AuthBaseAddress>
<ResourceBaseAddress>$Target/Host/Host/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.Subscription"]/ArmServiceUri$</ResourceBaseAddress>
<AADUserName>$RunAs[Name="Azure!Microsoft.SystemCenter.MicrosoftAzure.RunAsProfile.ADCredentials"]/UserName$</AADUserName>
<AADPassword>$RunAs[Name="Azure!Microsoft.SystemCenter.MicrosoftAzure.RunAsProfile.ADCredentials"]/Password$</AADPassword>
<ResourceURI>$Target/Host/Property[Type="Azure!Microsoft.SystemCenter.MicrosoftAzure.AzureServiceGeneric"]/ServiceId$</ResourceURI>
<OMSAPIVersion>2015-03-20</OMSAPIVersion>
<MaxAgeHours>2</MaxAgeHours>
<LookbackHours>240</LookbackHours>
<DataTypes/>
</Configuration>
</UnitMonitor>