12.8数据库Dashboard

分类: 全栈 Dashboard 设计实战

数据库 Dashboard

欢迎回到第 12 章的学习。在上一节,我们学习了前后端关联 Dashboard。现在我们要学习数据库 Dashboard,这是数据库监控的核心。

本节将学习:数据库性能监控、慢查询分析、连接池状态、以及数据量趋势。

数据库性能监控

数据库性能监控的作用是什么? 监控数据库的整体性能,识别性能问题,优化数据库性能。

数据库性能监控包括哪些指标呢?

第一个:查询执行时间。 查询的平均执行时间、P95、P99 执行时间。

第二个:事务处理时间。 事务的平均处理时间。

第三个:锁等待时间。 锁等待的平均时间。

第四个:数据库资源使用。 CPU、内存、磁盘、网络资源使用情况。

数据库性能监控查询:

# 查询执行时间
avg(db_query_duration_seconds{db_system="mysql"})
histogram_quantile(0.95, db_query_duration_seconds_bucket{db_system="mysql"})
histogram_quantile(0.99, db_query_duration_seconds_bucket{db_system="mysql"})

# 事务处理时间
avg(db_transaction_duration_seconds{db_system="mysql"})

# 锁等待时间
avg(db_lock_wait_time_seconds{db_system="mysql"})

# 资源使用
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))

慢查询分析

慢查询分析的作用是什么? 识别和分析慢查询,优化查询性能,提升数据库性能。

慢查询分析包括哪些呢?

第一个:慢查询数量。 慢查询的数量和趋势。

第二个:慢查询列表。 慢查询的详细列表。

第三个:慢查询执行计划。 慢查询的执行计划分析。

第四个:慢查询优化建议。 针对慢查询的优化建议。

慢查询分析查询:

# 慢查询数量
sum(db_query_duration_seconds{db_system="mysql"} > 0.1)

# 慢查询趋势
sum(rate(db_query_duration_seconds{db_system="mysql"} > 0.1[5m]))

# 最慢的查询
topk(10, sum(rate(db_query_duration_seconds[5m])) by (db_statement))

连接池状态

连接池状态的作用是什么? 监控连接池的使用情况,识别连接池问题,优化连接管理。

连接池状态包括哪些呢?

第一个:连接池使用率。 连接池的当前使用率。

第二个:活跃连接数。 当前活跃的连接数。

第三个:空闲连接数。 当前空闲的连接数。

第四个:连接等待时间。 获取连接的平均等待时间。

第五个:连接泄露检测。 识别连接泄露情况。

连接池状态查询:

# 连接池使用率
hikari_connections_active / hikari_connections_total

# 活跃连接数
hikari_connections_active

# 空闲连接数
hikari_connections_idle

# 连接等待时间
avg(hikari_connections_acquire_nanos) / 1000000

# 连接等待数
hikari_connections_pending

数据量趋势

数据量趋势的作用是什么? 监控数据库数据量的增长趋势,规划容量扩展。

数据量趋势包括哪些呢?

第一个:表数据量。 各个表的数据量。

第二个:数据量增长趋势。 数据量的时间趋势。

第三个:索引大小。 索引的大小和增长趋势。

第四个:存储空间使用。 存储空间的使用情况。

数据量趋势查询:

-- MySQL Query table data volume
SELECT 
    table_name,
    table_rows,
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = 'shoehub'
ORDER BY table_rows DESC;

本节小结

在本节中,我们学习了数据库 Dashboard:

第一个是数据库性能监控。 监控数据库的整体性能,识别性能问题,优化数据库性能。

第二个是慢查询分析。 识别和分析慢查询,优化查询性能,提升数据库性能。

第三个是连接池状态。 监控连接池的使用情况,识别连接池问题,优化连接管理。

第四个是数据量趋势。 监控数据库数据量的增长趋势,规划容量扩展。

数据库 Dashboard 设计流程: 选择关键指标 → 设计可视化 → 配置告警 → 建立基线 → 持续优化。

这就是数据库 Dashboard。通过数据库 Dashboard,我们可以全面监控数据库的性能和健康状况。

在下一节,我们将学习 Dashboard 联动和跳转。学习如何设计 Dashboard 之间的联动和跳转。