外观
TDSQL 内置监控工具
监控控制台
TDSQL 提供了直观的监控控制台,集成了多种监控功能,方便运维人员实时查看数据库状态和性能指标。
主要功能
- 实时监控:显示数据库实例的实时性能指标
- 历史趋势:提供各种指标的历史变化趋势图
- 告警管理:配置和管理告警规则
- 慢查询分析:查看和分析慢查询日志
- 资源使用情况:监控CPU、内存、磁盘、网络等资源使用情况
- 实例状态管理:查看和管理数据库实例状态
访问方式
- 登录TDSQL管理控制台
- 选择目标地域和项目
- 进入"实例管理"页面
- 选择要监控的实例
- 点击"监控"标签页
监控指标分类
监控控制台提供的指标主要分为以下几类:
- 性能指标:查询响应时间、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线程的运行状态
- 复制错误:最近的复制错误信息
查看方式
- 通过监控控制台的"主从复制"标签页查看
- 使用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: 可以通过以下方式查看主从复制状态:
- 通过监控控制台的"主从复制"标签页查看
- 使用SQL语句:
SHOW SLAVE STATUS\G; - 查看复制延迟:
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分钟一次,部分关键指标支持更频繁的采集。
