成功/ PingCAP
Grafana如何帮助PingCAP排除TiDB部署故障
由三位基础设施工程师于2015年创立,PingCAP公司是幕后黑手吗TiDB是一个混合事务和分析处理(HTAP)数据库,旨在实现水平可伸缩性、强一致性和高可用性。
成长的烦恼
TiDB在GitHub上拥有超过13,000名明星和近200名贡献者,是世界上最受欢迎的开源数据库项目之一,而且还在继续增长。
事实上,大约在两年前,PingCAP发现它的系统发展太快,需要一个强大的监控解决方案。PingCAP国际化主管Queeny Jin表示:“我们有数百个指标来监控我们的系统,我们需要理解它们,以便有效地诊断集群中的问题。”
该团队尝试使用StatsD,但“很快就放弃了”,转而使用普罗米修斯收集其监控和性能数据。“普罗米修斯功能强大,使用简单,而且是用去,所以我们可以很容易地做出贡献,”奎尼说。作为Prometheus首选的可视化层,Grafana是显示系统指标的简单选择。Queeny说:“这是一种自然而简单的使用方法,因为Prometheus-Grafana组合是一种流行的监测堆栈。”“我们使用Prometheus从TiDB数据库集群中提取指标,然后在Grafana中显示它们。”
在大多数情况下,用户依赖于Grafana直观且信息丰富的仪表板来获得见解,而不是查看详细的日志。
快速切入问题的核心
奎尼说,有了Grafana,部署过程中的故障排除就变得简单多了。她说:“它每天都在帮助我们为用户诊断和排除TiDB集群的问题。”“基本上,我们将所有重要的指标收集到一个总览仪表板中,这样我们就可以轻松地确定出现的任何问题。在大多数情况下,用户依赖于Grafana直观且信息丰富的仪表板,而不是查看详细的日志。”
这是一个巨大的优势,因为一个典型的TiDB集群包含1,100多个用于不同组件的指标,包括TiDB服务器TiKV(支持TiDB的开源分布式事务键值存储)服务器,以及驱动程序位置(管理和调度TiKV节点的元数据层)服务器。在PingCAP的测试环境中,由89个服务器和91个服务组成的单个集群将在15天内生成179G度量日志。奎尼说:“我们不可能去每台服务器上查看所有这些日志。”“这就是Grafana对我们至关重要的地方,因为它让所有这些原木都有意义。”
除了易于使用的仪表板,PingCAP还重视Grafana的多功能API。奎尼说:“这让我们可以建立自己的工具。”Grafana的插件体系结构使任何人都可以构建自定义面板和数据源来扩展Grafana,甚至可以改进现有的仪表板。事实上,奎尼说,“灵感来自Grafana记者,我们创建了自己的工具,从Grafana生成PDF报告。”
该团队最喜欢的功能是Row,它用于对指标进行分组。Queeny说:“在TiKV中,我们建立了一个错误行,并将所有重要的错误指标汇总到这个行中,这样我们就可以非常快速地识别问题。”
由于这些原因,Queeny说:“Grafana是我们作为系统指标的GUI显示的第一个也是唯一的选择。这对我们的用户来说非常有用。”