diff --git a/reference/system-databases/cluster-config.md b/reference/system-databases/cluster-config.md index 623e7a57420c..653274dd5a11 100644 --- a/reference/system-databases/cluster-config.md +++ b/reference/system-databases/cluster-config.md @@ -6,12 +6,12 @@ summary: 了解 TiDB 集群配置表 `CLUSTER_CONFIG`。 # CLUSTER_CONFIG -集群配置表 `CLUSTER_CONFIG` 用于获取集群当前所有 TiDB/PD/TiKV 节点的配置。对于 TiDB 4.0 以前的版本,用户需要逐个访问各个节点的 HTTP API 才能收集到所有组件配置。 +集群配置表 `CLUSTER_CONFIG` 用于获取集群当前所有 TiDB/PD/TiKV 实例的配置。对于 TiDB 4.0 以前的版本,用户需要逐个访问各个实例的 HTTP API 才能收集到所有组件配置。 {{< copyable "sql" >}} ```sql -desc cluster_config; +desc information_schema.cluster_config; ``` ``` @@ -32,12 +32,12 @@ desc cluster_config; * `KEY`:配置项名。 * `VALUE`:配置项值。 -以下示例查询 TiKV 节点的 `coprocessor` 相关配置: +以下示例查询 TiKV 实例的 `coprocessor` 相关配置: {{< copyable "sql" >}} ```sql -select * from cluster_config where type='tikv' and `key` like 'coprocessor%'; +select * from information_schema.cluster_config where type='tikv' and `key` like 'coprocessor%'; ``` ``` diff --git a/reference/system-databases/cluster-hardware.md b/reference/system-databases/cluster-hardware.md index d59408628e6f..e4b73dd0e073 100644 --- a/reference/system-databases/cluster-hardware.md +++ b/reference/system-databases/cluster-hardware.md @@ -6,12 +6,12 @@ category: reference # CLUSTER_HARDWARE -集群硬件表 `CLUSTER_HARDWARE` 提供了集群各节点所在服务器的硬件信息。 +集群硬件表 `CLUSTER_HARDWARE` 提供了集群各实例所在服务器的硬件信息。 {{< copyable "sql" >}} ```sql -desc cluster_hardware; +desc information_schema.cluster_hardware; ``` ``` @@ -29,8 +29,8 @@ desc cluster_hardware; 字段解释: -* `TYPE`:对应节点信息表 [`information_schema.cluster_info`](/reference/system-databases/cluster-info.md) 中的 `TYPE` 字段,可取值为 `tidb`,`pd` 和 `tikv`。 -* `INSTANCE`:对应于节点信息表 `information_schema.cluster_info` 中的 `INSTANCE` 字段。 +* `TYPE`:对应集群信息表 [`information_schema.cluster_info`](/reference/system-databases/cluster-info.md) 中的 `TYPE` 字段,可取值为 `tidb`,`pd` 和 `tikv`。 +* `INSTANCE`:对应于集群信息表 `information_schema.cluster_info` 中的 `INSTANCE` 字段。 * `DEVICE_TYPE`:硬件类型。目前可以查询的硬件类型有 `cpu`、`memory`、`disk` 和 `net`。 * `DEVICE_NAME`:硬件名。对于不同的 `DEVICE_TYPE`,`DEVICE_NAME` 的取值不同。 * `cpu`:硬件名为 cpu。 @@ -45,15 +45,15 @@ desc cluster_hardware; {{< copyable "sql" >}} ```sql -select * from cluster_hardware where device_type='cpu' and device_name='cpu' and name like '%cores'; +select * from information_schema.cluster_hardware where device_type='cpu' and device_name='cpu' and name like '%cores'; ``` ``` +------+-----------------+-------------+-------------+--------------------+-------+ | TYPE | INSTANCE | DEVICE_TYPE | DEVICE_NAME | NAME | VALUE | +------+-----------------+-------------+-------------+--------------------+-------+ -| tidb | 127.0.0.1:10080 | cpu | cpu | cpu-logical-cores | 8 | -| tidb | 127.0.0.1:10080 | cpu | cpu | cpu-physical-cores | 4 | +| tidb | 0.0.0.0:4000 | cpu | cpu | cpu-logical-cores | 8 | +| tidb | 0.0.0.0:4000 | cpu | cpu | cpu-physical-cores | 4 | | pd | 127.0.0.1:2379 | cpu | cpu | cpu-logical-cores | 8 | | pd | 127.0.0.1:2379 | cpu | cpu | cpu-physical-cores | 4 | | tikv | 127.0.0.1:20160 | cpu | cpu | cpu-logical-cores | 8 | diff --git a/reference/system-databases/cluster-info.md b/reference/system-databases/cluster-info.md index ed7bae4d7b7b..f8f4dc4f00c1 100644 --- a/reference/system-databases/cluster-info.md +++ b/reference/system-databases/cluster-info.md @@ -6,12 +6,12 @@ category: reference # CLUSTER_INFO -集群拓扑表 `CLUSTER_INFO` 提供集群当前的拓扑信息,以及各个节点的版本信息、版本对应的 Git Hash、各节点的启动时间、各节点的运行时间。 +集群拓扑表 `CLUSTER_INFO` 提供集群当前的拓扑信息,以及各个节点的版本信息、版本对应的 Git Hash、各节点的启动时间、各实例的运行时间。 {{< copyable "sql" >}} ```sql -desc cluster_info; +desc information_schema.cluster_info; ``` ``` @@ -42,15 +42,15 @@ desc cluster_info; {{< copyable "sql" >}} ```sql -select * from cluster_info; +select * from information_schema.cluster_info; ``` ``` -+------+-----------------+-----------------+----------------------------------------+------------------------------------------+---------------------------+--------------+ -| TYPE | INSTANCE | STATUS_ADDRESS | VERSION | GIT_HASH | START_TIME | UPTIME | -+------+-----------------+-----------------+----------------------------------------+------------------------------------------+---------------------------+--------------+ -| tidb | 127.0.0.1:4000 | 127.0.0.1:10080 | 5.7.25-TiDB-v4.0.0-beta-195-gb5ea3232a | b5ea3232afa970f00db7a0fb13ed10857db1912e | 2020-03-02T16:27:28+08:00 | 4m18.845924s | -| pd | 127.0.0.1:2379 | 127.0.0.1:2379 | 4.1.0-alpha | 4b9bcbc1425c96848042b6d700eb63f84e72b338 | 2020-03-02T16:27:17+08:00 | 4m29.845928s | -| tikv | 127.0.0.1:20160 | 127.0.0.1:20180 | 4.1.0-alpha | 7c4202a1c8faf60eda659dfe0e64e31972488e78 | 2020-03-02T16:27:28+08:00 | 4m18.845929s | -+------+-----------------+-----------------+----------------------------------------+------------------------------------------+---------------------------+--------------+ ++------+-----------------+-----------------+-------------+------------------------------------------+---------------------------+--------------+ +| TYPE | INSTANCE | STATUS_ADDRESS | VERSION | GIT_HASH | START_TIME | UPTIME | ++------+-----------------+-----------------+-------------+------------------------------------------+---------------------------+--------------+ +| tidb | 0.0.0.0:4000 | 0.0.0.0:10080 | 4.0.0-beta | b5ea3232afa970f00db7a0fb13ed10857db1912e | 2020-03-02T16:27:28+08:00 | 4m18.845924s | +| pd | 127.0.0.1:2379 | 127.0.0.1:2379 | 4.1.0-alpha | 4b9bcbc1425c96848042b6d700eb63f84e72b338 | 2020-03-02T16:27:17+08:00 | 4m29.845928s | +| tikv | 127.0.0.1:20160 | 127.0.0.1:20180 | 4.1.0-alpha | 7c4202a1c8faf60eda659dfe0e64e31972488e78 | 2020-03-02T16:27:28+08:00 | 4m18.845929s | ++------+-----------------+-----------------+-------------+------------------------------------------+---------------------------+--------------+ ``` diff --git a/reference/system-databases/cluster-load.md b/reference/system-databases/cluster-load.md index b17428d38bb6..035c0227c27b 100644 --- a/reference/system-databases/cluster-load.md +++ b/reference/system-databases/cluster-load.md @@ -6,12 +6,12 @@ category: reference # CLUSTER_LOAD -集群负载表 `CLUSTER_LOAD` 提供集群各个节点所在服务器的的当前负载信息。 +集群负载表 `CLUSTER_LOAD` 提供集群各个实例所在服务器的的当前负载信息。 {{< copyable "sql" >}} ```sql -desc cluster_load; +desc information_schema.cluster_load; ``` ``` @@ -30,7 +30,7 @@ desc cluster_load; 字段解释: * `TYPE`:对应于节点信息表 [`information_schema.cluster_info`](/reference/system-databases/cluster-info.md) 中的 `TYPE` 字段,可取值为 `tidb`,`pd` 和 `tikv`。 -* `INSTANCE`:对应于节点信息表 `information_schema.cluster_info` 中的 `STATUS_ADDRESS` 字段。 +* `INSTANCE`:对应于节点信息表 `information_schema.cluster_info` 中的 `INSTANCE` 字段。 * `DEVICE_TYPE`:硬件类型,目前可以查询的硬件类型有 `cpu`、`memory`、`disk` 和 `net`。 * `DEVICE_NAME`:硬件名。对于不同的 `DEVICE_TYPE`,`DEVICE_NAME` 取值不同。 * `cpu`:硬件名为 cpu。 @@ -45,21 +45,21 @@ desc cluster_load; {{< copyable "sql" >}} ```sql -select * from cluster_load where device_type='cpu' and device_name='cpu'; +select * from information_schema.cluster_load where device_type='cpu' and device_name='cpu'; ``` ``` -+------+-----------------+-------------+-------------+--------+---------------+ -| TYPE | INSTANCE | DEVICE_TYPE | DEVICE_NAME | NAME | VALUE | -+------+-----------------+-------------+-------------+--------+---------------+ -| tidb | 127.0.0.1:10080 | cpu | cpu | load1 | 1.94 | -| tidb | 127.0.0.1:10080 | cpu | cpu | load5 | 2.16 | -| tidb | 127.0.0.1:10080 | cpu | cpu | load15 | 2.24 | -| pd | 127.0.0.1:2379 | cpu | cpu | load1 | 1.94 | -| pd | 127.0.0.1:2379 | cpu | cpu | load5 | 2.16 | -| pd | 127.0.0.1:2379 | cpu | cpu | load15 | 2.24 | -| tikv | 127.0.0.1:20160 | cpu | cpu | load1 | 1.94287109375 | -| tikv | 127.0.0.1:20160 | cpu | cpu | load5 | 2.15576171875 | -| tikv | 127.0.0.1:20160 | cpu | cpu | load15 | 2.2421875 | -+------+-----------------+-------------+-------------+--------+---------------+ ++------+-----------------+-------------+-------------+--------+-------+ +| TYPE | INSTANCE | DEVICE_TYPE | DEVICE_NAME | NAME | VALUE | ++------+-----------------+-------------+-------------+--------+-------+ +| tidb | 0.0.0.0:4000 | cpu | cpu | load1 | 0.39 | +| tidb | 0.0.0.0:4000 | cpu | cpu | load5 | 0.36 | +| tidb | 0.0.0.0:4000 | cpu | cpu | load15 | 0.66 | +| pd | 127.0.0.1:2379 | cpu | cpu | load1 | 0.39 | +| pd | 127.0.0.1:2379 | cpu | cpu | load5 | 0.36 | +| pd | 127.0.0.1:2379 | cpu | cpu | load15 | 0.66 | +| tikv | 127.0.0.1:20160 | cpu | cpu | load1 | 0.39 | +| tikv | 127.0.0.1:20160 | cpu | cpu | load5 | 0.36 | +| tikv | 127.0.0.1:20160 | cpu | cpu | load15 | 0.66 | ++------+-----------------+-------------+-------------+--------+-------+ ``` \ No newline at end of file diff --git a/reference/system-databases/cluster-log.md b/reference/system-databases/cluster-log.md index 564b893860f6..7b8073c5f2df 100644 --- a/reference/system-databases/cluster-log.md +++ b/reference/system-databases/cluster-log.md @@ -13,19 +13,19 @@ TiDB 4.0 版本之前,要获取集群的日志,用户需要逐个登录各 {{< copyable "sql" >}} ```sql -desc cluster_log; +desc information_schema.cluster_log; ``` ``` -+----------+---------------------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+----------+---------------------------+------+------+---------+-------+ -| TIME | varchar(32) | YES | | NULL | | -| TYPE | varchar(64) | YES | | NULL | | -| INSTANCE | varchar(64) | YES | | NULL | | -| LEVEL | varchar(8) | YES | | NULL | | -| MESSAGE | var_string(1024) unsigned | YES | | NULL | | -+----------+---------------------------+------+------+---------+-------+ ++----------+------------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++----------+------------------+------+------+---------+-------+ +| TIME | varchar(32) | YES | | NULL | | +| TYPE | varchar(64) | YES | | NULL | | +| INSTANCE | varchar(64) | YES | | NULL | | +| LEVEL | varchar(8) | YES | | NULL | | +| MESSAGE | var_string(1024) | YES | | NULL | | ++----------+------------------+------+------+---------+-------+ 5 rows in set (0.00 sec) ``` @@ -48,7 +48,7 @@ desc cluster_log; {{< copyable "sql" >}} ```sql -select * from `CLUSTER_LOG` where message like '%ddl%' and message like '%job%58%' and type='tidb' and time > '2020-03-27 15:39:00'; +select * from information_schema.cluster_log where message like '%ddl%' and message like '%job%58%' and type='tidb' and time > '2020-03-27 15:39:00'; ``` ``` diff --git a/reference/system-databases/cluster-systeminfo.md b/reference/system-databases/cluster-systeminfo.md index cfd4f8d09d9a..b90b8a9a8924 100644 --- a/reference/system-databases/cluster-systeminfo.md +++ b/reference/system-databases/cluster-systeminfo.md @@ -6,12 +6,12 @@ category: reference # CLUSTER_SYSTEMINFO -集群负载表 `CLUSTER_SYSTEMINFO` 用于查询集群所有节点所在服务器的内核配置信息。目前支持查询 `sysctl` 的信息。 +集群负载表 `CLUSTER_SYSTEMINFO` 用于查询集群所有实例所在服务器的内核配置信息。目前支持查询 `sysctl` 的信息。 {{< copyable "sql" >}} ```sql -desc cluster_systeminfo; +desc information_schema.cluster_systeminfo; ``` ``` @@ -40,7 +40,7 @@ desc cluster_systeminfo; 查询集群所有服务器的内核版本示例如下: ```sql -select * from CLUSTER_SYSTEMINFO where name like '%kernel.osrelease%' +select * from information_schema.cluster_systeminfo where name like '%kernel.osrelease%' ``` ``` diff --git a/reference/system-databases/inspection-result.md b/reference/system-databases/inspection-result.md index 55589ad79e23..639af4165725 100644 --- a/reference/system-databases/inspection-result.md +++ b/reference/system-databases/inspection-result.md @@ -15,36 +15,38 @@ TiDB 内置了一些诊断规则,用于检测系统中的故障以及隐患。 {{< copyable "sql" >}} ```sql -desc inspection_result; +desc information_schema.inspection_result; ``` ``` -+-----------+--------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+-----------+--------------+------+------+---------+-------+ -| RULE | varchar(64) | YES | | NULL | | -| ITEM | varchar(64) | YES | | NULL | | -| TYPE | varchar(64) | YES | | NULL | | -| INSTANCE | varchar(64) | YES | | NULL | | -| VALUE | varchar(64) | YES | | NULL | | -| REFERENCE | varchar(64) | YES | | NULL | | -| SEVERITY | varchar(64) | YES | | NULL | | -| DETAILS | varchar(256) | YES | | NULL | | -+-----------+--------------+------+------+---------+-------+ -8 rows in set (0.00 sec) ++----------------+--------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++----------------+--------------+------+------+---------+-------+ +| RULE | varchar(64) | YES | | NULL | | +| ITEM | varchar(64) | YES | | NULL | | +| TYPE | varchar(64) | YES | | NULL | | +| INSTANCE | varchar(64) | YES | | NULL | | +| STATUS_ADDRESS | varchar(64) | YES | | NULL | | +| VALUE | varchar(64) | YES | | NULL | | +| REFERENCE | varchar(64) | YES | | NULL | | +| SEVERITY | varchar(64) | YES | | NULL | | +| DETAILS | varchar(256) | YES | | NULL | | ++----------------+--------------+------+------+---------+-------+ +9 rows in set (0.00 sec) ``` 字段解释: * `RULE`:诊断规则名称,目前实现了以下规则: - * `config`:配置一致性检测。如果同一个配置在不同节点不一致,会生成 `warning` 诊断结果。 - * `version`:版本一致性检测。如果同一类型的节点版本不同,会生成 `critical` 诊断结果。 - * `current-load`:如果当前系统负载太高,会生成对应的 `warning` 诊断结果。 + * `config`:配置一致性检测。如果同一个配置在不同实例不一致,会生成 `warning` 诊断结果。 + * `version`:版本一致性检测。如果同一类型的实例版本不同,会生成 `critical` 诊断结果。 + * `node-load`:如果当前系统负载太高,会生成对应的 `warning` 诊断结果。 * `critical-error`:系统各个模块定义了严重的错误,如果某一个严重错误在对应时间段内超过阈值,会生成 `warning` 诊断结果。 * `threshold-check`:诊断系统会对大量指标进行阈值判断,如果超过阈值会生成对应的诊断信息。 * `ITEM`:每一个规则会对不同的项进行诊断,该字段表示对应规则下面的具体诊断项。 * `TYPE`:诊断的实例类型,可取值为 `tidb`,`pd` 和 `tikv`。 * `INSTANCE`:诊断的具体实例地址。 +* `STATUS_ADDRESS`:实例的 HTTP API 服务地址。 * `VALUE`:针对这个诊断项得到的值。 * `REFERENCE`:针对这个诊断项的参考值(阈值)。如果 `VALUE` 和阈值相差较大,就会产生对应的诊断信息。 * `SEVERITY`:严重程度,取值为 `warning` 或 `critical`。 @@ -57,7 +59,7 @@ desc inspection_result; {{< copyable "sql" >}} ```sql -select * from inspection_result\G +select * from information_schema.inspection_result\G ``` ``` @@ -110,7 +112,7 @@ DETAILS | max duration of 172.16.5.40:20151 tikv rocksdb-write-duration was to {{< copyable "sql" >}} ```sql -select /*+ time_range("2020-03-26 00:03:00", "2020-03-26 00:08:00") */ * from inspection_result\G +select /*+ time_range("2020-03-26 00:03:00", "2020-03-26 00:08:00") */ * from information_schema.inspection_result\G ``` ``` @@ -136,15 +138,15 @@ DETAILS | max duration of 172.16.5.40:10089 tidb get-token-duration is too slo 上面的诊断结果发现了以下问题: -* 第一行表示 172.16.5.40:4009 TiDB 节点在 `2020/03/26 00:05:45.670` 发生了重启。 -* 第二行表示 172.16.5.40:10089 TiDB 节点的最大的 `get-token-duration` 时间为 0.234s, 期望时间是小于 0.001s。 +* 第一行表示 172.16.5.40:4009 TiDB 实例在 `2020/03/26 00:05:45.670` 发生了重启。 +* 第二行表示 172.16.5.40:10089 TiDB 实例的最大的 `get-token-duration` 时间为 0.234s, 期望时间是小于 0.001s。 也可以指定条件,比如只查询 `critical` 严重级别的诊断结果: {{< copyable "sql" >}} ```sql -select * from inspection_result where severity='critical'; +select * from information_schema.inspection_result where severity='critical'; ``` 只查询 `critical-error` 规则的诊断结果: @@ -152,7 +154,7 @@ select * from inspection_result where severity='critical'; {{< copyable "sql" >}} ```sql -select * from inspection_result where rule='critical-error'; +select * from information_schema.inspection_result where rule='critical-error'; ``` ## 诊断规则介绍 @@ -164,7 +166,7 @@ select * from inspection_result where rule='critical-error'; {{< copyable "sql" >}} ```sql -select * from inspection_rules where type='inspection'; +select * from information_schema.inspection_rules where type='inspection'; ``` ``` @@ -173,7 +175,7 @@ select * from inspection_rules where type='inspection'; +-----------------+------------+---------+ | config | inspection | | | version | inspection | | -| current-load | inspection | | +| node-load | inspection | | | critical-error | inspection | | | threshold-check | inspection | | +-----------------+------------+---------+ @@ -195,6 +197,7 @@ select * from inspection_rules where type='inspection'; status.status-port log.file.filename log.slow-query-file + tmp-storage-path // PD 配置一致性检查白名单 advertise-client-urls @@ -214,6 +217,7 @@ select * from inspection_rules where type='inspection'; log-file raftstore.raftdb-path storage.data-dir + storage.block-cache.capacity ``` * 检测以下配置项的值是否符合预期。 @@ -230,7 +234,7 @@ select * from inspection_rules where type='inspection'; {{< copyable "sql" >}} ```sql -select * from inspection_result where rule='version'\G +select * from information_schema.inspection_result where rule='version'\G ``` ``` @@ -283,13 +287,13 @@ DETAILS | the cluster has 2 different tidb versions, execute the sql to see mo | TiKV | index-block-cache-hit | tikv_block_index_cache_hit | 大于 0.95 | TiKV 中 index block 缓存的命中率 | | TiKV | filter-block-cache-hit | tikv_block_filter_cache_hit | 大于 0.95 | TiKV 中 filter block 缓存的命中率 | | TiKV | data-block-cache-hit | tikv_block_data_cache_hit | 大于 0.80 | TiKV 中 data block 缓存的命中率 | -| TiKV | leader-score-balance | pd_scheduler_store_status | 小于 0.05 | 检测各个 TiKV 节点的 leader score 是否均衡,期望节点间的差异小于 5% | -| TiKV | region-score-balance | pd_scheduler_store_status | 小于 0.05 | 检测各个 TiKV 节点的 Region score 是否均衡,期望节点间的差异小于 5% | -| TiKV | store-available-balance | pd_scheduler_store_status | 小于 0.2 | 检测各个 TiKV 节点的存储可用空间大小是否均衡,期望节点间的差异小于 20% | -| TiKV | region-count | pd_scheduler_store_status | 小于 20000 | 检测各个 TiKV 节点的 Region 数量,期望单个节点的 Region 数量小于 20000 | +| TiKV | leader-score-balance | pd_scheduler_store_status | 小于 0.05 | 检测各个 TiKV 实例的 leader score 是否均衡,期望实例间的差异小于 5% | +| TiKV | region-score-balance | pd_scheduler_store_status | 小于 0.05 | 检测各个 TiKV 实例的 Region score 是否均衡,期望实例间的差异小于 5% | +| TiKV | store-available-balance | pd_scheduler_store_status | 小于 0.2 | 检测各个 TiKV 实例的存储可用空间大小是否均衡,期望实例间的差异小于 20% | +| TiKV | region-count | pd_scheduler_store_status | 小于 20000 | 检测各个 TiKV 实例的 Region 数量,期望单个实例的 Region 数量小于 20000 | | PD | region-health | pd_region_health | 小于 100 | 检测集群中处于调度中间状态的 Region 数量,期望总数小于 100 | -另外还会检测 TiKV 节点的以下 thread cpu usage 是否过高: +另外还会检测 TiKV 实例的以下 thread cpu usage 是否过高: * scheduler-worker-cpu * coprocessor-normal-cpu diff --git a/reference/system-databases/inspection-summary.md b/reference/system-databases/inspection-summary.md index 7b29b8f004b8..05c0a4664a15 100644 --- a/reference/system-databases/inspection-summary.md +++ b/reference/system-databases/inspection-summary.md @@ -13,34 +13,37 @@ category: reference {{< copyable "sql" >}} ```sql -desc inspection_summary; +desc information_schema.inspection_summary; ``` ``` -+--------------+-----------------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+--------------+-----------------------+------+------+---------+-------+ -| RULE | varchar(64) | YES | | NULL | | -| INSTANCE | varchar(64) | YES | | NULL | | -| METRICS_NAME | varchar(64) | YES | | NULL | | -| LABEL | varchar(64) | YES | | NULL | | -| QUANTILE | double unsigned | YES | | NULL | | -| AVG_VALUE | double(22,6) unsigned | YES | | NULL | | -| MIN_VALUE | double(22,6) unsigned | YES | | NULL | | -| MAX_VALUE | double(22,6) unsigned | YES | | NULL | | -+--------------+-----------------------+------+------+---------+-------+ ++--------------+--------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------+--------------+------+------+---------+-------+ +| RULE | varchar(64) | YES | | NULL | | +| INSTANCE | varchar(64) | YES | | NULL | | +| METRICS_NAME | varchar(64) | YES | | NULL | | +| LABEL | varchar(64) | YES | | NULL | | +| QUANTILE | double | YES | | NULL | | +| AVG_VALUE | double(22,6) | YES | | NULL | | +| MIN_VALUE | double(22,6) | YES | | NULL | | +| MAX_VALUE | double(22,6) | YES | | NULL | | +| COMMENT | varchar(256) | YES | | NULL | | ++--------------+--------------+------+------+---------+-------+ +9 rows in set ``` 字段解释: * `RULE`:汇总规则。由于规则在持续添加,最新的规则列表可以通过 `select * from inspection_rules where type='summary'` 查询。 * `INSTANCE`:监控的具体实例。 -* `METRIC_NAME`:监控表。 +* `METRICS_NAME`:监控表。 * `QUANTILE`:对于包含 `QUANTILE` 的监控表有效,可以通过谓词下推指定多个百分位,例如 `select * from inspection_summary where rule='ddl' and quantile in (0.80, 0.90, 0.99, 0.999)` 来汇总 DDL 相关监控,查询百分位为 80/90/99/999 的结果。`AVG_VALUE`、`MIN_VALUE`、`MAX_VALUE` 分别表示聚合的平均值、最小值、最大值。 +* `COMMENT`:对应监控的解释。 > **注意:** > -> 由于汇总所有结果有一定开销,所以 `information_summary` 中的规则是惰性触发的,即在 SQL 的谓词中显示指定的 `rule` 才会运行。例如 `select * from inspection_summary` 语句会得到一个空的结果集。`select * from inspection_summary where rule in ('read-link', 'ddl')` 会汇总读链路和 DDL 相关的监控。 +> 由于汇总所有结果有一定开销,建议在 SQL 的谓词中显示指定的 `rule` 以减小开销。例如 `select * from inspection_summary where rule in ('read-link', 'ddl')` 会汇总读链路和 DDL 相关的监控。 使用示例: @@ -59,13 +62,13 @@ FROM ( SELECT /*+ time_range("2020-01-16 16:00:54.933", "2020-01-16 16:10:54.933")*/ * - FROM inspection_summary WHERE rule='read-link' + FROM information_schema.inspection_summary WHERE rule='read-link' ) t1 JOIN ( SELECT /*+ time_range("2020-01-16 16:10:54.933","2020-01-16 16:20:54.933")*/ * - FROM inspection_summary WHERE rule='read-link' + FROM information_schema.inspection_summary WHERE rule='read-link' ) t2 ON t1.metrics_name = t2.metrics_name and t1.instance = t2.instance diff --git a/reference/system-databases/metrics-schema.md b/reference/system-databases/metrics-schema.md index 0d67f07d049d..ff9bd933f371 100644 --- a/reference/system-databases/metrics-schema.md +++ b/reference/system-databases/metrics-schema.md @@ -31,8 +31,8 @@ select * from information_schema.metrics_tables where table_name='tidb_query_dur * `TABLE_NAME`:对应于 metrics schema 中的表名,这里表名是 `tidb_query_duration`。 * `PROMQL`:因为监控表的原理是将 SQL 映射成 `PromQL`,并将 Prometheus 结果转换成 SQL 查询结果。这个字段是 `PromQL` 的表达式模板,获取监控表数据时使用查询条件改写模板中的变量,生成最终的查询表达式。 * `LABELS`:监控定义的 label,`tidb_query_duration` 有两个 label,分别是 `instance` 和 `sql_type`。 -* `QUANTILE`:百分位。对于直方图类型的监控数据,指定一个默认百分位。如果值为 `0`,表示该监控表对应的监控不是直方图。`tidb_query_duration` 默认查询 0.9 ,也就是 P90 的监控值。 -* `COMMENT`:对这个监控表的解释。可以看出 `tidb_query_duration` 表的是用来查询 TiDB query 执行的百分位时间,如 P999/P99/P90 的查询耗时,单位是秒。 +* `QUANTILE`:百分位。直方图类型的监控数据会指定一个默认百分位。如果值为 `0`,表示该监控表对应的监控不是直方图。`tidb_query_duration` 默认查询 0.9 ,也就是 P90 的监控值。 +* `COMMENT`:对这个监控表的解释。可以看出 `tidb_query_duration` 表是用来查询 TiDB query 执行的百分位时间,如 P999/P99/P90 的查询耗时,单位是秒。 再来看 `tidb_query_duration` 的表结构: @@ -111,7 +111,7 @@ desc select * from metrics_schema.tidb_query_duration where value is not null an 从以上结果可知,在 [`2020-03-25 23:40:00`, `2020-03-25 23:42:00`] 时间范围内,每个 label 只有三个时间的值,执行计划中的 `step` 值为一分钟,这实际上是由下面两个 session 变量决定的: -* `tidb_metric_query_step`:查询的分辨率步长。从 Prometheus 的 `query_range` 数据时需要指定 `start`,`end` 和 `step`,其中 `step` 会使用该变量的值。 +* `tidb_metric_query_step`:查询的分辨率步长。从 Prometheus 的 `query_range` 接口查询数据时需要指定 `start_time`,`end_time` 和 `step`,其中 `step` 会使用该变量的值。 * `tidb_metric_query_range_duration`:查询监控时,会将 `PROMQL` 中的 `$RANGE_DURATION` 替换成该变量的值,默认值是 60 秒。 如果想要查看不同时间粒度的监控项的值,用户可以修改上面两个 session 变量后查询监控表,示例如下: diff --git a/reference/system-databases/metrics-summary.md b/reference/system-databases/metrics-summary.md index 559afa320d2d..f96ce8bebbff 100644 --- a/reference/system-databases/metrics-summary.md +++ b/reference/system-databases/metrics-summary.md @@ -16,21 +16,21 @@ category: reference {{< copyable "sql" >}} ```sql -desc metrics_summary; +desc information_schema.metrics_summary; ``` ``` -+--------------+-----------------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+--------------+-----------------------+------+------+---------+-------+ -| METRICS_NAME | varchar(64) | YES | | NULL | | -| QUANTILE | double unsigned | YES | | NULL | | -| SUM_VALUE | double(22,6) unsigned | YES | | NULL | | -| AVG_VALUE | double(22,6) unsigned | YES | | NULL | | -| MIN_VALUE | double(22,6) unsigned | YES | | NULL | | -| MAX_VALUE | double(22,6) unsigned | YES | | NULL | | -| COMMENT | varchar(256) | YES | | NULL | | -+--------------+-----------------------+------+------+---------+-------+ ++--------------+--------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------+--------------+------+------+---------+-------+ +| METRICS_NAME | varchar(64) | YES | | NULL | | +| QUANTILE | double | YES | | NULL | | +| SUM_VALUE | double(22,6) | YES | | NULL | | +| AVG_VALUE | double(22,6) | YES | | NULL | | +| MIN_VALUE | double(22,6) | YES | | NULL | | +| MAX_VALUE | double(22,6) | YES | | NULL | | +| COMMENT | varchar(256) | YES | | NULL | | ++--------------+--------------+------+------+---------+-------+ ``` 字段解释: @@ -50,7 +50,7 @@ desc metrics_summary; ```sql select /*+ time_range('2020-03-08 13:23:00','2020-03-08 13:33:00') */ * -from information_schema.`METRICS_SUMMARY` +from information_schema.metrics_summary where metrics_name like 'tidb%duration' and avg_value > 0 and quantile = 0.99 @@ -91,7 +91,7 @@ COMMENT | The quantile of kv requests durations by store ```sql select /*+ time_range('2020-03-08 13:23:00','2020-03-08 13:33:00') */ * -from information_schema.`METRICS_SUMMARY_BY_LABEL` +from information_schema.metrics_summary_by_label where metrics_name like 'tidb%duration' and avg_value > 0 and quantile = 0.99 diff --git a/reference/system-databases/metrics-tables.md b/reference/system-databases/metrics-tables.md index e75efc8f9f63..4208f672ed19 100644 --- a/reference/system-databases/metrics-tables.md +++ b/reference/system-databases/metrics-tables.md @@ -11,19 +11,19 @@ category: reference {{< copyable "sql" >}} ```sql -desc metrics_tables; +desc information_schema.metrics_tables; ``` ``` -+------------+-----------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+------------+-----------------+------+------+---------+-------+ -| TABLE_NAME | varchar(64) | YES | | NULL | | -| PROMQL | varchar(64) | YES | | NULL | | -| LABELS | varchar(64) | YES | | NULL | | -| QUANTILE | double unsigned | YES | | NULL | | -| COMMENT | varchar(256) | YES | | NULL | | -+------------+-----------------+------+------+---------+-------+ ++------------+--------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++------------+--------------+------+------+---------+-------+ +| TABLE_NAME | varchar(64) | YES | | NULL | | +| PROMQL | varchar(64) | YES | | NULL | | +| LABELS | varchar(64) | YES | | NULL | | +| QUANTILE | double | YES | | NULL | | +| COMMENT | varchar(256) | YES | | NULL | | ++------------+--------------+------+------+---------+-------+ ``` 表 `metrics_tables` 的字段解释: diff --git a/reference/system-databases/sql-diagnosis.md b/reference/system-databases/sql-diagnosis.md index bcfdc6e8f2a1..7a4a2730bf80 100644 --- a/reference/system-databases/sql-diagnosis.md +++ b/reference/system-databases/sql-diagnosis.md @@ -11,23 +11,23 @@ SQL 诊断功能是在 TiDB 4.0 版本中引入的特性,用于提升 TiDB 问 SQL 诊断共分三大块: -* **集群信息表**:TiDB 4.0 诊断系统添加了集群信息表,为原先离散的各节点实例信息提供了统一的获取方式。它将整个集群的集群拓扑、硬件信息、软件信息、内核参数、监控、系统信息、慢查询、语句、日志完全整合在表中,让用户能够统一使用 SQL 进行查询。 +* **集群信息表**:TiDB 4.0 诊断系统添加了集群信息表,为原先离散的各实例信息提供了统一的获取方式。它将整个集群的集群拓扑、硬件信息、软件信息、内核参数、监控、系统信息、慢查询、语句、日志完全整合在表中,让用户能够统一使用 SQL 进行查询。 * **集群监控表**:TiDB 4.0 诊断系统添加了集群监控系统表,所有表都在 `metrics_schema` 中,可以通过 SQL 语句来查询监控信息。比起原先的可视化监控,SQL 查询监控允许用户对整个集群的所有监控进行关联查询,并对比不同时间段的结果,迅速找出性能瓶颈。由于 TiDB 集群的监控指标数量较大,SQL 诊断还提供了监控汇总表,让用户能够更便捷地从众多监控中找出异常的监控项。 * **自动诊断**:尽管用户可以手动执行 SQL 来查询集群信息表、集群监控表与汇总表,但自动诊断更加方便。所以 SQL 诊断基于已有的集群信息表和监控表,提供了与之相关的诊断结果表与诊断汇总表来执行自动诊断。 ## 集群信息表 -集群信息表将一个集群中的所有节点实例的信息都汇聚在一起,让用户仅通过一条 SQL 就能查询整个集群相关信息。 +集群信息表将一个集群中的所有实例的信息都汇聚在一起,让用户仅通过一条 SQL 就能查询整个集群相关信息。 集群信息表列表如下: -* 集群拓扑表 [`information_schema.cluster_info`](/reference/system-databases/cluster-info.md) 用于获取集群当前的拓扑信息,以及各个节点的版本、版本对应的 Git Hash、各节点的启动时间、各节点的运行时间。 -* 集群配置表 [`information_schema.cluster_config`](/reference/system-databases/cluster-config.md) 用于获取集群当前所有节点的配置。对于 TiDB 4.0 之前的版本,用户必须逐个访问各个节点的 HTTP API 才能获取这些配置信息。 +* 集群拓扑表 [`information_schema.cluster_info`](/reference/system-databases/cluster-info.md) 用于获取集群当前的拓扑信息,以及各个实例的版本、版本对应的 Git Hash、各实例的启动时间、各实例的运行时间。 +* 集群配置表 [`information_schema.cluster_config`](/reference/system-databases/cluster-config.md) 用于获取集群当前所有实例的配置。对于 TiDB 4.0 之前的版本,用户必须逐个访问各个实例的 HTTP API 才能获取这些配置信息。 * 集群硬件表 [`information_schema.cluster_hardware`](/reference/system-databases/cluster-hardware.md) 用于快速查询集群硬件信息。 -* 集群负载表 [`information_schema.cluster_load`](/reference/system-databases/cluster-load.md) 用于查询集群不同节点以及不同硬件类型的负载信息。 -* 内核参数表 [`information_schema.cluster_systeminfo`](/reference/system-databases/cluster-systeminfo.md) 用于查询集群不同节点的内核配置信息。目前支持查询 sysctl 的信息。 -* 集群日志表 [`information_schema.cluster_log`](/reference/system-databases/cluster-log.md) 用于集群日志查询,通过将查询条件下推到各个节点,降低日志查询对集群的影响,性能影响小于等 grep 命令。 +* 集群负载表 [`information_schema.cluster_load`](/reference/system-databases/cluster-load.md) 用于查询集群不同实例以及不同硬件类型的负载信息。 +* 内核参数表 [`information_schema.cluster_systeminfo`](/reference/system-databases/cluster-systeminfo.md) 用于查询集群不同实例的内核配置信息。目前支持查询 sysctl 的信息。 +* 集群日志表 [`information_schema.cluster_log`](/reference/system-databases/cluster-log.md) 用于集群日志查询,通过将查询条件下推到各个实例,降低日志查询对集群的影响,性能影响小于等 grep 命令。 -TiDB 4.0 之前的系统表,只能查看当前节点,TiDB 4.0 实现了对应的集群表,可以在单个 TiDB 节点上拥有整个集群的全局视图。这些表目前都位于 [`information_schema`](/reference/system-databases/information-schema.md) 中,查询方式与其他 `information_schema` 系统表一致。 +TiDB 4.0 之前的系统表,只能查看当前实例信息,TiDB 4.0 实现了对应的集群表,可以在单个 TiDB 实例上拥有整个集群的全局视图。这些表目前都位于 [`information_schema`](/reference/system-databases/information-schema.md) 中,查询方式与其他 `information_schema` 系统表一致。 ## 集群监控表