# 数据库监控 本章节描述了 OushuDB 的监控(query monitor)功能。 ## 概述 数据库监控在数据库管理员对用户任务的实时或者历史性能分析中起到重要的作用。 数据库的监控是指对数据库运行的任务进行语句级别的实时或者历史角度的监控。 OushuDB 的语句监控功能目前仅支持语句历史角度的监控。 OushuDB 监控功能目前还支持: - 打开和关闭监控功能 - 配置监控的参数 - 查看监控日志 - 维护监控日志 OushuDB 监控日志的格式: | 名称 | 描述 | 类型 | | ---------------- | -------------- | ------------------------ | | timestamp | 时间 | timestamp with timezone | | txnid | 事务id | uint64 | | session id | session 号 | int32 | | command count | command 号 | int32 | | username | 用户名 | string | | database name | 数据库 | string | | cost | plan 中的 cost | float | | rows out | 行数 | uint64 | | submit time | 语句提交时间 | timestamp with timezone | | start time | 语句开始时间 | timestamp with timezone | | finsh time | 语句结束时间 | timestamp with timezone | | status | 语句执行状态 | enum {”done”, “aborted”} | | query | 语句内容 | string | | query plan | 语句的 plan | string | | application name | 客户端应用名称 | string | | vci | 虚拟子集群信息 | string | ## 打开和关闭监控 监控功能的总开关通过参数 `query_monitor_enabled` 控制,支持 reload 加载。 ```sh oushudb config -c query_monitor_enabled -v on oushudb reload cluster -a ``` ## 配置监控参数 ### OushuDB 支持的监控参数 目前支持设置监控语句的最小执行时间的参数,参数名称为 `query_monitor_log_min_duration`。 单位是 ms,默认最小监控时间是 0 ms,即监控全部的 DML 语句。 ### 使用 OushuDB 命令行配置监控参数 OushuDB 支持监控策略的动态加载。 以配置 `query_monitor_log_min_duration` 为例: ```sh oushudb config -c query_monitor_log_min_duration -v 18000 oushudb reload cluster -a ``` ## 查看监控日志 监控日志的目录为 `${OUSHUDB_LOG_PATH}/monitor`, `OUSHUDB_LOG_PATH` 环境变量可以通过如下命令获取: ```sh source /usr/local/oushu/oushudb/oushudb_path.sh env ${OUSHUDB_LOG_PATH} ``` 监控日志的文件名称为 `oushudb-monitor-${worker_number}-${timestamp}.csv`。 其中 `${worker_number}` 是指当前工作的监控线程,`${time_stamp}` 是指监控线程创建监控日志文件时获取的系统时间戳。 监控日志的查看可以通过 Skylab 中 Lava 产品的数据库监控界面查看。 ## 维护监控日志 监控日志支持文件的翻转 (log rotaion) 和清理 (purge) 功能。 监控日志的默认翻转策略是: - 1 GB 进行一次日志翻转 - 24 小时进行一次日志翻转 - 监控目录维护 10 GB 的日志容量