【consul】consul server down 故障

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磁盘,内存要求不是很高

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Consul简介 注册中心(不仅仅是注册中心) 一致性协议采用 Raft 算法,用来保证服务的高可用和一致性,实际...
    黄靠谱阅读 9,400评论 0 8
  • 一、Consul简介 Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go...
    QIQIHAL阅读 10,384评论 0 11
  • [转] 1. 什么是consul? 是一个服务管理软件。支持多数据中心下,分布式高可用的,服务发现和配置共享。co...
    baboon阅读 8,193评论 0 7
  • 7月30日开始补充维生素C,维生素B6,维生素C睡前吃,维生素B6晚饭后吃,吃完散步半小时左右。按时作息,晚上11...
    葡萄纹阅读 3,395评论 1 0
  • 赫璧卷青帘,岫掩峰峦。 风轻水软柳梳烟。 桃冶杏妖香满径,春到篱园。 诗酒趁华年,性味阑珊。 几分潇洒几分闲。 芒...
    玉如星阅读 1,252评论 0 0

友情链接更多精彩内容