【发布时间】:2019-11-15 04:46:24
【问题描述】:
我想访问一个 JSON 文件,该文件包含拓扑中所有鹭实例的所有详细信息(即 heron-ui 中显示的所有数据)。我找不到获取这些详细信息的方法。我特别在寻找背压指标。
【问题讨论】:
标签: heron
我想访问一个 JSON 文件,该文件包含拓扑中所有鹭实例的所有详细信息(即 heron-ui 中显示的所有数据)。我找不到获取这些详细信息的方法。我特别在寻找背压指标。
【问题讨论】:
标签: heron
要访问heron-ui中显示的数据,也许“heron-explorer”已经足够了?
另外,heron-tracker 有一个很好的并且或多或少有文档记录的 REST-API。
但是,这些示例非常基础,很难找到所有可用的指标。
编辑:发现这个Config that tells which metrics are accessible via REST-API
编辑2:如果跟踪器没有公开您需要的指标,只需修改“tmaster-sink”配置下的配置文件“metrics_sinks.yaml”。添加您在 metricsmgr-x.y JSON 文件(见下文)但不在 REST-API 中找到的指标。
您可以查看 .herondata/topologies/[cluster]/[role]/[topology-name] 中的日志。在那里您可以找到名为“metrics.json.metricsmgr-x.y”的 JSON 文件。打开它们并检查感兴趣的值是否在其中(每个文件包含不同的数据,所以花点时间来探索一下)。也许使用 JSON 解析器来提高可读性 (JSON Parser)。然后搜索指标名称(例如 __jvm-memory-mb-total)并构建您的跟踪器请求,例如(在我的 localhost、默认环境、本地集群上本地运行跟踪器)
curl "http://localhost:8888/topologies/metrics?cluster=local&environ=default&topology=WordCountStreamletTopology&component=filter1&metricname=__jvm-memory-mb-total"
不要忽略下划线“__”。
但是,根据您真正需要背压信息的目的,您可能会或可能不会找到相关指标。到目前为止,我还没有通过 REST-api 获得日志中列出的所有指标,仍在弄清楚...
编辑:想通了:找到这个Config that tells which metrics are accessible via REST-API
编辑2:如果跟踪器没有公开您需要的指标,只需修改“tmaster-sink”配置下的配置文件“metrics_sinks.yaml”。添加您在 metricsmgr-x.y JSON 文件(见下文)但不在 REST-API 中找到的指标。
确保正确设置配置(请参阅Configs for instances)。例如,设置队列的大小以避免或强制执行背压。
【讨论】:
除了上面的答案,如果你只是想找出 UI 中显示的所有信息,Heron-UI 有所有这些信息的端点。您可以通过在浏览器中检查网络请求来找到这些端点。
例如,
获取拓扑的逻辑规划: http://HERONUI-SERVICE/topologies/CLUSTER/ENV/TOPOLOGY/logicalplan.json
获取过去 3 小时的指标 __complete-latency 的值: http://HERONUI-SERVICE/topologies/metrics?cluster=CLUSTER&environ=ENV&topology=TOPOLOGY&component=COMPONENT&metricname=__complete-latency/default&interval=10800
如果需要,可以添加新的端点。这是 Heron UI 中所有可用端点的处理程序的源代码。
https://github.com/apache/incubator-heron/blob/master/heron/tools/ui/src/python/main.py#L74
【讨论】: