<commit_before>---
title: TiDB 监控指标
summary: 了解 Grafana Dashboard 中展示的关键指标。
aliases: ['/docs-cn/dev/grafana-tidb-dashboard/','/docs-cn/dev/reference/key-monitoring-metrics/tidb-dashboard/']
---

# TiDB 重要监控指标详解

使用 TiUP 部署 TiDB 集群时，你可以一键部署监控系统 (Prometheus & Grafana)，参考监控架构 [TiDB 监控框架概述](/tidb-monitoring-framework.md)。

目前 Grafana Dashboard 整体分为 PD、TiDB、TiKV、Node\_exporter、Overview 等。TiDB 分为 TiDB 和 TiDB Summary 面板，两个面板的区别如下：

- TiDB 面板：提供尽可能全面的信息，供排查集群异常。
- TiDB Summary 面板：将 TiDB 面板中用户最为关心的部分抽取出来，并做了些许修改。主要用于提供数据库日常运行中用户关心的数据，如 QPS、TPS、响应延迟等，以便作为外部展示、汇报用的监控信息。

以下为 **TiDB Dashboard** 关键监控指标的说明：

## 关键指标说明

- Query Summary
    - Duration：执行时间
        - 客户端网络请求发送到 TiDB，到 TiDB 执行结束后返回给客户端的时间。一般情况下，客户端请求都是以 SQL 语句的形式发送，但也可以包含 `COM_PING`、`COM_SLEEP`、`COM_STMT_FETCH`、`COM_SEND_LONG_DATA` 之类的命令执行时间。
        - 由于 TiDB 支持 Multi-Query，因此，客户端可以一次性发送多条 SQL 语句，如 `select 1; select 1; select 1;`。此时的执行时间是所有 SQL 语句执行完之后的总时间。
    - Command Per Second：TiDB 按照执行结果成功或失败来统计每秒处理的命令数。
    - QPS：按 `SELECT`、`INSERT`、`UPDATE` 类型统计所有 TiDB 实例上每秒执行的 SQL 语句数量。
    - CPS By Instance：按照命令和执行结果成功或失败来统计每个 TiDB 实例上的命令。
    - Failed Query OPM：每个 TiDB 实例上，对每秒钟执行 SQL 语句发生的错误按照错误类型进行统计（例如语法错误、主键冲突等）。包含了错误所属的模块和错误码。
    - Slow query：慢查询的处理时间（整个慢查询耗时、Coprocessor 耗时、Coprocessor 调度等待时间），慢查询分为 internal 和 general SQL 语句。
    - Connection Idle Duration：空闲连接的持续时间。
    - 999/99/95/80 Duration：不同类型的 SQL 语句执行耗时（不同百分位）。

- Query Detail
    - Duration 80/95/99/999 By Instance：每个 TiDB 实例执行 SQL 语句的耗时（不同百分位）。
    - Failed Query OPM Detail：每个 TiDB 实例执行 SQL 语句发生的错误按照错误类型统计（例如语法错误、主键冲突等）。
    - Internal SQL OPS：整个 TiDB 集群内部 SQL 语句执行的 QPS。内部 SQL 语句是指 TiDB 内部自动执行的 SQL 语句，一般由用户 SQL 语句来触发或者内部定时任务触发。

