Skip to content

TDSQL 内置监控工具

监控控制台

TDSQL 提供了直观的监控控制台,集成了多种监控功能,方便运维人员实时查看数据库状态和性能指标。

主要功能

  • 实时监控:显示数据库实例的实时性能指标
  • 历史趋势:提供各种指标的历史变化趋势图
  • 告警管理:配置和管理告警规则
  • 慢查询分析:查看和分析慢查询日志
  • 资源使用情况:监控CPU、内存、磁盘、网络等资源使用情况
  • 实例状态管理:查看和管理数据库实例状态

访问方式

  1. 登录TDSQL管理控制台
  2. 选择目标地域和项目
  3. 进入"实例管理"页面
  4. 选择要监控的实例
  5. 点击"监控"标签页

监控指标分类

监控控制台提供的指标主要分为以下几类:

  • 性能指标:查询响应时间、QPS、TPS、连接数等
  • 资源指标:CPU利用率、内存使用率、磁盘空间、磁盘IO等
  • 业务指标:数据库操作次数、事务提交成功率等
  • 健康指标:主从复制延迟、心跳状态、实例状态等

性能监控视图

实时性能监控

实时性能监控提供数据库实例的实时性能数据,包括:

  • QPS/TPS:每秒查询数和每秒事务数
  • 连接数:当前连接数、最大连接数、连接使用率
  • 响应时间:平均响应时间、最大响应时间、响应时间分布
  • 缓存命中率:查询缓存命中率、索引缓存命中率
  • 锁等待:锁等待次数、锁等待时间
  • 网络流量:入站流量、出站流量

历史性能趋势

历史性能趋势允许查看过去一段时间内的性能变化,支持以下时间范围:

  • 最近1小时
  • 最近6小时
  • 最近24小时
  • 最近7天
  • 最近30天
  • 自定义时间范围

性能对比

支持多个实例或多个指标之间的性能对比,方便分析不同实例或不同指标之间的关系。

慢查询分析工具

慢查询分析工具用于捕获和分析执行时间超过阈值的SQL语句,帮助定位性能瓶颈。

配置慢查询阈值

sql
-- 设置慢查询阈值为1秒
SET GLOBAL long_query_time = 1;

-- 启用慢查询日志
SET GLOBAL slow_query_log = ON;

-- 设置慢查询日志存储方式
SET GLOBAL log_output = 'TABLE'; -- 存储到表中
-- 或
SET GLOBAL log_output = 'FILE'; -- 存储到文件中

-- 设置慢查询日志文件路径(仅当log_output为FILE时生效)
SET GLOBAL slow_query_log_file = '/path/to/slow_query.log';

慢查询查看方式

1. 通过监控控制台查看

  • 进入监控控制台
  • 选择"慢查询分析"标签页
  • 设置查询条件(时间范围、执行时间等)
  • 查看慢查询列表和详细信息

2. 通过SQL查询查看

sql
-- 从表中查询慢查询
SELECT * FROM mysql.slow_log 
WHERE start_time >= '2023-01-01 00:00:00' 
  AND start_time <= '2023-01-02 00:00:00' 
ORDER BY query_time DESC;

-- 查看慢查询统计信息
SELECT 
  DIGEST_TEXT, 
  COUNT_STAR, 
  AVG_TIMER_WAIT, 
  MAX_TIMER_WAIT, 
  SUM_TIMER_WAIT 
FROM performance_schema.events_statements_summary_by_digest 
WHERE SCHEMA_NAME = 'your_database' 
ORDER BY SUM_TIMER_WAIT DESC 
LIMIT 10;

慢查询分析功能

  • 执行计划分析:查看慢查询的执行计划
  • 索引建议:自动生成索引优化建议
  • SQL改写建议:提供SQL语句的优化改写建议
  • 慢查询趋势:查看慢查询数量的变化趋势
  • 慢查询TOP N:统计排名前N的慢查询语句

主从复制监控

监控指标

主从复制监控提供以下关键指标:

  • 复制延迟:主从实例之间的数据同步延迟
  • 复制状态:复制是否正常运行
  • 复制模式:异步复制、半同步复制或强同步复制
  • 复制线程状态:IO线程和SQL线程的运行状态
  • 复制错误:最近的复制错误信息

查看方式

  1. 通过监控控制台的"主从复制"标签页查看
  2. 使用SQL语句查看:
sql
-- 查看复制状态
SHOW SLAVE STATUS\G;

-- 查看主从延迟
SHOW GLOBAL STATUS LIKE 'Seconds_Behind_Master';

-- 查看复制线程状态
SHOW PROCESSLIST WHERE command IN ('Binlog Dump', 'Connect', 'Reconnect', 'SQL Slave', 'Waiting for master to send event');

资源监控

CPU监控

  • 实时CPU利用率
  • CPU使用率趋势图
  • CPU使用峰值统计
  • 多实例CPU对比

内存监控

  • 实时内存使用率
  • 内存分配情况
  • 内存使用趋势
  • 内存使用峰值

