一、前言
TDengine 是一款专为物联网、工业互联网等场景时序数据库,目前为国产化(信创)项目中的主流方案。
本文主要总结解析 TaosKeeper Prometheus Dashboard for 3.x dashboard
,让大家对 TDengine 主流监控指标有个整体了解,方便平常在性能监控工作查阅。
二、主要逻辑单元说明
TDengine 分布式架构的逻辑结构图如下:
一个完整的 TDengine 系统是运行在一到多个物理节点上的,逻辑上,它包含数据节点(dnode)、TDengine 应用驱动(taosc)以及应用(app)。系统中存在一到多个数据节点,这些数据节点组成一个集群(cluster)。应用通过 taosc 的 API 与 TDengine 集群进行互动。下面对主要逻辑单元进行简要介绍。
- 数据节点(dnode): dnode 是 TDengine 服务器侧执行代码 taosd 在物理节点上的一个运行实例,一个工作的系统必须有至少一个数据节点。dnode 包含零到多个逻辑的虚拟节点(vnode),零或者至多一个逻辑的管理节点(mnode),零或者至多一个逻辑的弹性计算节点(qnode),零或者至多一个逻辑的流计算节点(snode)。
- 虚拟节点(vnode): 为更好的支持数据分片、负载均衡,防止数据过热或倾斜,数据节点被虚拟化成多个虚拟节点(vnode,图中 V2,V3,V4 等)。每个 vnode 都是一个相对独立的工作单元,是时序数据存储的基本单元,具有独立的运行线程、内存空间与持久化存储的路径。一个 vnode 包含一定数量的表(数据采集点)
- 管理节点(mnode): 一个虚拟的逻辑单元,负责所有数据节点运行状态的监控和维护,以及节点之间的负载均衡(图中 M)。同时,管理节点也负责元数据(包括用户、数据库、超级表等)的存储和管理,因此也称为 Meta Node。TDengine 集群中可配置多个(最多不超过 3 个)mnode,它们自动构建成为一个虚拟管理节点组(图中 M1,M2,M3)。
- 虚拟节点组(VGroup): 不同数据节点上的 vnode 可以组成一个虚拟节点组(vgroup),采用 RAFT 一致性协议,保证系统的高可用与高可靠。
三、集成监控
TDengine 通过 taosKeeper 将服务器的 CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度等信息定时写入指定数据库。TDengine 还将重要的系统操作(比如登录、创建、删除数据库等)日志以及各种错误报警信息进行记录。系统管理员可以从 CLI 直接查看这个数据库,也可以在 WEB 通过图形化界面查看这些监测信息。
具体可以参考官网的资料,我就不再此赘述了。
四、监控数据库
TDinsight dashboard 数据来源于 log 库(存放监控数据的默认db,可以在 taoskeeper 配置文件中修改。taoskeeper 启动后会自动创建 log 库,并将监控数据写入到该数据库中。
相关表说明:
- cluster_info 表记录集群信息。
- d_info 表记录 dnode 状态信息。
- m_info 表记录 mnode 角色信息。
- dnodes_info 记录 dnode 信息。
- data_dir 表记录 data 目录信息。
- log_dir 表记录 log 目录信息。
- temp_dir 表记录 temp 目录信息。
- vgroups_info 表记录虚拟节点组信息。
- vnodes_role 表记录虚拟节点角色信息。
- log_summary 记录日志统计信息。
- grants_info 记录授权信息。
- keeper_monitor 记录 taoskeeper 监控数据。
- taosadapter_restful_http_request_total 记录 taosadapter rest 请求信息,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
- taosadapter_restful_http_request_fail 记录 taosadapter rest 请求失败信息,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
- taosadapter_restful_http_request_in_flight 记录 taosadapter rest 实时请求信息,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
- taosadapter_restful_http_request_summary_milliseconds 记录 taosadapter rest 请求汇总信息,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
- taosadapter_system_mem_percent 表记录 taosadapter 内存使用情况,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
- taosadapter_system_cpu_percent 表记录 taosadapter cpu 使用情况,该表为 schemaless 方式创建的表,时间戳字段名为 _ts。
五、Dashboard 看板
taosdata 提供了 TaosKeeper Prometheus Dashboard for 3.x dashboard
,dashboard ID 18587。
(一)集群状态(Cluster Status)
1、整体视角
这部分包括集群当前信息和状态,告警信息也在此处(从左到右,从上到下)。
2、分项说明
- First EP:当前TDengine集群中的firstEp设置。
- Version:TDengine 服务器版本(master mnode)。
- Master Uptime: 当前Master MNode 被选举为 Master 后经过的时间。
- Expire Time - 企业版过期时间。
指标说明:
- Used Measuring Points - 企业版已使用的测点数。
- Databases - 数据库个数。
- Tables - 当前表个数。
- Connections - 当前连接个数。
指标说明:
- DNodes/MNodes/VGroups/VNodes:每种资源的总数和存活数。
指标说明:
- DNodes/MNodes/VGroups/VNodes Alive Percent:每种资源的存活数/总数的比例,启用告警规则,并在资源存活率(1分钟内平均健康资源比例)不足100%时触发。
指标说明:
- Measuring Points Used:启用告警规则的测点数用量(社区版无数据,默认情况下是健康的)。
- Grants Expire Time:启用告警规则的企业版过期时间(社区版无数据,默认情况是健康的)
指标说明:
- Error Rate:启用警报的集群总合错误率(每秒平均错误数)。
(二)DNodes 概述(DNodes Overview)
指标说明:
- DNodes Status:show dnodes 的简单表格视图。
- DNodes Lifetime:从创建 dnode 开始经过的时间。
- DNodes Number:DNodes 数量变化。
- MNodes Number:MNodes 数量变化。
(三)请求(Requests)
1、整体视角
2、分项说明
指标说明:
- Requests (Inserts):累计插入次数。
指标说明:
- Requests Rate(Inserts per Second):平均每秒插入次数。
指标说明:
- Requests (Selects):查询请求数及变化率(count of second)。
(四)DNode 资源使用情况(DNode Usage)
1、整体视角
2、分项说明
指标说明:
- Uptime:从创建 dnode 开始经过的时间。
- Has MNodes?:当前 dnode 是否为 mnode。
- CPU Cores:CPU 核数。
- VNodes Number:当前dnode的VNodes数量。
- VNodes Masters:处于master角色的vnode数量。
指标说明:
- Current CPU Usage of taosd:taosd进程的CPU使用率。
- Current Memory Usage of taosd:taosd进程的内存使用情况。
- Disk Used:taosd数据目录的总磁盘使用百分比。
指标说明:
- CPU Usage:进程和系统 CPU 使用率。
- RAM Usage:RAM 使用指标时间序列视图。
指标说明:
- Disk Used:多级存储下每个级别使用的磁盘(默认为 level0 级)。
- Disk Increasing Rate per Minute:每分钟磁盘用量增加或减少的百分比。
指标说明:
- Disk IO:磁盘IO速率。
- Net IO:网络IO,除本机网络之外的总合网络IO速率。
参考资料: