第十三章 使用系统监视器 - 系统监视器
System Monitor
是一种灵活的、用户可扩展的实用程序,用于监控 数据平台实例,并在一个或多个指标的值表明存在潜在问题时生成通知。如所提供的,System Monitor
包含以下实例监控工具:
-
System Monitor
监控系统状态和资源,根据固定参数生成通知(警报和警告)并跟踪整体系统健康状况。 -
Health Monitor
对关键系统和用户定义的指标进行采样,并将它们与用户可配置的参数和建立的正常值进行比较,当样本超过适用的阈值时生成通知。 -
Application Monitor
对重要的系统指标进行采样,将值存储在本地名称空间中,并使用用户创建的警报定义对其进行评估。触发警报时,它可以生成电子邮件通知或调用指定的类方法。
默认情况下,这三个工具都在 %SYS
命名空间中运行。 System Monitor
和 Application Monitor
可以选择在特定于命名空间的配置和设置下的其他命名空间中运行。可以定义和配置自己的组件,以根据需要在每个命名空间中扩展系统监视器的功能。
系统监视器
System Monitor
对重要的系统状态和资源使用指标进行采样,例如 ECP
连接状态和使用中的锁表百分比,并根据固定状态和阈值生成通知——警报、警告和“状态正常”消息。这些通知被写入消息日志,允许 Log Monitor
从它们生成电子邮件消息(如果配置为这样做)。System Monitor
还维护单一的整体系统健康状态。
系统监视器使用 ^%SYSMONMGR
实用程序进行管理。
本节的其余部分讨论以下主题:
系统监控进程
在配置为在其中运行的每个命名空间中,System Monitor
使用三种类型的类(或 System Monitor
组件)分三个阶段收集和传递系统指标信息。传感器类收集信息,订阅者类评估信息以形成通知,通知器类将通知发布到适当的警报系统。下面更深入地描述了该序列:
- 获取指标信息
传感器类包含用于获取系统或应用程序指标值的方法。例如,系统传感器类 SYS.Monitor.SystemSensors
包括 GetProcessCount()
方法和 GetLockTable()
方法,前者返回 实例的活动进程数,后者返回实例锁表的百分比正在使用。
在固定的时间间隔内,系统监视器调用每个已配置传感器类的 GetSensors()
方法。传感器类可以执行以下操作之一:
- 返回一组传感器名称/值对,由系统监视器传递给订阅者类(在第
2
阶段中描述) - 计算它获得的传感器值并返回通知,由系统监视器发布到通知类(在第
3
阶段中描述)
系统监视器 SYS.Monitor.SystemSensors
提供的传感器类之一返回名称/值数组。另一个 %SYS.Monitor.AppMonSensor
执行自己的计算并生成自己的通知。
- 计算指标信息
订阅者类包含用于计算传感器值和生成通知的方法。在调用每个返回名称/值数组的传感器类之后,系统监视器调用每个订阅者类的 Receive()
方法,用数组填充 SensorReading
属性。对于提供给其 Receive()
方法的每个传感器名称/值对,订阅者类评估该值,并在适当时返回包含文本和严重性代码的通知。
例如,当系统监视器将从 SYS.Monitor.SystemSensors.GetSensors()
返回的名称/值数组传递给订阅者类时:
- 系统订阅者
SYS.Monitor.SystemSubscriber
可能会发现LockTablePercentFull
值超过85
,这是该传感器的警告阈值,并返回包含严重性代码1
和适当文本的通知。 -
Health Monitor
订阅者SYS.Monitor.Health.Control
可能会根据该传感器配置的参数和建立的正常值确定ProcessCount
值过高,并返回包含严重性代码2
和适当文本的通知。
- 生成通知
通知程序类包含将通知传递给一个或多个警报系统的方法。在调用每个传感器类和订阅者类之后,系统监视器调用每个通知程序类的 Post()
方法,用传感器或订阅者类返回的通知填充 Notifications
属性。通知器类然后将每个通知传递给所需的警报方法;例如,当系统通知程序收到系统订阅者为 LockTablePercentFull
和健康监视器订阅者为 ProcessCount
返回的通知时,它会将严重性代码和文本写入消息日志。这种方法允许将通知传递给独立的警报系统,例如互操作性生产警报处理器和 TrakCare
中的处理器,以及用户定义的警报系统。
System Monitor
在实例启动时自动启动,并开始在每个已配置的启动命名空间中调用已配置的传感器类,将传感器值传递给已配置的订阅者类,并将通知依次传递给已配置的通知程序类。可以在每个命名空间的基础上定义和配置自己的系统监视器传感器、订阅者和通知程序类。请参阅本章默认系统监视器组件部分中的默认类。
注意:在紧急情况下,系统监视器可能需要关闭。类方法 %SYS.Monitor.Enabled([flag])
设置、清除和报告系统监视器的状态。如果标志为 0
,系统监视器将不会启动。
网友评论