Skip to content

TiDB 监控指标参考

指标命名规范

TiDB 监控指标遵循以下命名规范:

  • component:组件名称,如 tidb、tikv、pd、tiflash 等
  • subsystem:子系统名称,如 server、executor、storage 等
  • metric_name:指标名称,如 qps、tps、connections 等

TiDB 指标

服务器指标

指标名称类型描述单位推荐告警阈值
tidb_server_qpsCounterTiDB 每秒处理的查询数次/秒-
tidb_server_tpsCounterTiDB 每秒处理的事务数次/秒-
tidb_server_connectionsGauge当前 TiDB 连接数> 80% 最大连接数
tidb_server_max_connectionsGaugeTiDB 最大连接数-
tidb_server_connection_countCounterTiDB 连接总数-

SQL 执行指标

指标名称类型描述单位推荐告警阈值
tidb_executor_stmt_duration_secondsHistogramSQL 语句执行延迟P99 > 1 秒
tidb_executor_error_totalCounterSQL 执行错误总数错误率 > 0.1%
tidb_executor_retry_totalCounterSQL 重试总数-
tidb_executor_scan_keys_totalCounter扫描的 Key 总数-
tidb_executor_mem_usage_bytesGauge执行器内存使用量字节> 80% 内存总量

事务指标

指标名称类型描述单位推荐告警阈值
tidb_txn_duration_secondsHistogram事务执行延迟P99 > 5 秒
tidb_txn_retry_totalCounter事务重试总数-
tidb_txn_write_conflict_totalCounter事务写入冲突总数-
tidb_txn_commit_totalCounter事务提交总数-
tidb_txn_rollback_totalCounter事务回滚总数-

存储引擎指标

指标名称类型描述单位推荐告警阈值
tidb_storage_read_bytes_totalCounter存储读取字节数字节-
tidb_storage_write_bytes_totalCounter存储写入字节数字节-
tidb_storage_read_keys_totalCounter存储读取 Key 数-
tidb_storage_write_keys_totalCounter存储写入 Key 数-

内存管理指标

指标名称类型描述单位推荐告警阈值
tidb_mem_quota_query_bytesGauge查询内存配额字节-
tidb_mem_current_bytesGauge当前内存使用量字节> 80% 内存总量
tidb_mem_usage_bytesGauge内存使用量字节> 80% 内存总量

TiKV 指标

服务器指标

指标名称类型描述单位推荐告警阈值
tikv_server_throughputCounterTiKV 吞吐量字节/秒-
tikv_server_connectionsGauge当前 TiKV 连接数-
tikv_server_incoming_connectionsCounter传入连接总数-

存储引擎指标

指标名称类型描述单位推荐告警阈值
tikv_engine_size_bytesGaugeRocksDB 引擎大小字节-
tikv_engine_write_stallGaugeRocksDB 写入停滞状态0/1= 1
tikv_engine_read_bytes_totalCounter引擎读取字节数字节-
tikv_engine_write_bytes_totalCounter引擎写入字节数字节-
tikv_engine_sst_files_countGaugeSST 文件数量-

Raft 指标

指标名称类型描述单位推荐告警阈值
tikv_raft_logs_applied_totalCounterRaft 日志应用总数-
tikv_raft_logs_committed_totalCounterRaft 日志提交总数-
tikv_raft_logs_pending_totalGauge待处理的 Raft 日志数> 1000
tikv_raft_apply_latency_secondsHistogramRaft 应用延迟P99 > 0.1 秒
tikv_raft_leader_countGaugeRaft Leader 数量-

Region 指标

指标名称类型描述单位推荐告警阈值
tikv_store_region_countGauge存储的 Region 数量-
tikv_store_leader_countGauge存储的 Leader 数量-
tikv_region_written_bytes_totalCounterRegion 写入字节数字节-
tikv_region_read_bytes_totalCounterRegion 读取字节数字节-

资源使用指标

指标名称类型描述单位推荐告警阈值
tikv_process_cpu_seconds_totalCounterCPU 使用率> 80%
tikv_process_memory_bytesGauge内存使用量字节> 85%
tikv_disk_used_bytesGauge磁盘使用量字节> 80%
tikv_disk_total_bytesGauge磁盘总量字节-
tikv_network_bytes_totalCounter网络流量字节-

PD 指标

服务器指标

指标名称类型描述单位推荐告警阈值
pd_server_is_leaderGauge是否为 PD Leader0/1-
pd_server_start_time_secondsGauge服务器启动时间-

集群指标

指标名称类型描述单位推荐告警阈值
pd_cluster_region_countGauge集群 Region 总数-
pd_cluster_store_countGauge集群存储节点数-
pd_cluster_replica_countGauge集群副本总数-

调度指标

指标名称类型描述单位推荐告警阈值
pd_scheduler_operator_totalCounter调度操作总数-
pd_scheduler_operator_createCounter创建的调度操作数-
pd_scheduler_operator_finishCounter完成的调度操作数-
pd_scheduler_operator_timeoutCounter超时的调度操作数-
pd_scheduler_leader_schedule_limitGaugeLeader 调度限制-
pd_scheduler_region_schedule_limitGaugeRegion 调度限制-

热点指标

指标名称类型描述单位推荐告警阈值
pd_hot_regionGauge热点 Region 数量> 10
pd_hot_region_read_bytes_totalCounter热点 Region 读取字节数字节-
pd_hot_region_write_bytes_totalCounter热点 Region 写入字节数字节-

TSO 指标

指标名称类型描述单位推荐告警阈值
pd_tso_server_idGaugeTSO 服务器 ID-
pd_tso_timestampGaugeTSO 时间戳毫秒-
pd_tso_save_interval_secondsGaugeTSO 保存间隔-

