TiDB 监控框架概述

TiDB 使用开源时序数据库 Prometheus 作为监控和性能指标信息存储方案,使用 Grafana 作为可视化组件进行展示。

Prometheus 在 TiDB 中的应用

Prometheus 是一个拥有多维度数据模型的、灵活的查询语句的时序数据库。Prometheus 作为热门的开源项目,拥有活跃的社区及众多的成功案例。

Prometheus 提供了多个组件供用户使用。目前,TiDB 使用了以下组件:

  • Prometheus Server:用于收集和存储时间序列数据。
  • Client 代码库:用于定制程序中需要的 Metric。
  • Alertmanager:用于实现报警机制。

其结构如下图所示:

Prometheus in TiDB

Grafana 在 TiDB 中的应用

Grafana 是一个开源的 metric 分析及可视化系统。TiDB 使用 Grafana 来展示 TiDB 集群各组件的相关监控,监控项分组如下图所示:

Grafana monitored_groups

  • {TiDB_Cluster_name}-Backup-Restore:备份恢复相关的监控项。
  • {TiDB_Cluster_name}-Binlog:TiDB Binlog 相关的监控项。
  • {TiDB_Cluster_name}-Blackbox_exporter:网络探活相关监控项。
  • {TiDB_Cluster_name}-Disk-Performance:磁盘性能相关监控项。
  • {TiDB_Cluster_name}-Kafka-Overview:Kafka 相关监控项。
  • {TiDB_Cluster_name}-Lightning:TiDB Lightning 组件相关监控项。
  • {TiDB_Cluster_name}-Node_exporter:操作系统相关监控项。
  • {TiDB_Cluster_name}-Overview:重要组件监控概览。
  • {TiDB_Cluster_name}-PD:PD server 组件相关监控项。
  • {TiDB_Cluster_name}-Performance-Read:读性能相关监控项。
  • {TiDB_Cluster_name}-Performance-Write:写性能相关监控项。
  • {TiDB_Cluster_name}-TiDB:TiDB server 组件详细监控项。
  • {TiDB_Cluster_name}-TiDB-Summary:TiDB server 相关监控项概览。
  • {TiDB_Cluster_name}-TiFlash-Proxy-Summary:数据同步到 TiFlash 的代理 server 监控项概览。
  • {TiDB_Cluster_name}-TiFlash-Summary:TiFlash server 相关监控项概览。
  • {TiDB_Cluster_name}-TiKV-Details:TiKV server 组件详细监控项。
  • {TiDB_Cluster_name}-TiKV-Summary:TiKV server 监控项概览。
  • {TiDB_Cluster_name}-TiKV-Trouble-Shooting:TiKV 错误诊断相关监控项。

每个分组包含多个监控项页签,页签中包含多个详细的监控项信息。以 Overview 监控组为例,其中包含 5 个页签,每个页签内有相应的监控指标看板,如下图所示:

Grafana Overview