java - 在Storm中,有没有办法计算由于超时而失败的元组数量?

标签 java apache-storm

我正在尝试围绕我们的 Storm 拓扑开发一些报告,我们想要报告的一个指标是由于超时而失败的元组数量。

据我了解,当元组未能在超时长度之前完成时,Storm 会自动使元组失败,但这似乎发生在“幕后”,而且我没有找到一种方法来区分超时失败与其他类型的失败失败。

有什么方法可以公开或捕获这些信息吗?

最佳答案

如果考虑 Storm 的 WebUI,每个 bolt 都会有一个失败元组的计数。这些计数仅是 Bolt 手动失败的元组(即通过 OutputCollector.fail(...) 失败),不包括遇到超时的元组。 Spout 有一个失败元组的总体计数器。因此,您可以简单地总结所有 Bolt 上手动失败的元组数量,并从全局 Spout 计数中减去 if 以获得超时的元组数量。

关于java - 在Storm中,有没有办法计算由于超时而失败的元组数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910326/

相关文章:

mysql - 当我在分布式模式下将它用作 Storm 的持久性存储时,数据库是否应该分布式

java - 方法是否可以知道调用它的对象的类型(即调用它的子类型)

java - 如何在 Java/中打开 Netbeans 空文件

hadoop - 将IBM MQ读入Hadoop

java - Storm 三叉戟 : How to use IPartitionedTridentSpout?

java - 如何从 Storm 拓扑主类调用关闭钩子(Hook)?

java - 不抛出 VirtualMachineError 保证

java - 我应该捕获 OutOfMemoryError 吗?

java - 如果之前单击了另一个按钮,如何防止 onClick

java - 重启 Storm 时再次处理来自 Kafka 的所有预处理记录