美文网首页
【consul】consul server down 故障

【consul】consul server down 故障

作者: 不务正业的coder | 来源:发表于2020-03-16 19:33 被阅读0次

    Grafana 显示 consul_up指标显示leader节点在18:00后发生down现象


    image.png

    源码分析
    consul exporter 暴露的 consul_up指标,实际上是通过Http向各个endpoint发起请求,只要任意一个endpoint请求超时或者server端内部异常,则标识consul_down。

    image.png

    API映射

    • ok = e.collectPeersMetric(ch) r := s.c.newRequest("GET", "/v1/status/peers") 查询consul server 列表 (status.go

    • ok = e.collectLeaderMetric(ch) r := s.c.newRequest("GET", "/v1/status/leader") 查询consul server leader (status.go

    • ok = e.collectNodesMetric(ch) r := c.c.newRequest("GET", "/v1/catalog/nodes") 查询consul node 列表 (catalog.go)

    • ok = e.collectMembersMetric(ch) r := a.c.newRequest("GET", "/v1/agent/members") 查询gossip members (agent.go)

    • ok = e.collectServicesMetric(ch) r := c.c.newRequest("GET", "/v1/catalog/services") 查询所有service列表 (catalog.go)

    • ok = e.collectHealthStateMetric(ch) r := h.c.newRequest("GET", "/v1/health/state/any) 查询所有状态的service (health.go)

    • ok = e.collectKeyValues(ch)
      Consul exporter LEVEL=ERROR日志

    image.png

    结论
    consul down原因:consul exporter 向consul server leader GET "/v1/status/peers请求超时,导致失败, 因此consul down并不意味着consul server leader 挂掉。

    目前,exporter 请求consul server 的默认consul.timeout=500ms,至于为何超时,可能由于某个时刻 consul server leader cpu 负载较大,未能及时响应请求。

    image.png
    image.png

    consul 的性能瓶颈主要体现为:read受cpu约束 ,write 受i/o约束。
    服务型建议选择高CPU,ESSD磁盘,内存要求不是很高

    相关文章

      网友评论

          本文标题:【consul】consul server down 故障

          本文链接:https://www.haomeiwen.com/subject/tgrnehtx.html