深入浅出Spark2.1.0度量系统——Source继承体系

本文深入探讨Spark2.1.0的度量系统,重点解析Source抽象及其具体实现ApplicationSource。通过度量源Source的定义、方法和实例,阐述Spark如何实现实时内存数据的监控,以及ApplicationSource如何收集应用状态、运行时长和核心数等相关度量。
摘要由CSDN通过智能技术生成

阅读提示:阅读本文前,最好请阅读《Spark2.1.0——深入浅出度量系统》一文。

         任何监控都离不开度量数据的采集,离线的数据采集很容易做到和被采集模块之间的解耦,但是对于实时度量数据,尤其是那些内存中数据的采集就很难解耦。这就类似于网页监控数据的埋点一样,你要在网页中加入一段额外的js代码(例如Google分析,即便你只是引入一个js文件,这很难让前端工程师感到开心)。还有一类监控,比如在Java Web中增加一个负责监控的Servlet或者一个基于Spring3.0的拦截器,这种方式虽然将耦合度从代码级别降低到配置级别,但却无法有效的对内存中的数据结构进行监控。Spark的度量系统对系统功能来说是在代码层面耦合的,这种牺牲对于能够换取对实时的、处于内存中的数据进行更有效的监控是值得的。

         Spark将度量来源抽象为Source,其定义见代码清单1。

代码清单1         度量源的定义

private[spark] trait Source {
  def sourceName: String
  def metricRegistry: MetricRegistry
}

从代码清单1,可以看到Source是一个特质,其中定义了两个方法:

  • sourceName:度量源的名称;
  • metricRegistry:当前度量源的注册表。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值