数据库监控#

本章节描述了 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 加载。

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 为例:

oushudb config -c query_monitor_log_min_duration -v 18000
oushudb reload cluster -a

查看监控日志#

监控日志的目录为 ${OUSHUDB_LOG_PATH}/monitor, OUSHUDB_LOG_PATH 环境变量可以通过如下命令获取:

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 的日志容量