【发布时间】:2019-06-26 14:41:04
【问题描述】:
我有一个相对复杂的 logstash 管道设置,一些管道馈入其他管道,拆分事件,对外部服务进行 http 调用,有时将事件反馈到它来自的管道中。 (有防止无限循环的逻辑)。
我正在尝试编写一些集成测试,将测试事件馈送到正在运行的 Logstash,等待 Logstash 完成对它们的完全处理(包括它们产生的任何额外事件),然后检查结果输出是否符合预期.
这个 logstash 实例不应该从其他地方接收任何额外的输入,所以我认为检查它是否“空闲”就足够了(忽略与 xpack 监控有关的任何事件)。
我认为管道统计监控 API 可能是我想要使用的 - https://www.elastic.co/guide/en/logstash/current/node-stats-api.html#pipeline-stats - 但我不确定。如果每个管道的“输入”和“输出”值都相等,这是否意味着我可以确定没有更多的“在飞行中”?或者这些计数器是否可能由于其他原因不同步,例如事件拆分,事件过滤?
https://discuss.elastic.co/t/pipeline-stats-api-in-out-filtered/163742 的讨论(以及链接之后)似乎表明“in”和“out”将始终同步出现,但有一个错误表明情况不应该如此 - https://github.com/elastic/logstash/issues/8752 - 以及相关的错误显示了进出不同的情况 - https://github.com/elastic/logstash/issues/8753
【问题讨论】:
标签: logstash