【问题标题】:detect stale mongodb elasticsearch river and restart it检测陈旧的 mongodb elasticsearch river 并重新启动它
【发布时间】:2015-05-10 08:52:58
【问题描述】:

我们正在使用 mongodb-elasticsearch River 插件from here

在某些情况下,我们发现河流已经陈旧。
原因包括

  • 重启MongoDB
  • 字段中的数据类型不匹配

每次我们都必须手动重新启动河流并重新索引集合。

有什么方法(工具、最佳实践、功能)来检测一条陈旧的河流并重新启动它?

【问题讨论】:

    标签: mongodb elasticsearch elasticsearch-plugin elasticsearch-mongo-river


    【解决方案1】:

    如果您查看this 行,看起来这条河流插入了最新更新的时间戳。您可以将最近的时间戳与当前时间进行比较。如果与数据库中最活跃的集合中的最新条目相比,它看起来已经过时了,那么您就知道存在问题,您应该重新启动它。

    【讨论】:

      【解决方案2】:

      我们在 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}
      

      自动停止/启动河流。

      【讨论】:

        猜你喜欢
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        • 2013-10-25
        • 2018-07-01
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        相关资源
        最近更新 更多