0

由于某些原因,我需要获取 Heron Cluster 的吞吐量,但 Heron UI 中没有指标。那么你对如何监控 Heron Cluster 的吞吐量有什么想法吗?谢谢。

运行heron-explorer的结果如下:

yitian@heron01:~$ heron-explorer metrics aurora/yitian/devel SentenceWordCountTopology
[2018-08-03 21:02:09 +0000] [INFO]: Using tracker URL: http://127.0.0.1:8888
'spout' metrics:
container id           jvm-uptime-secs    jvm-process-cpu-load    jvm-memory-used-mb    emit-count    ack-count    fail-count
-------------------  -----------------  ----------------------  --------------------  ------------  -----------  ------------
container_3_spout_6               2053                0.253257                 146     1.13288e+07  1.13278e+07             0
container_4_spout_7               2091                0.150625                 137.5   1.1624e+07   1.16228e+07           231

'count' metrics:
container id            jvm-uptime-secs    jvm-process-cpu-load    jvm-memory-used-mb    emit-count    execute-count    ack-count    fail-count
--------------------  -----------------  ----------------------  --------------------  ------------  ---------------  -----------  ------------
container_6_count_12               2092                0.184742               155.167             0      4.6026e+07   4.6026e+07              0
container_5_count_9                2091                0.387867               146                 0      4.60069e+07  4.60069e+07             0
container_6_count_11               2092                0.184488               157.833             0      4.58158e+07  4.58158e+07             0
container_4_count_8                2091                0.443688               129.833             0      4.58722e+07  4.58722e+07             0
container_5_count_10               2091                0.382577               118.5               0      4.60091e+07  4.60091e+07             0

'split' metrics:
container id           jvm-uptime-secs    jvm-process-cpu-load    jvm-memory-used-mb    emit-count    execute-count    ack-count    fail-count
-------------------  -----------------  ----------------------  --------------------  ------------  ---------------  -----------  ------------
container_1_split_2               2091                0.143034               75.3333   4.59453e+07      4.59453e+06  4.59453e+06             0
container_3_split_5               2042                1.12248                79.1667   4.64862e+07      4.64862e+06  4.64862e+06             0
container_2_split_3               2150                0.139837               83.6667   4.59443e+07      4.59443e+06  4.59443e+06             0
container_1_split_1               2091                0.145702              104.167    4.59454e+07      4.59454e+06  4.59454e+06             0
container_2_split_4               2150                0.138453              106.333    4.59443e+07      4.59443e+06  4.59443e+06             0
[2018-08-03 21:02:09 +0000] [INFO]: Elapsed time: 0.031s.
4

1 回答 1

2

您可以使用execute-countsink 组件来测量拓扑的输出。如果您的每个组件的输入:输出比率为 1:1,那么这将是您的吞吐量。

但是,如果您将元组窗口化成批次或拆分元组(例如将句子分成单个单词),那么事情会变得更加复杂。emit-count您可以通过查看您的 spout 组件来获取拓扑的输入。然后,您可以使用它来比较您execute-counts创建自己的吞吐量指标。

以编程方式访问这些指标的一种简单方法是通过Heron Tracker REST API。您可以使用您选择的语言的 HTTP 库(如 Python 请求)来查询最近 3 小时的数据以获取正在运行的拓扑。如果您需要超过 3 小时的数据(拓扑 TMaster 存储的最大值),您将需要使用其他指标接收器之一将指标发送到外部数据库。Heron 目前提供用于保存到本地文件、Graphite 或 Prometheus 的接收器。InfluxDB 支持正在开发中。

于 2018-07-31T14:35:41.513 回答