Enterprise Application Availability Test (TCP)

SquaredUp.EAM.Library.Monitor.AvailabilityMonitoring.TCP (UnitMonitor)

Application availability test using a TCP connection test.

Knowledge Base article:

Summary

Application availability test using a TCP connection to a user specified port.

Causes

A failure in this monitor indicates that the specified port may be:

Resolutions

Consult with the application team to resolve this alert.

Element properties:

TargetSquaredUp.EAM.Library.Class.AvailabilityMonitoring.Watcher.TCP
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSquaredUp.EAM.Library.MonitorType.AvailabilityMonitoring.PowerShellScript
RemotableTrue
AccessibilityPublic
Alert Message
Availability test failed (TCP)
A TCP availability test has failed. {0}
RunAsSquaredUp.EAM.Library.SecureReference.AvailabilityMonitoring.TCP

Source Code:

<UnitMonitor ID="SquaredUp.EAM.Library.Monitor.AvailabilityMonitoring.TCP" Accessibility="Public" Enabled="true" Target="SquaredUp.EAM.Library.Class.AvailabilityMonitoring.Watcher.TCP" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="SquaredUp.EAM.Library.MonitorType.AvailabilityMonitoring.PowerShellScript" ConfirmDelivery="false" RunAs="SquaredUp.EAM.Library.SecureReference.AvailabilityMonitoring.TCP">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="SquaredUp.EAM.Library.Monitor.AvailabilityMonitoring.TCP.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Description']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="SuccessCondition" MonitorTypeStateID="SuccessCondition" HealthState="Success"/>
<OperationalState ID="WarningCondition" MonitorTypeStateID="WarningCondition" HealthState="Warning"/>
<OperationalState ID="ErrorCondition" MonitorTypeStateID="ErrorCondition" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>120</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>120</TimeoutSeconds>
<ConfigurationJson>$Target/Property[Type="SquaredUp.EAM.Library.Class.AvailabilityMonitoring.Watcher"]/ConfigurationJson$</ConfigurationJson>
<Script>if ($PSVersionTable.PSVersion.Major -lt 4) {
return New-Object -TypeName PSobject -Property (@{'Success'=$false;'Description'='TCP monitoring is only available from nodes running PowerShell v4 or later.'})
} else {
$testResult = Test-NetConnection -ComputerName $config.address -Port $config.port
return $testResult.TcpTestSucceeded
}
</Script>
<ResponseTimeThreshold>$Target/Property[Type="SquaredUp.EAM.Library.Class.AvailabilityMonitoring.Watcher"]/ResponseTimeThreshold$</ResponseTimeThreshold>
</Configuration>
</UnitMonitor>