- Server
    - Uptime：每个 TiDB 实例的运行时间。
    - Memory Usage：每个 TiDB 实例的内存使用，分为进程占用内存和 Golang 在堆上申请的内存。
    - CPU Usage：每个 TiDB 实例的 CPU 使用。
    - Connection Count：每个 TiDB 的连接数。
    - Open FD Count：每个 TiDB 实例的打开的文件描述符数量。
    - Disconnection Count：每个 TiDB 实例断开连接的数量。
    - Event OPM：每个 TiDB 实例关键事件，例如 start，close，graceful-shutdown，kill，hang 等。
    - Goroutine Count：每个 TiDB 实例的 Goroutine 数量。
    - Prepare Statement Count：每个 TiDB 实例现存的 `Prepare` 语句数以及总数。
    - Keep Alive OPM：每个 TiDB 实例每分钟刷新监控的次数，通常不需要关注。
    - Panic And Critical Error：TiDB 中出现的 Panic、Critical Error 数量。
    - Time Jump Back OPS：每个 TiDB 实例上每秒操作系统时间回跳的次数。
    - Get Token Duration：每个连接获取 Token 的耗时  。<commit_msg>fix description of OPM (#8971)<commit_after>---
title: TiDB 监控指标
summary: 了解 Grafana Dashboard 中展示的关键指标。
aliases: ['/docs-cn/dev/grafana-tidb-dashboard/','/docs-cn/dev/reference/key-monitoring-metrics/tidb-dashboard/']
---

# TiDB 重要监控指标详解

使用 TiUP 部署 TiDB 集群时，你可以一键部署监控系统 (Prometheus & Grafana)，参考监控架构 [TiDB 监控框架概述](/tidb-monitoring-framework.md)。

目前 Grafana Dashboard 整体分为 PD、TiDB、TiKV、Node\_exporter、Overview 等。TiDB 分为 TiDB 和 TiDB Summary 面板，两个面板的区别如下：

- TiDB 面板：提供尽可能全面的信息，供排查集群异常。
- TiDB Summary 面板：将 TiDB 面板中用户最为关心的部分抽取出来，并做了些许修改。主要用于提供数据库日常运行中用户关心的数据，如 QPS、TPS、响应延迟等，以便作为外部展示、汇报用的监控信息。

以下为 **TiDB Dashboard** 关键监控指标的说明：

## 关键指标说明

- Query Summary
    - Duration：执行时间
        - 客户端网络请求发送到 TiDB，到 TiDB 执行结束后返回给客户端的时间。一般情况下，客户端请求都是以 SQL 语句的形式发送，但也可以包含 `COM_PING`、`COM_SLEEP`、`COM_STMT_FETCH`、`COM_SEND_LONG_DATA` 之类的命令执行时间。
        - 由于 TiDB 支持 Multi-Query，因此，客户端可以一次性发送多条 SQL 语句，如 `select 1; select 1; select 1;`。此时的执行时间是所有 SQL 语句执行完之后的总时间。
    - Command Per Second：TiDB 按照执行结果成功或失败来统计每秒处理的命令数。
    - QPS：按 `SELECT`、`INSERT`、`UPDATE` 类型统计所有 TiDB 实例上每秒执行的 SQL 语句数量。
    - CPS By Instance：按照命令和执行结果成功或失败来统计每个 TiDB 实例上的命令。
    - Failed Query OPM：每个 TiDB 实例上，对每分钟执行 SQL 语句发生的错误按照错误类型进行统计（例如语法错误、主键冲突等）。包含了错误所属的模块和错误码。
    - Slow query：慢查询的处理时间（整个慢查询耗时、Coprocessor 耗时、Coprocessor 调度等待时间），慢查询分为 internal 和 general SQL 语句。
    - Connection Idle Duration：空闲连接的持续时间。
    - 999/99/95/80 Duration：不同类型的 SQL 语句执行耗时（不同百分位）。

- Query Detail
    - Duration 80/95/99/999 By Instance：每个 TiDB 实例执行 SQL 语句的耗时（不同百分位）。
    - Failed Query OPM Detail：每个 TiDB 实例上，对每分钟执行 SQL 语句发生的错误按照错误类型进行统计（例如语法错误、主键冲突等）。
    - Internal SQL OPS：整个 TiDB 集群内部 SQL 语句执行的 QPS。内部 SQL 语句是指 TiDB 内部自动执行的 SQL 语句，一般由用户 SQL 语句来触发或者内部定时任务触发。

- Server
    - Uptime：每个 TiDB 实例的运行时间。
    - Memory Usage：每个 TiDB 实例的内存使用，分为进程占用内存和 Golang 在堆上申请的内存。
    - CPU Usage：每个 TiDB 实例的 CPU 使用。
    - Connection Count：每个 TiDB 的连接数。
    - Open FD Count：每个 TiDB 实例的打开的文件描述符数量。
    - Disconnection Count：每个 TiDB 实例断开连接的数量。
    - Event OPM：每个 TiDB 实例关键事件，例如 start，close，graceful-shutdown，kill，hang 等。
    - Goroutine Count：每个 TiDB 实例的 Goroutine 数量。
    - Prepare Statement Count：每个 TiDB 实例现存的 `Prepare` 语句数以及总数。
    - Keep Alive OPM：每个 TiDB 实例每分钟刷新监控的次数，通常不需要关注。
    - Panic And Critical Error：TiDB 中出现的 Panic、Critical Error 数量。
    - Time Jump Back OPS：每个 TiDB 实例上每秒操作系统时间回跳的次数。
    - Get Token Duration：每个连接获取 Token 的耗时  。
{'fraction_non_alphanumeric': 0.09776833156216791, 'fraction_numerical': 0.00977683315621679, 'mean_word_length': 4.305524239007892, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2327777', 'n_tokens_mistral': 2850, 'n_tokens_neox': 3295, 'n_words': 439}