获取 Watcher 统计信息 API
编辑获取 Watcher 统计信息 API编辑
检索当前 Watcher 指标。
路径参数编辑
-
emit_stacktraces
- (可选,布尔值)定义是否为每个正在运行的监测器生成堆栈跟踪。默认值为
false
。 -
<metric>
-
(可选,枚举)定义响应中包含哪些其他指标。
-
current_watches
- 在响应中包含当前正在执行的监测器。
-
queued_watches
- 在响应中包含已排队等待执行的监测器。
-
_all
- 在响应中包含所有指标。
-
响应正文编辑
此 API 始终返回基本指标。您可以使用 metric
参数检索更多指标。
-
current_watches
-
(列表)当前正在执行的监测器指标可以洞悉 Watcher 当前正在执行的监测器。对于当前正在执行的每个监测器,都会共享其他信息。这些信息包括
watch_id
、其执行开始时间及其当前执行阶段。To include this metric, the `metric` option should be set to `current_watches` or `_all`. In addition you can also specify the `emit_stacktraces=true` parameter, which adds stack traces for each watch that is being executed. These stack traces can give you more insight into an execution of a watch.
-
queued_watches
-
(列表)Watcher 会调节监测器的执行,以使其执行不会对节点及其资源造成过大的压力。如果同时触发的监测器过多,并且没有足够的容量来执行所有监测器,则某些监测器将排队,等待当前正在执行的监测器完成其执行。已排队的监测器指标可以洞悉这些已排队的监测器。
To include this metric, the `metric` option should include `queued_watches` or `_all`.
示例编辑
以下示例调用 stats
API 来检索基本指标
response = client.watcher.stats puts response
GET _watcher/stats
成功调用将返回类似于以下示例的 JSON 结构
{ "watcher_state": "started", "watch_count": 1, "execution_thread_pool": { "size": 1000, "max_size": 1 } }
Watcher 的当前状态,可以是 |
|
当前注册的监测器数量。 |
|
已触发并当前排队等待执行的监测器数量。 |
|
执行线程池的最大大小,表示并发执行的监测器的最大数量。 |
以下示例将 metric
选项指定为查询字符串参数,并将包含基本指标和有关当前正在执行的监测器的指标
response = client.watcher.stats( metric: 'current_watches' ) puts response
GET _watcher/stats?metric=current_watches
以下示例将 metric
选项指定为 URL 路径的一部分
response = client.watcher.stats( metric: 'current_watches' ) puts response
GET _watcher/stats/current_watches
以下代码段显示了一个成功的 JSON 响应示例,该响应捕获了正在执行的监测器
{ "watcher_state": "started", "watch_count": 2, "execution_thread_pool": { "queue_size": 1000, "max_size": 20 }, "current_watches": [ { "watch_id": "slow_condition", "watch_record_id": "slow_condition_3-2015-05-13T07:42:32.179Z", "triggered_time": "2015-05-12T11:53:51.800Z", "execution_time": "2015-05-13T07:42:32.179Z", "execution_phase": "condition" } ] }
Watcher 当前正在执行的所有监测器的列表。当当前没有监测器正在执行时,将返回一个空数组。捕获的监测器按执行时间降序排序。因此,运行时间最长的监测器始终位于顶部。 |
|
正在执行的监测器的 ID。 |
|
监测器记录的 ID。 |
|
触发器引擎触发监测器的时间。 |
|
执行监测器的时间。这是在执行输入之前的时刻。 |
|
当前监测器执行阶段。可以是 |
以下示例指定了 queued_watches
指标选项,并包含基本指标和已排队的监测器
response = client.watcher.stats( metric: 'queued_watches' ) puts response
GET _watcher/stats/queued_watches
捕获正在执行的监测器的成功 JSON 响应示例
{ "watcher_state": "started", "watch_count": 10, "execution_thread_pool": { "queue_size": 1000, "max_size": 20 }, "queued_watches": [ { "watch_id": "slow_condition4", "watch_record_id": "slow_condition4_223-2015-05-21T11:59:59.811Z", "triggered_time": "2015-05-21T11:59:59.811Z", "execution_time": "2015-05-21T11:59:59.811Z" }, ... ] }