Samza REST服务监视器

2018-08-22 18:31 更新

Samza REST支持向服务添加监视器的功能。监视器本质上是可以定期运行的任务。它为用户提供了定义于特定单个监视器的配置的能力。这些配置通过 Config 实例注入到监视器实例中。

监视器配置

监视器的所有配置键应带有 monitor.{monitorName} 的前缀。由于每个监视器预期具有唯一的名称,因此这些前缀在监视器配置中提供命名空间。

每个监视器都需要以下配置。

名称默认描述
monitor.monitorName.scheduling.interval.ms这定义了名为monitorName的监视器的周期调度间隔(以毫秒为单位)。如果未定义此配置,则默认为60秒。
monitor.monitorName.factory.class必需:这应该包含实现MonitorFactory接口的类的完全限定名称。由工厂实施实例化的监视器将被安排定期执行。预期MonitorFactory接口的自定义实现将createMonitor方法中的Config和MetricsRegistry实例注入到Monitors中。

例如,两个名为 NMTaskMonitor 和 RMTaskMonitor 的监视器的配置应如下定义:

monitor.RMTaskMonitor.factory.class=org.apache.samza.monitor.RMTaskMonitor

  monitor.RMTaskMonitor.scheduling.interval.ms=1000

  monitor.RMTaskMonitor.custom.config.key1=configValue1

  monitor.NMTaskMonitor.factory.class=org.apache.samza.monitor.NMTaskMonitor

  monitor.NMTaskMonitor.scheduling.interval.ms=2000

  monitor.NMTaskMonitor.custom.config.key2=configValue2

实施新的监视器

使用应该定期执行的一些行为来实现 Monitor 界面。监视器是在 SAMZA Rest Service 中调用某些方法的 Java 代码,运行一个 bash 脚本来重新启动失败的 NodeManager,或者清除Host Affinity 剩下的旧的 RocksDB sst 文件。

实现 MonitorFactory 接口,用于实例化 Monitor。每个 Monitor 实现都应该有一个关联的 MonitorFactory 实现,它负责实例化监视器。

向 Samza REST服务添加新的监视器

将 MonitorFactory 实现的完全限定类名添加到 monitor.monitorName.factory.classservice config 中的属性中。将配置密钥 monitor.monitorName.scheduling.interval.ms 设置为调度间隔(以毫秒为单位)。

配置密钥 monitor.monitorName.scheduling.interval.ms 定义方法的周期调度间隔,单位为 monitor()毫秒。

从监视器报告指标

Samza REST服务允许用户从其显示器创建和报告指标。对度量系统的报告指标由度量报告器封装,该指标应在 samza-rest 配置文件中定义。Samza REST服务中度量报告员的配置与Samza Jobs的配置相同。

Samza REST服务资源参考»

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号