- 介绍
- Ack 框架的实现
- 使用 Maven 构建 Storm 应用
- Clojure DSL
- 命令行操作
- Storm 常用模式
- 基础概念
- 配置
- 创建 Storm 新项目
- 定义 Storm 的非 JVM 语言 DSL
- 分布式 RPC
- FAQ 常见问题
- 容错性
- 消息的可靠性保障
- Hooks
- 本地模式
- Metrics
- 多语言接口协议
- 在生产环境中运行拓扑
- 序列化
- 配置开发环境
- Storm 集群安装配置
- Storm 与 Kestrel
- Storm 内部技术实现
- 源码组织结构
- Trident API 概述
- Trident Spouts
- Trident State
- Trident 教程
- 问题与解决
- 教程
- 理解 Storm 拓扑的并行度(parallelism)概念
- 使用非 JVM 语言开发
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Metrics
Storm 提供了一个可以获取整个拓扑中所有的统计信息的度量接口。Storm 内部通过该接口可以跟踪各类统计数字:executor 和 acker 的数量、每个 bolt 的平均处理时延、worker 使用的最大堆容量等等,这些信息都可以在 Nimbus 的 UI 界面中看到。
Metric 类型
使用 Metrics 只需要实现一个接口方法:getValueAndReset
,在方法中可以查找汇总值、并将该值复位为初始值。例如,在 MeanReducer 中就实现了通过运行总数除以对应的运行计数的方式来求取均值,然后将两个值都重新设置为 0。
Storm 提供了以下几种 metric 类型:
- AssignableMetric -- 将 metric 设置为指定值。此类型在两种情况下有用:1. metric 本身为外部设置的值;2. 你已经另外计算出了汇总的统计值。
- CombinedMetric -- 可以对 metric 进行关联更新的通用接口。
- CountMetric -- 返回 metric 的汇总结果。可以调用
incr()
方法来将结果加一;调用incrBy(n)
方法来将结果加上给定值。- MultiCountMetric -- 返回包含一组 CountMetric 的 HashMap
- ReducedMetric
- MeanReducer -- 跟踪由它的
reduce()
方法提供的运行状态均值结果(可以接受Double
、Integer
、Long
等类型,内置的均值结果是Double
类型)。MeanReducer 确实是一个相当棒的家伙。 - MultiReducedMetric -- 返回包含一组 ReducedMetric 的 HashMap
- MeanReducer -- 跟踪由它的
Metric Consumer
构建自定义 metric
内建的 Metric
builtin_metrics.clj 为内建的 metrics 设置了数据结构,以及其他框架组件可以用于更新的虚拟方法。metrics 本身是在回调代码中实现计算的 -- 请参考 clj/b/s/daemon/daemon/executor.clj
中的 ack-spout-msg
的例子。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论