前言
数据库智能运维的核心的功能是运维,数据库运维是系统的本职工作必须做好,而智能则主要体现在“易用性”上。GaussDB(DWS)数据库智能运维系统将通过一系列手段,优化数据库的运维效率和用户体验。包括但不仅限于,监控数据可视化,根因分析智能化以及运维过程自动化。通过数据库运维逐步的智能化改造,提高数据库运维工具的易用性,从而节省运维人员在运维过程中的时间消耗。
本文将从运维数据可视化和提高运维工具的易用性角度来尝试分析如何构建GaussDB(DWS)数据库智能运维系统的页面。
数据库智能运维系统页面的逻辑划分
通过分析数据库智能运维系统的用户角色,我们发现对于数据库系统存在三种用户角色,应用开发,SRE与DBA。他们关注数据库运维的不同侧面,根据用户角色所处的位置不同,我们又可以把他们区分为前台用户和后台用户,本文将重点讨论SRE和DBA角色相关的后台用户的使用需求及页面。SRE和DBA两个角色同属于后台运维角色而又有所区别,一个关注于数据库故障发现,一个专注于数据库故障根因定位。但是,在现网场景中,为了节省人力成本,SRE角色和DBA角色往往是同一个人,他需要整体关注数据库的方方面面。因此,我们在设计页面时特地将页面抽象为主题页面和工具页面两种类型,从而兼顾了这两种角色在发现问题,定位问题过程中,思维的连续性。
这里的主题页面与工具页面的定义如下:
主题页面
承载某个监控主题(集群概览,节点概览,实例概览,查询,会话,事务,等等)
负责围绕监控主题组织数据展示数据
帮助用户快速认知该主题的系统状态和定位问题根因
工具页面
帮助用户简化某个场景的问题发现和根因定位(比如历史曲线对工具)
无固定页面入口,多以弹窗的形式出现
用完即销毁,工具式取用,不存储任何持久化数据
我们将尝试以主题页面为骨架,以工具页面为血肉,逐步把用户的运维场景和需求以工具页面的形式固化下来,丰富GaussDB(DWS)数据库智能运维系统目前的监控运维能力。未来可以进一步将其中的一些成熟工具或者场景自动化,逐步实现云上数据库全自动化运维。
数据库智能运维状态监控页面的组织逻辑
之前,简单介绍了GaussDB(DWS)数据库智能运维系统的工具化设计思想,下面我们将展开来看看每一个工具的具体设计方案。GaussDB(DWS)数据库属于MPP DB分布式数据库,这种集群结构复杂,层次维度多,物理维度和逻辑维度混杂,比较难以全面展现集群的状态。因此,我们设计了如下图所示形式的页面逻辑关系来全面展示数据库集群的运行状态。
状态监控工具页面组织逻辑
我们将要设计一个集群概览页面,该页面中将展示如下4个种类的集群信息:
集群资源:展示集群整体资源的实时和历史消耗信息。(集群资源包括:CPU,内存,磁盘,磁盘I/O,网络I/O)
集群负载:展示数据库集群的业务负载情况,包括,并发连接数,并发查询数,慢SQL,工作负载队列等聚合信息。支持按数据库分类,点击数据库名称可以下钻到下一层数据库概览页面展示更详细的信息。
节点列表:展示集群的物理拓扑结构,将提供两种形式的展示方式(列表,拓扑图),每一个节点名称点击后可以下钻,下钻页面为节点概览页面,该页面可以展示节点的更多信息。
实例列表:展示集群的逻辑拓扑结构,将提供两形式的展示方式(列表,拓扑图),每一个实例点击后可以下钻,下钻页面为实例概览页面,该页面将展示当前实例的详细信息。
报表:展示当前集群一天之内重点监控指标的统计值(通常为最大值和平均值)也可以展示今天集群重点指标与昨天相比的变化率曲线。
根因分析工具页面组织逻辑
监控页面
集群状态:在“集群状态”一栏,您可以浏览当前集群的状态以及可用资源数量,其中包括“节点数量”、“CN数量”、“数据库数量”。
资源消耗:在“资源消耗”一栏,您可以浏览当前集群实时的资源消耗情况,包括“CPU使用率(%)”、“内存使用率(%)”、“磁盘使用率(%)”、“磁盘I/O(KB/s)”。
TOP SQL:在“TOP SQL”一栏,您可以查询到当前集群中耗时最长的以及下盘量最大的SQL语句。
工作负载指标:
主机监控:
性能监控:
会话监控:
查询监控:
实例监控:
负载监控:
本文是介绍云上的数据库监控运维体系设计的核心概念的三篇文章之三,尝试从概念和逻辑上推导了基于用户角色的数据库智能监控系统的可能应用场景。有了这个基本框架,则我们后续所需要做的工作和工具都变得清晰可见。愿我们的期待早日成为显示,让云端的数据库运维工作变得更轻松与智能。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。