TiProxy 监控指标
本文介绍 TiProxy 的监控指标。
如果你使用 TiUP 部署 TiDB 集群,监控系统(Prometheus 和 Grafana)会同时部署。更多信息请参考监控框架概览。
Grafana 仪表盘分为一系列子仪表盘,包括 Overview、PD、TiDB、TiKV、TiProxy 和 Node_exporter,有很多指标可以帮助你诊断问题。每个仪表盘包含面板组和面板。
TiProxy 有四个面板组。这些面板上的指标表示 TiProxy 的当前状态。
- TiProxy-Server: TiProxy 实例信息。
- TiProxy-Query-Summary: SQL 查询指标,如 CPS。
- TiProxy-Backend: TiProxy 可能连接的 TiDB 节点的信息。
- TiProxy-Balance: 负载均衡指标。
Server
- CPU Usage:每个 TiProxy 实例的 CPU 利用率
- Memory Usage:每个 TiProxy 实例的内存利用率
- Uptime:每个 TiProxy 实例自上次重启以来的运行时间
- Connection Count:每个 TiProxy 实例连接的客户端数量
- Create Connection OPM:每分钟在每个 TiProxy 实例上创建的连接数
- Disconnection OPM:每分钟每个原因的断开连接数。原因包括:
- success:客户端正常断开连接。
- client network break:客户端在断开连接前没有发送
QUIT
命令。这可能是由于网络问题或客户端关闭引起的。 - client handshake fail:客户端握手失败。
- auth fail:TiDB 拒绝访问。
- SQL error:TiDB 返回其他 SQL 错误。
- proxy shutdown:TiProxy 正在关闭。
- malformed packet:TiProxy 无法解析 MySQL 数据包。
- get backend fail:TiProxy 无法为连接找到可用的后端。
- proxy error:其他 TiProxy 错误。
- backend network break:无法从 TiDB 读取或写入。这可能是由于网络问题或 TiDB 服务器关闭引起的。
- backend handshake fail:TiProxy 与 TiDB 服务器握手失败。
- Goroutine Count:每个 TiProxy 实例的 Goroutine 数量
- Owner:执行各个任务的 TiProxy 实例,例如
10.24.31.1:3080 - vip
表示 TiProxy 实例10.24.31.1:3080
绑定了虚拟 IP。任务包括:- vip:绑定虚拟 IP。
- metric_reader:读取 TiDB server 的监控数据。
Query-Summary
- Duration:每个 TiProxy 实例的 SQL 语句执行的平均、P95、P99 时长。它包括 TiDB 服务器上 SQL 语句执行的时长,因此比 TiDB Grafana 面板上的时长高。
- P99 Duration By Instance:每个 TiProxy 实例的 P99 语句执行时长。
- P99 Duration By Backend:每个 TiDB 实例上执行的语句的 P99 语句执行时长。
- CPS by Instance:每个 TiProxy 实例的每秒命令数。
- CPS by Backend:每个 TiDB 实例的每秒命令数。
- CPS by CMD:按 SQL 命令类型分组的每秒命令数。
- Handshake Duration:客户端与 TiProxy 握手阶段的平均、P95、P99 时长。
Balance
- Backend Connections:每个 TiDB 实例和每个 TiProxy 实例之间的连接数。例如,
10.24.31.1:6000 | 10.24.31.2:4000
表示 TiProxy 实例10.24.31.1:6000
和 TiDB 实例10.24.31.2:4000
。 - Session Migration OPM:每分钟发生的会话迁移数,记录从 TiDB 实例迁移到另一个 TiDB 实例的会话。例如,
succeed: 10.24.31.2:4000 => 10.24.31.3:4000
表示从 TiDB 实例10.24.31.2:4000
成功迁移到 TiDB 实例10.24.31.3:4000
的会话数。 - Session Migration Duration:会话迁移的平均、P95、P99 时长。
- Session Migration Reasons:每分钟发生的会话迁移数,以及迁移的原因。原因包括:
status
:TiProxy 进行了基于状态的负载均衡label
:TiProxy 进行了基于标签的负载均衡health
:TiProxy 进行了基于健康度的负载均衡memory
:TiProxy 进行了基于内存的负载均衡cpu
:TiProxy 进行了基于 CPU 的负载均衡location
:TiProxy 进行了基于地理位置的负载均衡conn
:TiProxy 进行了基于连接数的负载均衡
Backend
- Get Backend Duration:TiProxy 连接到 TiDB 实例的平均、P95、P99 时长。
- Ping Backend Duration:每个 TiProxy 实例和每个 TiProxy 实例之间的网络延迟。例如,
10.24.31.1:6000 | 10.24.31.2:4000
表示 TiProxy 实例10.24.31.1:6000
和 TiDB 实例10.24.31.2:4000
之间的网络延迟。 - Health Check Cycle:每个 TiProxy 实例和所有 TiDB 实例之间的健康检查周期。例如,
10.24.31.1:6000
表示 TiProxy 实例10.24.31.1:6000
在所有 TiDB 实例上执行的最新健康检查的持续时间。如果此持续时间大于 3 秒,则 TiProxy 可能无法及时刷新后端 TiDB 列表。
Traffic
- Bytes/Second from Backends:每个 TiDB 实例每秒向每个 TiProxy 实例发送的数据量,单位为字节。
- Packets/Second from Backends:每个 TiDB 实例每秒向每个 TiProxy 实例发送的 MySQL 数据包数量。
- Bytes/Second to Backends:每个 TiProxy 实例每秒向每个 TiDB 实例发送的数据量,单位为字节。
- Packets/Second to Backends:每个 TiProxy 实例每秒向每个 TiDB 实例发送的 MySQL 数据包数量。
- Cross Location Bytes/Second:每个 TiProxy 实例每秒与跨地理位置的 TiDB 实例之间传输的数据量,单位为字节。