Skip to main content

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
^IRIS.Temp.SysMetrics("DatabaseSpace")
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
^IRIS.Temp.SysMetrics("ECPClientBytesPerSecond")
^IRIS.Temp.SysMetrics("ECPServerBytesPerSecond")
^IRIS.Temp.SysMetrics("JournalSpace")
Value = OK, Troubled, Warning based on space in journal directory
^IRIS.Temp.SysMetrics("JournalSpace","Space")=space available if not OK
^IRIS.Temp.SysMetrics("LockTable","PerCentUsed")
^IRIS.Temp.SysMetrics("LockTable","Available")
^IRIS.Temp.SysMetrics("LockTable","Used")
^IRIS.Temp.SysMetrics("LockTable")
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("Shadows",name)=Status
^IRIS.Temp.SysMetrics("Shadows",name,"Latency")
^IRIS.Temp.SysMetrics("ShadowConnections")=OK or "Troubled" based on status on this data source
^IRIS.Temp.SysMetrics("ShadowConnections",ip,"Latency")=latency
^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

Properties

property Alert as %String;
Property methods: AlertDisplayToLogical(), AlertGet(), AlertIsValid(), AlertLogicalToDisplay(), AlertLogicalToOdbc(), AlertNormalize(), AlertSet()
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(), 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()

Methods

method CheckMVSensors() as %Status
Check reading against Max Value sensor

Use a running average to smooth readings.

method CheckSystem() as %Status
Check various elements of system state
method ConsoleMaxSizeGet() as %Integer
method GetAppErrs() as %Status
method GetDatabase() as %Status
Check Database size
method GetECP() as %Status
method GetJournals() as %Status
Get journal space availability.
method GetLockTable() as %Status
method GetPaging() as %Status
method GetProcesses() as %Status
method GetSMH() as %Status
method GetShadows() as %Status
method GetTrans() as %Status
method GetWD() as %Status
method GloStats() as %Status
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
Inherited description: USER MUST IMPLEMENT THIS METHOD This method is called when the sensor array is filled.
method Start() as %Status
Inherited description: USER MAY IMPLEMENT THIS METHOD This method is called when the subscriber class is created.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab