我们正在使用mongodb-elasticsearch河流插件from here
在某些情况下,我们发现这条河已经过时了。
原因包括
每次我们必须手动重启河流并重新编制索引。
是否有任何方法(工具,最佳实践,功能)来检测河流陈旧并重新启动它?
答案 0 :(得分:1)
如果您查看this行,则看起来河流会插入其最新更新的时间戳。您可以将最近的时间戳与当前时间进行比较。如果与数据库中最活跃的集合中的最新条目相比,它看起来已经老了,那么您就知道存在问题,您应该重新启动它。
答案 1 :(得分:1)
我们在Ruby应用程序中使用类似的东西来监视河流延迟并将其发送到statsd。然后,我们的监控框架会检测何时超过某个值并打开操作警报
j = JSON.parse Manticore.get("http://es_server:9200/_river/mongodb/list").body
j.each do |river|
es_lag = Time.now - Time.at(river["lastTimestamp"] / 1000)
stat_gauge "elasticsearch.river_latency.#{river['name']}", es_lag
end
您可以通过发出以下HTTP请求来自动执行此操作:
POST http://es_server:9200/_river/mongodb/{river_name}/{start|stop}
自动停止/启动河流。