节点统计信息 API
编辑节点统计信息 API编辑
节点统计信息 API 检索有关 Logstash 的运行时统计信息。
curl -XGET 'localhost:9600/_node/stats/<types>'
其中 <types>
是可选的,用于指定要返回的统计信息类型。
默认情况下,将返回所有统计信息。您可以通过在逗号分隔列表中组合以下任何类型来限制返回的信息
获取 JVM 统计信息,包括有关线程、内存使用情况、垃圾回收器和运行时间的统计信息。 |
|
获取进程统计信息,包括有关文件描述符、内存消耗和 CPU 使用情况的统计信息。 |
|
获取 Logstash 实例的事件相关统计信息(无论创建和销毁了多少个管道)。 |
|
获取 Logstash 实例的流量相关统计信息(无论创建和销毁了多少个管道)。 |
|
获取有关每个 Logstash 管道的运行时统计信息。 |
|
获取有关配置重新加载成功和失败的运行时统计信息。 |
|
获取有关 Logstash 在容器中运行时 cgroup 的运行时统计信息。 |
|
获取与Geoip 过滤器插件一起使用的数据库的统计信息。 |
有关可应用于所有 Logstash 监控 API 的选项列表,请参阅通用选项。
JVM 统计信息编辑
以下请求返回包含 JVM 统计信息的 JSON 文档
curl -XGET 'localhost:9600/_node/stats/jvm?pretty'
示例响应
{ "jvm" : { "threads" : { "count" : 49, "peak_count" : 50 }, "mem" : { "heap_used_percent" : 14, "heap_committed_in_bytes" : 309866496, "heap_max_in_bytes" : 1037959168, "heap_used_in_bytes" : 151686096, "non_heap_used_in_bytes" : 122486176, "non_heap_committed_in_bytes" : 133222400, "pools" : { "survivor" : { "peak_used_in_bytes" : 8912896, "used_in_bytes" : 288776, "peak_max_in_bytes" : 35782656, "max_in_bytes" : 35782656, "committed_in_bytes" : 8912896 }, "old" : { "peak_used_in_bytes" : 148656848, "used_in_bytes" : 148656848, "peak_max_in_bytes" : 715849728, "max_in_bytes" : 715849728, "committed_in_bytes" : 229322752 }, "young" : { "peak_used_in_bytes" : 71630848, "used_in_bytes" : 2740472, "peak_max_in_bytes" : 286326784, "max_in_bytes" : 286326784, "committed_in_bytes" : 71630848 } } }, "gc" : { "collectors" : { "old" : { "collection_time_in_millis" : 607, "collection_count" : 12 }, "young" : { "collection_time_in_millis" : 4904, "collection_count" : 1033 } } }, "uptime_in_millis" : 1809643 } }
进程统计信息编辑
以下请求返回包含进程统计信息的 JSON 文档
curl -XGET 'localhost:9600/_node/stats/process?pretty'
示例响应
{ "process" : { "open_file_descriptors" : 184, "peak_open_file_descriptors" : 185, "max_file_descriptors" : 10240, "mem" : { "total_virtual_in_bytes" : 5486125056 }, "cpu" : { "total_in_millis" : 657136, "percent" : 2, "load_average" : { "1m" : 2.38134765625 } } } }
事件统计信息编辑
以下请求返回包含 Logstash 实例的事件相关统计信息的 JSON 文档
curl -XGET 'localhost:9600/_node/stats/events?pretty'
示例响应
{ "events" : { "in" : 293658, "filtered" : 293658, "out" : 293658, "duration_in_millis" : 2324391, "queue_push_duration_in_millis" : 343816 }
流量统计信息编辑
以下请求返回包含 Logstash 实例的流量速率的 JSON 文档
curl -XGET 'localhost:9600/_node/stats/flow?pretty'
示例响应
{ "flow" : { "input_throughput" : { "current": 189.720, "lifetime": 201.841 }, "filter_throughput" : { "current": 187.810, "lifetime": 201.799 }, "output_throughput" : { "current": 191.087, "lifetime": 201.761 }, "queue_backpressure" : { "current": 0.277, "lifetime": 0.031 }, "worker_concurrency" : { "current": 1.973, "lifetime": 1.721 } } }
当给定流量指标窗口的速率为无穷大时,它将显示为字符串("Infinity"
或 "-Infinity"
)。当分子指标在窗口期间发生变化而速率的分母指标没有变化时,就会发生这种情况。
流量速率可以让我们了解 Logstash 实例或单个管道当前相对于自身在一段时间内的表现。这使我们能够为该 API 也提供的累计值指标赋予意义,并确定实例或管道的行为是否比过去更好或更差。
以下流量速率适用于整个 logstash 进程及其每个管道。此外,管道可能具有其他流量速率,具体取决于其配置。
流量速率 | 定义 |
---|---|
|
该指标以每秒事件数表示,是事件被推送到管道队列中的速率相对于挂钟时间 ( |
|
该指标以每秒事件数表示,是事件流经管道过滤阶段的速率相对于挂钟时间 ( |
|
该指标以每秒事件数表示,是事件流经管道输出阶段的速率相对于挂钟时间 ( |
|
这是一个无单位指标,表示所有工作线程花费的累计时间相对于挂钟时间 ( 当管道的 当进程的顶级 |
|
这是一个无单位指标,表示所有输入因将事件推送到其管道队列中而被阻塞所花费的累计时间,相对于挂钟时间 ( 虽然“零”值表示对队列没有反向压力,但该指标的大小高度依赖于管道的形状及其输入。如果管道数量或形状发生变化,则不能将其用于比较一个管道与另一个管道,甚至不能将一个进程与自身进行比较。只有一个单线程输入的管道最多可以贡献 1.00,而其输入具有数百个入站连接的管道可能会对该组合值贡献更高的数字。 此外,对于正在拉取数据的管道来说,一定量的反向压力是正常且预期的,因为这种反向压力允许它们减慢速度并以其下游管道可以容忍的速率拉取数据。 |
每个流量统计信息都包括一个或多个最近时间窗口的速率
流量窗口 | 可用性 | 定义 |
---|---|---|
|
稳定 |
最近约 10 秒 |
|
稳定 |
相关管道或进程的生存期 |
|
技术预览版 |
最近约 1 分钟 |
|
技术预览版 |
最近约 5 分钟 |
|
技术预览版 |
最近约 15 分钟 |
|
技术预览版 |
最近约 1 小时 |
|
技术预览版 |
最近约 24 小时 |
标记为“技术预览版”的流量速率窗口可能会随时更改,恕不另行通知。Logstash 的未来版本可能会根据社区反馈为每个速率包含更多、更少或不同的窗口。
管道统计信息编辑
以下请求返回包含管道统计信息的 JSON 文档,包括
curl -XGET 'localhost:9600/_node/stats/pipelines?pretty'
示例响应
{ "pipelines" : { "test" : { "events" : { "duration_in_millis" : 365495, "in" : 216610, "filtered" : 216485, "out" : 216485, "queue_push_duration_in_millis" : 342466 }, "flow" : { "input_throughput" : { "current" : 603.1, "lifetime" : 575.4 }, "filter_throughput" : { "current" : 604.2, "lifetime" : 575.1 }, "output_throughput" : { "current" : 604.8, "lifetime" : 575.1 }, "queue_backpressure" : { "current" : 0.214, "lifetime" : 0.937 }, "worker_concurrency" : { "current" : 0.941, "lifetime" : 0.9709 }, "worker_utilization" : { "current" : 93.092, "lifetime" : 92.187 } }, "plugins" : { "inputs" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-1", "events" : { "out" : 216485, "queue_push_duration_in_millis" : 342466 }, "flow" : { "throughput" : { "current" : 603.1, "lifetime" : 590.7 } }, "name" : "beats" } ], "filters" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-2", "events" : { "duration_in_millis" : 55969, "in" : 216485, "out" : 216485 }, "failures" : 216485, "patterns_per_field" : { "message" : 1 }, "flow" : { "worker_utilization" : { "current" : 16.71, "lifetime" : 15.27 }, "worker_millis_per_event" : { "current" : 2829, "lifetime" : 0.2585 } }, "name" : "grok" }, { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-3", "events" : { "duration_in_millis" : 3326, "in" : 216485, "out" : 216485 }, "flow" : { "worker_utilization" : { "current" : 1.042, "lifetime" : 0.9076 }, "worker_millis_per_event" : { "current" : 0.01763, "lifetime" : 0.01536 } }, "name" : "geoip" } ], "outputs" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-4", "events" : { "duration_in_millis" : 278557, "in" : 216485, "out" : 216485 }, "flow" : { "worker_utilization" : { "current" : 75.34, "lifetime" : 76.01 }, "worker_millis_per_event" : { "current" : 1.276, "lifetime" : 1.287 } }, "name" : "elasticsearch" } ] }, "reloads" : { "last_error" : null, "successes" : 0, "last_success_timestamp" : null, "last_failure_timestamp" : null, "failures" : 0 }, "queue" : { "type" : "memory" } }, "test2" : { "events" : { "duration_in_millis" : 2222229, "in" : 87247, "filtered" : 87247, "out" : 87247, "queue_push_duration_in_millis" : 1532 }, "flow" : { "input_throughput" : { "current" : 301.7, "lifetime" : 231.8 }, "filter_throughput" : { "current" : 207.2, "lifetime" : 231.8 }, "output_throughput" : { "current" : 207.2, "lifetime" : 231.8 }, "queue_backpressure" : { "current" : 0.735, "lifetime" : 0.0006894 }, "worker_concurrency" : { "current" : 8.0, "lifetime" : 5.903 }, "worker_utilization" : { "current" : 100, "lifetime" : 75.8 } }, "plugins" : { "inputs" : [ { "id" : "d7ea8941c0fc48ac58f89c84a9da482107472b82-1", "events" : { "out" : 87247, "queue_push_duration_in_millis" : 1532 }, "flow" : { "throughput" : { "current" : 301.7, "lifetime" : 238.1 } }, "name" : "twitter" } ], "filters" : [ ], "outputs" : [ { "id" : "d7ea8941c0fc48ac58f89c84a9da482107472b82-2", "events" : { "duration_in_millis" : 2222229, "in" : 87247, "out" : 87247 }, "flow" : { "worker_utilization" : { "current" : 100, "lifetime" : 75.8 }, "worker_millis_per_event" : { "current" : 33.6, "lifetime" : 25.47 } }, "name" : "elasticsearch" } ] }, "reloads" : { "last_error" : null, "successes" : 0, "last_success_timestamp" : null, "last_failure_timestamp" : null, "failures" : 0 }, "queue" : { "type" : "memory" } } } }
您可以通过包含管道 ID 来查看特定管道的统计信息。在以下示例中,管道的 ID 为 test
curl -XGET 'localhost:9600/_node/stats/pipelines/test?pretty'
示例响应
{ "pipelines" : { "test" : { "events" : { "duration_in_millis" : 365495, "in" : 216485, "filtered" : 216485, "out" : 216485, "queue_push_duration_in_millis" : 2283 }, "flow" : { "input_throughput" : { "current" : 871.3, "lifetime" : 575.1 }, "filter_throughput" : { "current" : 874.8, "lifetime" : 575.1 }, "output_throughput" : { "current" : 874.8, "lifetime" : 575.1 }, "queue_backpressure" : { "current" : 0, "lifetime" : 0.006246 }, "worker_concurrency" : { "current" : 1.471, "lifetime" : 0.9709 }, "worker_utilization" : { "current" : 74.54, "lifetime" : 46.10 }, "queue_persisted_growth_bytes" : { "current" : 8731, "lifetime" : 0.0106 }, "queue_persisted_growth_events" : { "current" : 0.0, "lifetime" : 0.0 } }, "plugins" : { "inputs" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-1", "events" : { "out" : 216485, "queue_push_duration_in_millis" : 2283 }, "flow" : { "throughput" : { "current" : 871.3, "lifetime" : 590.7 } }, "name" : "beats" } ], "filters" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-2", "events" : { "duration_in_millis" : 55969, "in" : 216485, "out" : 216485 }, "failures" : 216485, "patterns_per_field" : { "message" : 1 }, "flow" : { "worker_utilization" : { "current" : 10.53, "lifetime" : 7.636 }, "worker_millis_per_event" : { "current" : 0.3565, "lifetime" : 0.2585 } }, "name" : "grok" }, { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-3", "events" : { "duration_in_millis" : 3326, "in" : 216485, "out" : 216485 }, "name" : "geoip", "flow" : { "worker_utilization" : { "current" : 1.743, "lifetime" : 0.4538 }, "worker_millis_per_event" : { "current" : 0.0590, "lifetime" : 0.01536 } } } ], "outputs" : [ { "id" : "35131f351e2dc5ed13ee04265a8a5a1f95292165-4", "events" : { "duration_in_millis" : 278557, "in" : 216485, "out" : 216485 }, "flow" : { "worker_utilization" : { "current" : 62.27, "lifetime" : 38.01 }, "worker_millis_per_event" : { "current" : 2.109, "lifetime" : 1.287 } }, "name" : "elasticsearch" } ] }, "reloads" : { "last_error" : null, "successes" : 0, "last_success_timestamp" : null, "last_failure_timestamp" : null, "failures" : 0 }, "queue": { "type" : "persisted", "capacity": { "max_unread_events": 0, "page_capacity_in_bytes": 67108864, "max_queue_size_in_bytes": 1073741824, "queue_size_in_bytes": 3885 }, "data": { "path": "/pipeline/queue/path", "free_space_in_bytes": 936886480896, "storage_type": "apfs" }, "events": 0, "events_count": 0, "queue_size_in_bytes": 3885, "max_queue_size_in_bytes": 1073741824 } } } }
管道流量速率编辑
API 响应中的每个管道条目都包含许多管道范围内的流量速率,例如 input_throughput
、worker_concurrency
和 queue_backpressure
,以提供对事件流经管道的可见性。
使用持久队列配置时,管道的 flow
将包含额外的速率,以提供对管道持久队列运行状况的可见性
流量速率 | 定义 |
---|---|
|
该指标以每秒事件数表示,是队列中未确认事件数量的变化率,相对于挂钟时间 ( |
|
该指标以每秒字节数表示,是持久队列在磁盘上的大小的变化率,相对于挂钟时间 ( 注意:PQ 在磁盘上的大小包括未确认事件和包含一个或多个未处理事件的页面中先前确认的事件。这意味着它会随着单个事件的添加而逐渐增长,但每次回收整个已处理事件页面时都会大量缩小(阅读更多信息:PQ 磁盘垃圾回收)。 |
|
这是一个无单位指标,表示此单个插件使用的可用工作线程时间的百分比 ( 当 当 |
插件流量编辑
还有其他几个插件级别的流量可用,它们有助于识别单个插件的问题。
流量速率 | 插件类型 | 定义 |
---|---|---|
|
输入 |
此指标以每秒事件数表示,是此输入插件将事件推送到管道队列的速率,相对于挂钟时间 ( |
|
过滤器、输出 |
这是一个无单位指标,表示此单个插件使用的可用工作线程时间的百分比 ( |
|
过滤器、输出 |
此指标以每个事件花费的工作线程毫秒数表示 ( |
重新加载统计信息编辑
以下请求返回一个 JSON 文档,其中显示有关配置重新加载成功和失败的信息。
curl -XGET 'localhost:9600/_node/stats/reloads?pretty'
示例响应
{ "reloads": { "successes": 0, "failures": 0 } }
操作系统统计信息编辑
当 Logstash 在容器中运行时,以下请求返回一个包含 cgroup 信息的 JSON 文档,以便您更准确地查看 CPU 负载,包括容器是否受到限制。
curl -XGET 'localhost:9600/_node/stats/os?pretty'
示例响应
{ "os" : { "cgroup" : { "cpuacct" : { "control_group" : "/elastic1", "usage_nanos" : 378477588075 }, "cpu" : { "control_group" : "/elastic1", "cfs_period_micros" : 1000000, "cfs_quota_micros" : 800000, "stat" : { "number_of_elapsed_periods" : 4157, "number_of_times_throttled" : 460, "time_throttled_nanos" : 581617440755 } } } } }
Geoip 数据库统计信息编辑
您可以监控与 Geoip 过滤器插件 一起使用的 geoip 数据库的统计信息。
curl -XGET 'localhost:9600/_node/stats/geoip_download_manager?pretty'
有关更多信息,请参阅 Geoip 过滤器插件文档中的 数据库指标。