InterSystems IRIS Data Platform 2020.4 > Class Reference > %SYS namespace > SYS.Monitor.SystemSubscriber


Implements the Subscriber component of the System Monitor. This evaluates the SystemSensors, may post alerts using the Log Monitor, and stores the Sensors for use by the Dashboard.

The Manager Portal Dashboard status and metrics are stored in the following globals:

^IRIS.Temp.SysMetrics("LastBackup") /* date/time of last backup
^IRIS.Temp.SysMetrics("Processes",i) /* cpu time for 'n' highest processes
^IRIS.Temp.SysMetrics("ProcessesGlobal",i) /* global refs for 'n' highest processes
^IRIS.Temp.SysMetrics("CSPSessions") /* number of current CSP sessions
Value = OK, Troubled, Warning based on space available > 5MB, < 5MB, <2MB
^IRIS.Temp.SysMetrics("DatabaseSpace", directory) = directory of low database
^IRIS.Temp.SysMetrics("SeriousAlerts") /* text of alerts found in alerts.log
^IRIS.Temp.SysMetrics("ECPServers") /* status of ECP servers if system is a client
Value = OK, Troubled, Warning based on status
^IRIS.Temp.SysMetrics("ECPServers",name)=name of troubled server
^IRIS.Temp.SysMetrics("ECPClients") /* status of connections if system is a server
Value = OK, Troubled, Warning based on status
^IRIS.Temp.SysMetrics("ECPClients",name)=name of troubled client
Value = OK, Troubled, Warning based on space in journal directory
^IRIS.Temp.SysMetrics("JournalSpace","Space")=space available if not OK
Value = OK, Troubled, Warning based PerCent Used > 85%, > 95%
^IRIS.Temp.SysMetrics("ApplicationErrors") /*count of application errors
^IRIS.Temp.SysMetrics("ApplicationErrors", Namespace) /* application errors in namespaces
^IRIS.Temp.SysMetrics("ShadowConnections")=OK or "Troubled" based on status on this data source
^IRIS.Temp.SysMetrics("ShadowConnections","Error",datetime)=error information
^IRIS.Temp.SysMetrics("WriteDaemon") =OK or "Troubled"
A WD is "Troubled" if: The current WD pass is the same as the last sample, AND the number of blocks scheduled to be written is not 0 AND the total count of buffers which are being written as part of the current pass is not 0, AND the time in this pass has at least the exceeded the expected WD pass interval by 10 seconds.

Property Inventory

Method Inventory


property Alert as %String;
Property methods: AlertDisplayToLogical(), AlertGet(), AlertIsValid(), AlertLogicalToDisplay(), AlertLogicalToOdbc(), AlertNormalize(), AlertSet(), AlertfileDisplayToLogical(), AlertfileGet(), AlertfileIsValid(), AlertfileLogicalToDisplay(), AlertfileLogicalToOdbc(), AlertfileNormalize(), AlertfileSet()
property Alertfile as %String;
alerts file
Property methods: AlertfileDisplayToLogical(), AlertfileGet(), AlertfileIsValid(), AlertfileLogicalToDisplay(), AlertfileLogicalToOdbc(), AlertfileNormalize(), AlertfileSet()
property AppErrsDay as %Integer;
Property methods: AppErrsDayDisplayToLogical(), AppErrsDayGet(), AppErrsDayIsValid(), AppErrsDayLogicalToDisplay(), AppErrsDayNormalize(), AppErrsDaySet()
property ApplicationErrors as %Integer [ InitialExpression = 0 ];
Property methods: ApplicationErrorsDisplayToLogical(), ApplicationErrorsGet(), ApplicationErrorsIsValid(), ApplicationErrorsLogicalToDisplay(), ApplicationErrorsNormalize(), ApplicationErrorsSet()
property ConsoleLog as %String;
Property methods: ConsoleLogDisplayToLogical(), ConsoleLogGet(), ConsoleLogIsValid(), ConsoleLogLogicalToDisplay(), ConsoleLogLogicalToOdbc(), ConsoleLogNormalize(), ConsoleLogSet()
property ConsoleMaxSize as %Integer [ Calculated ];
Property methods: ConsoleMaxSizeDisplayToLogical(), ConsoleMaxSizeGet(), ConsoleMaxSizeIsValid(), ConsoleMaxSizeLogicalToDisplay(), ConsoleMaxSizeNormalize()
property Curtime as %Numeric;
Property methods: CurtimeDisplayToLogical(), CurtimeGet(), CurtimeIsValid(), CurtimeLogicalToDisplay(), CurtimeNormalize(), CurtimeSet()
property DatabaseSpace as %String [ InitialExpression = "OK" ];
Property methods: DatabaseSpaceDisplayToLogical(), DatabaseSpaceGet(), DatabaseSpaceIsValid(), DatabaseSpaceLogicalToDisplay(), DatabaseSpaceLogicalToOdbc(), DatabaseSpaceNormalize(), DatabaseSpaceSet()
property ECPClients as %String [ InitialExpression = "OK" ];
Property methods: ECPClientsDisplayToLogical(), ECPClientsGet(), ECPClientsIsValid(), ECPClientsLogicalToDisplay(), ECPClientsLogicalToOdbc(), ECPClientsNormalize(), ECPClientsSet()
property ECPServers as %String [ InitialExpression = "OK" ];
Property methods: ECPServersDisplayToLogical(), ECPServersGet(), ECPServersIsValid(), ECPServersLogicalToDisplay(), ECPServersLogicalToOdbc(), ECPServersNormalize(), ECPServersSet()
property ECPTransState as %String [ InitialExpression = 0 ];
Property methods: ECPTransStateDisplayToLogical(), ECPTransStateGet(), ECPTransStateIsValid(), ECPTransStateLogicalToDisplay(), ECPTransStateLogicalToOdbc(), ECPTransStateNormalize(), ECPTransStateSet()
property JournalSpace as %String [ InitialExpression = "OK" ];
Property methods: JournalSpaceDisplayToLogical(), JournalSpaceGet(), JournalSpaceIsValid(), JournalSpaceLogicalToDisplay(), JournalSpaceLogicalToOdbc(), JournalSpaceNormalize(), JournalSpaceSet()
property LastBackup as %String;
Property methods: LastBackupDisplayToLogical(), LastBackupGet(), LastBackupIsValid(), LastBackupLogicalToDisplay(), LastBackupLogicalToOdbc(), LastBackupNormalize(), LastBackupSet()
property LastCRefs as %Integer;
Property methods: LastCRefsDisplayToLogical(), LastCRefsGet(), LastCRefsIsValid(), LastCRefsLogicalToDisplay(), LastCRefsNormalize(), LastCRefsSet()
property LastGRefs as %Integer [ InitialExpression = 0 ];
Property methods: LastGRefsDisplayToLogical(), LastGRefsGet(), LastGRefsIsValid(), LastGRefsLogicalToDisplay(), LastGRefsNormalize(), LastGRefsSet()
property LastLTPer as %Numeric;
Last Lock Table percentage use
Property methods: LastLTPerDisplayToLogical(), LastLTPerGet(), LastLTPerIsValid(), LastLTPerLogicalToDisplay(), LastLTPerNormalize(), LastLTPerSet()
property LastSRefs as %Integer;
Property methods: LastSRefsDisplayToLogical(), LastSRefsGet(), LastSRefsIsValid(), LastSRefsLogicalToDisplay(), LastSRefsNormalize(), LastSRefsSet()
property LastTime as %Numeric;
Property methods: LastTimeDisplayToLogical(), LastTimeGet(), LastTimeIsValid(), LastTimeLogicalToDisplay(), LastTimeNormalize(), LastTimeSet()
property Lastwdpass as %Integer;
Last WD pass
Property methods: LastwdpassDisplayToLogical(), LastwdpassGet(), LastwdpassIsValid(), LastwdpassLogicalToDisplay(), LastwdpassNormalize(), LastwdpassSet()
property Lastwdtime as %Numeric;
Property methods: LastwdtimeDisplayToLogical(), LastwdtimeGet(), LastwdtimeIsValid(), LastwdtimeLogicalToDisplay(), LastwdtimeNormalize(), LastwdtimeSet()
property LockTable as %String [ InitialExpression = "OK" ];
Property methods: LockTableDisplayToLogical(), LockTableGet(), LockTableIsValid(), LockTableLogicalToDisplay(), LockTableLogicalToOdbc(), LockTableNormalize(), LockTableSet()
property PagingState as %String [ InitialExpression = 0 ];
Property methods: PagingStateDisplayToLogical(), PagingStateGet(), PagingStateIsValid(), PagingStateLogicalToDisplay(), PagingStateLogicalToOdbc(), PagingStateNormalize(), PagingStateSet()
property SMHState as %String [ InitialExpression = "OK" ];
Property methods: SMHStateDisplayToLogical(), SMHStateGet(), SMHStateIsValid(), SMHStateLogicalToDisplay(), SMHStateLogicalToOdbc(), SMHStateNormalize(), SMHStateSet()
property SeriousAlerts as %Integer [ InitialExpression = 0 ];
Property methods: SeriousAlertsDisplayToLogical(), SeriousAlertsGet(), SeriousAlertsIsValid(), SeriousAlertsLogicalToDisplay(), SeriousAlertsNormalize(), SeriousAlertsSet()
property ShadowConnections as %String [ InitialExpression = "OK" ];
Property methods: ShadowConnectionsDisplayToLogical(), ShadowConnectionsGet(), ShadowConnectionsIsValid(), ShadowConnectionsLogicalToDisplay(), ShadowConnectionsLogicalToOdbc(), ShadowConnectionsNormalize(), ShadowConnectionsSet()
property Shadows as %String [ InitialExpression = "OK" ];
Property methods: ShadowsDisplayToLogical(), ShadowsGet(), ShadowsIsValid(), ShadowsLogicalToDisplay(), ShadowsLogicalToOdbc(), ShadowsNormalize(), ShadowsSet()
property TopProcess as %Integer [ InitialExpression = 10 ];
Number of 'top' processes to collect. Taken from ^SYS("MONITOR","TOP")
Property methods: TopProcessDisplayToLogical(), TopProcessGet(), TopProcessIsValid(), TopProcessLogicalToDisplay(), TopProcessNormalize(), TopProcessSet()
property TransState as %String [ InitialExpression = 0 ];
Property methods: TransStateDisplayToLogical(), TransStateGet(), TransStateIsValid(), TransStateLogicalToDisplay(), TransStateLogicalToOdbc(), TransStateNormalize(), TransStateSet()
property WDCycleTime as %Integer;
Property methods: WDCycleTimeDisplayToLogical(), WDCycleTimeGet(), WDCycleTimeIsValid(), WDCycleTimeLogicalToDisplay(), WDCycleTimeNormalize(), WDCycleTimeSet()
property WDSuspended as %Boolean [ InitialExpression = 0 ];
Property methods: WDSuspendedDisplayToLogical(), WDSuspendedGet(), WDSuspendedIsValid(), WDSuspendedLogicalToDisplay(), WDSuspendedNormalize(), WDSuspendedSet()
property WriteDaemon as %String [ InitialExpression = "OK" ];
Property methods: WriteDaemonDisplayToLogical(), WriteDaemonGet(), WriteDaemonIsValid(), WriteDaemonLogicalToDisplay(), WriteDaemonLogicalToOdbc(), WriteDaemonNormalize(), WriteDaemonSet()


method CheckMVSensors() as %Status [ Language = objectscript ]
Check reading against Max Value sensor

Use a running average to smooth readings.

method CheckSystem() as %Status [ Language = objectscript ]
Check various elements of system state
method ConsoleMaxSizeGet() as %Integer [ Language = objectscript ]
method GetAppErrs() as %Status [ Language = objectscript ]
method GetDatabase() as %Status [ Language = objectscript ]
Check Database size
method GetECP() as %Status [ Language = objectscript ]
method GetJournals() as %Status [ Language = objectscript ]
Get journal space availability.
method GetLockTable() as %Status [ Language = objectscript ]
method GetPaging() as %Status [ Language = objectscript ]
method GetProcesses() as %Status [ Language = objectscript ]
method GetSMH() as %Status [ Language = objectscript ]
method GetShadows() as %Status [ Language = objectscript ]
method GetTrans() as %Status [ Language = objectscript ]
method GetWD() as %Status [ Language = objectscript ]
method GloStats() as %Status [ Language = objectscript ]
Get system metric sample A return code of $$$OK indicates there is a new sample instance. A return code of 0 indicates there is no sample instance.
method Receive() as %Status [ Language = objectscript ]
Inherited description: USER MUST IMPLEMENT THIS METHOD This method is called when the sensor array is filled.
method Start() as %Status [ Language = objectscript ]
Inherited description: USER MAY IMPLEMENT THIS METHOD This method is called when the subscriber class is created.

Inherited Members

Inherited Properties

Inherited Methods