文章
· 十二月 14, 2022 阅读大约需 4 分钟

第十三章 使用系统监视器 - 系统监视器

第十三章 使用系统监视器 - 系统监视器

System Monitor 是一种灵活的、用户可扩展的实用程序,用于监控 数据平台实例,并在一个或多个指标的值表明存在潜在问题时生成通知。如所提供的,System Monitor 包含以下实例监控工具:

  • System Monitor 监控系统状态和资源,根据固定参数生成通知(警报和警告)并跟踪整体系统健康状况。
  • Health Monitor 对关键系统和用户定义的指标进行采样,并将它们与用户可配置的参数和建立的正常值进行比较,当样本超过适用的阈值时生成通知。
  • Application Monitor 对重要的系统指标进行采样,将值存储在本地名称空间中,并使用用户创建的警报定义对其进行评估。触发警报时,它可以生成电子邮件通知或调用指定的类方法。

默认情况下,这三个工具都在 %SYS 命名空间中运行。 System MonitorApplication Monitor 可以选择在特定于命名空间的配置和设置下的其他命名空间中运行。可以定义和配置自己的组件,以根据需要在每个命名空间中扩展系统监视器的功能。

系统监视器

System Monitor 对重要的系统状态和资源使用指标进行采样,例如 ECP 连接状态和使用中的锁表百分比,并根据固定状态和阈值生成通知——警报、警告和“状态正常”消息。这些通知被写入消息日志,允许 Log Monitor 从它们生成电子邮件消息(如果配置为这样做)。System Monitor 还维护单一的整体系统健康状态。

系统监视器使用 ^%SYSMONMGR 实用程序进行管理。

本节的其余部分讨论以下主题:

系统监控进程

在配置为在其中运行的每个命名空间中,System Monitor 使用三种类型的类(或 System Monitor 组件)分三个阶段收集和传递系统指标信息。传感器类收集信息,订阅者类评估信息以形成通知,通知器类将通知发布到适当的警报系统。下面更深入地描述了该序列:

  1. 获取指标信息

传感器类包含用于获取系统或应用程序指标值的方法。例如,系统传感器类 SYS.Monitor.SystemSensors 包括 GetProcessCount() 方法和 GetLockTable() 方法,前者返回 实例的活动进程数,后者返回实例锁表的百分比正在使用。

在固定的时间间隔内,系统监视器调用每个已配置传感器类的 GetSensors() 方法。传感器类可以执行以下操作之一:

  • 返回一组传感器名称/值对,由系统监视器传递给订阅者类(在第 2 阶段中描述)
  • 计算它获得的传感器值并返回通知,由系统监视器发布到通知类(在第 3 阶段中描述)

系统监视器 SYS.Monitor.SystemSensors 提供的传感器类之一返回名称/值数组。另一个 %SYS.Monitor.AppMonSensor 执行自己的计算并生成自己的通知。

  1. 计算指标信息

订阅者类包含用于计算传感器值和生成通知的方法。在调用每个返回名称/值数组的传感器类之后,系统监视器调用每个订阅者类的 Receive() 方法,用数组填充 SensorReading 属性。对于提供给其 Receive() 方法的每个传感器名称/值对,订阅者类评估该值,并在适当时返回包含文本和严重性代码的通知。

例如,当系统监视器将从 SYS.Monitor.SystemSensors.GetSensors() 返回的名称/值数组传递给订阅者类时:

  • 系统订阅者 SYS.Monitor.SystemSubscriber 可能会发现 LockTablePercentFull 值超过 85,这是该传感器的警告阈值,并返回包含严重性代码 1 和适当文本的通知。
  • Health Monitor 订阅者 SYS.Monitor.Health.Control 可能会根据该传感器配置的参数和建立的正常值确定 ProcessCount 值过高,并返回包含严重性代码 2 和适当文本的通知。
  1. 生成通知

通知程序类包含将通知传递给一个或多个警报系统的方法。在调用每个传感器类和订阅者类之后,系统监视器调用每个通知程序类的 Post() 方法,用传感器或订阅者类返回的通知填充 Notifications 属性。通知器类然后将每个通知传递给所需的警报方法;例如,当系统通知程序收到系统订阅者为 LockTablePercentFull 和健康监视器订阅者为 ProcessCount 返回的通知时,它会将严重性代码和文本写入消息日志。这种方法允许将通知传递给独立的警报系统,例如互操作性生产警报处理器和 TrakCare 中的处理器,以及用户定义的警报系统。

System Monitor 在实例启动时自动启动,并开始在每个已配置的启动命名空间中调用已配置的传感器类,将传感器值传递给已配置的订阅者类,并将通知依次传递给已配置的通知程序类。可以在每个命名空间的基础上定义和配置自己的系统监视器传感器、订阅者和通知程序类。请参阅本章默认系统监视器组件部分中的默认类。

注意:在紧急情况下,系统监视器可能需要关闭。类方法 %SYS.Monitor.Enabled([flag]) 设置、清除和报告系统监视器的状态。如果标志为 0,系统监视器将不会启动。

讨论 (0)1
登录或注册以继续