磁盘监控

  • 磁盘空间使用情况
  • 磁盘IOPS(每秒输入输出操作数)
  • 磁盘吞吐量(每秒读写数据量)
  • 磁盘响应时间
  • 磁盘空间告警阈值设置

网络监控

  • 网络入站流量
  • 网络出站流量
  • 网络连接数
  • 网络延迟

告警管理

告警规则配置

TDSQL 监控控制台支持配置多种告警规则:

  • 性能告警:QPS/TPS异常、响应时间过长等
  • 资源告警:CPU/内存使用率过高、磁盘空间不足等
  • 连接告警:连接数过多、连接拒绝等
  • 复制告警:主从复制延迟过大、复制中断等
  • 实例告警:实例状态异常、实例重启等

告警级别

支持三种告警级别:

  • 警告:需要关注的潜在问题
  • 严重:需要立即处理的问题
  • 紧急:严重影响业务的问题

告警通知方式

  • 邮件通知:发送告警邮件到指定邮箱
  • 短信通知:发送告警短信到指定手机
  • 站内信通知:在管理控制台显示告警信息
  • Webhook通知:通过HTTP POST请求发送告警信息到指定URL
  • 企业微信/钉钉通知:集成企业微信或钉钉进行告警通知

告警历史查询

  • 支持按时间范围、告警级别、实例ID等条件查询告警历史
  • 提供告警历史的导出功能
  • 支持查看告警的处理状态

实例诊断工具

自动诊断

TDSQL 提供自动诊断功能,定期对数据库实例进行健康检查,包括:

  • 实例配置合理性检查
  • 性能瓶颈自动识别
  • 潜在问题预警
  • 优化建议生成

手动诊断

支持手动触发实例诊断,诊断内容包括:

  • 实例状态检查
  • 性能指标分析
  • 慢查询分析
  • 配置合理性检查
  • 安全隐患检查

诊断报告

诊断完成后生成详细的诊断报告,包括:

  • 诊断时间和诊断对象
  • 诊断结果概述
  • 详细问题列表
  • 具体优化建议
  • 优化效果预期

性能计数器

内置性能计数器

TDSQL 内置了丰富的性能计数器,用于监控数据库内部运行状态:

  • 查询执行计数器:记录各种查询类型的执行次数
  • 缓存计数器:记录缓存的命中率、命中率等
  • 锁计数器:记录锁的等待次数、等待时间等
  • 事务计数器:记录事务的提交、回滚次数等
  • 连接计数器:记录连接的建立、关闭次数等

查看性能计数器

sql
-- 查看全局状态计数器
SHOW GLOBAL STATUS;

-- 查看特定状态计数器
SHOW GLOBAL STATUS LIKE 'Com_select';
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_hit_rate';
SHOW GLOBAL STATUS LIKE 'Innodb_row_lock_time';

性能计数器的应用

  • 用于性能分析和瓶颈定位
  • 作为告警规则的触发条件
  • 用于性能优化效果的验证
  • 用于容量规划和资源调整

常见问题(FAQ)

Q1: TDSQL 内置监控工具支持哪些监控指标?

A1: TDSQL 内置监控工具支持多种监控指标,包括性能指标(QPS/TPS、响应时间等)、资源指标(CPU/内存/磁盘使用率等)、业务指标(操作次数、事务成功率等)和健康指标(主从复制延迟、实例状态等)。

Q2: 如何设置慢查询阈值?

A2: 可以通过SQL语句设置慢查询阈值,例如:

sql
SET GLOBAL long_query_time = 1; -- 设置慢查询阈值为1秒
SET GLOBAL slow_query_log = ON; -- 启用慢查询日志

Q3: 如何查看主从复制状态?

A3: 可以通过以下方式查看主从复制状态:

  1. 通过监控控制台的"主从复制"标签页查看
  2. 使用SQL语句:SHOW SLAVE STATUS\G;
  3. 查看复制延迟:SHOW GLOBAL STATUS LIKE 'Seconds_Behind_Master';

Q4: 如何配置告警规则?

A4: 登录TDSQL管理控制台,进入监控页面,选择"告警规则",点击"新建告警规则",设置告警指标、阈值、级别和通知方式。

Q5: 慢查询日志默认存储在哪里?

A5: 慢查询日志默认存储在系统表mysql.slow_log中,也可以配置为存储到文件中。

Q6: 如何查看历史性能数据?

A6: 在监控控制台的性能监控视图中,选择要查看的指标和时间范围,即可查看历史性能数据和趋势图。

Q7: 如何导出监控数据?

A7: 监控控制台支持导出监控数据为CSV格式,在性能监控视图中点击"导出"按钮即可。

Q8: 告警通知可以发送到哪些渠道?

A8: 告警通知可以发送到邮件、短信、站内信、Webhook、企业微信和钉钉等渠道。

Q9: 如何手动触发实例诊断?

A9: 在监控控制台的"实例诊断"页面,选择要诊断的实例,点击"手动诊断"按钮即可触发实例诊断。

Q10: TDSQL 内置监控工具的采集频率是多少?

A10: TDSQL 内置监控工具的采集频率根据指标类型不同而有所差异,一般为1-5分钟一次,部分关键指标支持更频繁的采集。