TiFlash 指标

服务器指标

指标名称类型描述单位推荐告警阈值
tiflash_server_uptime_secondsGauge服务器运行时间-
tiflash_server_connectionsGauge当前连接数-

存储引擎指标

指标名称类型描述单位推荐告警阈值
tiflash_storage_data_size_bytesGauge存储数据大小字节-
tiflash_storage_index_size_bytesGauge索引大小字节-
tiflash_storage_rows_countGauge行数-

查询执行指标

指标名称类型描述单位推荐告警阈值
tiflash_query_duration_secondsHistogram查询执行延迟P99 > 5 秒
tiflash_query_rows_readCounter查询读取行数-
tiflash_query_bytes_readCounter查询读取字节数字节-

数据同步指标

指标名称类型描述单位推荐告警阈值
tiflash_replica_sync_delay_secondsGauge副本同步延迟> 300 秒
tiflash_replica_sync_bytes_totalCounter副本同步字节数字节-
tiflash_replica_countGauge副本数量-

TiCDC 指标

服务器指标

指标名称类型描述单位推荐告警阈值
ticdc_server_uptime_secondsGauge服务器运行时间-
ticdc_server_connectionsGauge当前连接数-

同步任务指标

指标名称类型描述单位推荐告警阈值
ticdc_processor_countGauge处理器数量-
ticdc_processor_checkpoint_tsGauge处理器检查点时间戳毫秒-
ticdc_processor_resolved_tsGauge处理器已解析时间戳毫秒-
ticdc_processor_lag_secondsGauge处理器延迟> 300 秒

事件处理指标

指标名称类型描述单位推荐告警阈值
ticdc_events_accepted_totalCounter接受的事件总数-
ticdc_events_filtered_totalCounter过滤的事件总数-
ticdc_events_output_totalCounter输出的事件总数-
ticdc_events_latency_secondsHistogram事件处理延迟P99 > 1 秒

监控指标使用最佳实践

指标选择

  • 核心指标优先:优先监控核心业务指标,如 QPS、TPS、延迟等
  • 分层监控:从集群、组件、实例三个层次监控指标
  • 关联指标:同时监控相关指标,便于根因分析
  • 趋势分析:关注指标的变化趋势,而非单次值

告警设置

  • 合理的阈值:根据业务需求和历史数据设置合理的告警阈值
  • 分级告警:设置不同级别的告警,如 Critical、Warning、Info
  • 告警抑制:避免告警风暴,设置合理的告警抑制规则
  • 告警通知:配置多种告警通知渠道,确保告警及时送达

指标可视化

  • 仪表盘设计:设计清晰、直观的仪表盘
  • 关键指标突出:突出显示关键指标,便于快速发现问题
  • 多维度展示:从不同维度展示指标,如时间、组件、实例等
  • 趋势图:使用趋势图展示指标变化,便于分析趋势

指标存储

  • 合理的 retention:根据监控需求设置合理的数据保留时间
  • 采样和聚合:对历史数据进行采样和聚合,减少存储开销
  • 冷热分离:对热点数据和冷数据使用不同的存储策略

常见问题(FAQ)

Q1: 如何查看 TiDB 集群的所有指标?

A1: 可以通过以下方式查看 TiDB 集群的所有指标:

  1. 通过 HTTP API:访问各组件的 metrics 端点,如 http://tidb-host:10080/metricshttp://tikv-host:20180/metricshttp://pd-host:2379/metrics
  2. 通过 Prometheus UI:访问 Prometheus UI,使用查询语言查看指标
  3. 通过 Grafana:使用预配置的 Grafana Dashboard 查看指标

Q2: 如何选择需要监控的核心指标?

A2: 选择核心指标的建议:

  • 业务层面:QPS、TPS、延迟、错误率等
  • 资源层面:CPU、内存、磁盘、网络等
  • 组件层面:各组件的关键指标,如 TiKV 的 Raft 状态、PD 的调度状态等
  • 根据业务需求:根据实际业务需求选择相关指标

Q3: 如何设置合理的告警阈值?

A3: 设置合理告警阈值的建议:

  • 基于历史数据:分析历史数据,找出正常范围
  • 基于业务需求:根据业务的敏感度设置阈值
  • 逐步调整:先设置较宽松的阈值,然后根据实际情况逐步调整
  • 考虑季节性:考虑业务的季节性变化,调整阈值

Q4: 如何使用监控指标进行故障排查?

A4: 使用监控指标进行故障排查的步骤:

  1. 发现异常:通过告警或监控仪表盘发现异常指标
  2. 定位范围:根据异常指标定位到具体的组件或实例
  3. 关联分析:分析相关指标,找出根因
  4. 验证假设:根据分析结果提出假设,然后验证
  5. 解决问题:根据根因解决问题

Q5: 如何优化监控性能?

A5: 优化监控性能的建议:

  • 减少指标数量:只监控必要的指标,减少指标数量
  • 调整采集间隔:根据指标的重要性调整采集间隔
  • 优化存储:使用高效的存储方案,如 Prometheus 搭配 Thanos
  • 合理的查询:优化 PromQL 查询,避免复杂查询
  • 水平扩展:根据需要水平扩展 Prometheus 实例

Q6: 如何监控 TiDB 集群的容量?

A6: 监控 TiDB 集群容量的建议:

  • 监控存储容量:监控 TiKV 节点的磁盘使用率
  • 监控 Region 数量:监控集群的 Region 总数
  • 监控连接数:监控 TiDB 节点的连接数
  • 监控 QPS/TPS:监控集群的 QPS 和 TPS 增长趋势
  • 设置容量告警:设置容量告警,及时发现容量瓶颈