获取 Watcher 统计数据 API
编辑获取 Watcher 统计数据 API
编辑检索当前的 Watcher 指标。
路径参数
编辑-
emit_stacktraces
- (可选,布尔值)定义是否为每个正在运行的 Watch 生成堆栈跟踪。默认值为
false
。 -
<metric>
-
(可选,枚举)定义响应中包含哪些其他指标。
-
current_watches
- 在响应中包括当前正在执行的 Watch。
-
queued_watches
- 在响应中包括已排队等待执行的 Watch。
-
_all
- 在响应中包括所有指标。
-
响应体
编辑此 API 始终返回基本指标。您可以通过使用 metric
参数检索更多指标。
-
current_watches
-
(列表)当前正在执行的 Watch 指标可以深入了解 Watcher 当前正在执行的 Watch。每个当前正在执行的 Watch 都会共享其他信息。此信息包括
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 会调节 Watch 的执行,使其执行不会给节点及其资源带来过大的压力。如果同时触发的 Watch 过多,并且没有足够的容量来执行所有 Watch,则某些 Watch 会排队等待当前正在执行的 Watch 完成执行。排队的 Watch 指标可以深入了解这些已排队的 Watch。
To include this metric, the `metric` option should include `queued_watches` or `_all`.
示例
编辑以下示例调用 stats
API 来检索基本指标
resp = client.watcher.stats() print(resp)
response = client.watcher.stats puts response
const response = await client.watcher.stats(); console.log(response);
GET _watcher/stats
成功调用会返回类似于以下示例的 JSON 结构
{ "watcher_state": "started", "watch_count": 1, "execution_thread_pool": { "size": 1000, "max_size": 1 } }
Watcher 的当前状态,可以是 |
|
当前注册的 Watch 数量。 |
|
已触发并当前排队等待执行的 Watch 数量。 |
|
执行线程池的最大大小,表示并发执行 Watch 的最大数量。 |
以下示例将 metric
选项指定为查询字符串参数,并将包含有关当前正在执行的 Watch 的基本指标和指标
resp = client.watcher.stats( metric="current_watches", ) print(resp)
response = client.watcher.stats( metric: 'current_watches' ) puts response
const response = await client.watcher.stats({ metric: "current_watches", }); console.log(response);
GET _watcher/stats?metric=current_watches
以下示例将 metric
选项指定为 URL 路径的一部分
resp = client.watcher.stats( metric="current_watches", ) print(resp)
response = client.watcher.stats( metric: 'current_watches' ) puts response
const response = await client.watcher.stats({ metric: "current_watches", }); console.log(response);
GET _watcher/stats/current_watches
以下代码段显示了一个成功的 JSON 响应示例,该响应捕获了正在执行的 Watch
{ "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 当前正在执行的所有 Watch 的列表。当当前没有 Watch 正在执行时,将返回一个空数组。捕获的 Watch 按执行时间降序排序。因此,运行时间最长的 Watch 始终位于顶部。 |
|
正在执行的 Watch 的 ID。 |
|
Watch 记录的 ID。 |
|
触发引擎触发 Watch 的时间。 |
|
执行 Watch 的时间。这正好在执行输入之前。 |
|
当前 Watch 执行阶段。可以是 |
以下示例指定 queued_watches
指标选项,并包含基本指标和已排队的 Watch
resp = client.watcher.stats( metric="queued_watches", ) print(resp)
response = client.watcher.stats( metric: 'queued_watches' ) puts response
const response = await client.watcher.stats({ metric: "queued_watches", }); console.log(response);
GET _watcher/stats/queued_watches
一个成功的 JSON 响应示例,该响应捕获了正在执行的 Watch
{ "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" }, ... ] }