mystat 1.0 release 发布

2 月 5th, 2010 | Posted by | Filed under 程序设计

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.penglixun.com/tech/program/mystat_release.html

mystat是一款MySQL数据库实时监控脚本,Perl编写,基于MySQL的show global status和show global variables结果进行分析实时显示。能通过参数控释轮询间隔、轮询次数、监控项目。使用了strict;DBI;Switch;DBD::mysql;Getopt::Std;Term::ANSIColor;这几个Perl模块,通过CPAN都可以安装。
我已经尽力测试Bug,不过使用场景各异,如果发现Bug,请联系我,penglixun(at)gmail.com。

脚本包括如下参数
-i 轮询间隔 默认1s
-c 轮询次数 默认无限
-n 监控项目 默认basic
包括: all(全部项目), basic(基本项目), innodb(InnoDB项目), myisam(MyISAM项目)四个套装
以及下面的单项:
traffic – Network Traffic
kbuffer – Key Buffer
qcache – Query Cache
thcache – Thread Cache
tbcache – Table Cache
tmp – Temporary Table
query – Queries Statistics
select – Select Statistics
sort – Sort Statistics
innodb_bp – InnoDB Buffer Pool
项目之间可能有交叉的部分,取最大并集。
-d 取消项目 默认noneDB
包括: var(变量部分), innodb(InnoDB部分), none(无)
同时跟-n出现一样的项目,则优先处理-d。也就是说-n innodb -d innodb,不会显示innodb的部分。
-h 主机名 默认空
-u 用户名 默认空
-p 密码 默认空

例如:perl mystat.pl -n traffic,qcache,kbuffer,sort -d var -h 127.0.0.1 -u cactiuser -p cacti
显示如下
mystat 1.0 release

猛击这里下载:

  mystat.pl (56.8 KiB, 5,483 hits)


再来一张图:
mystat 1.0 release

显示项含义可以看代码里面的注释,非常清晰,一行计算代码有2~3行注释,说的很明白了。

代码结构
print_usage //显示用法
get_option //获取命令参数,设置命令默认值
set_env //获取系统环境变量
do_loop //循环控制函数
format_val //格式化数据为K/M/G/T单位
same_char //打印若干个相同的字符,用于排版
quit //退出操作,关闭数据库连接
init_val //初始化最大值
init //初始化总控函数
get_stat_traffic //获取流量相关数据
get_stat_kbuffer //获取索引缓冲相关数据
get_stat_qcache //获取查询缓存相关数据
get_stat_thcache //获取线程缓存相关数据
get_stat_tbcache //获取表缓存相关数据
get_stat_tmp //获取临时表相关数据
get_stat_select //获取SELECT相关数据
get_stat_sort //获取排序相关数据
get_stat_innodb_bp //获取InnoDB缓冲池相关数据
get_stat //获取数据总控函数
display_header //显示表头信息和版权信息
display_var_title //显示数据库变量栏标题信息
display_var_cache //显示数据库变量缓存相关信息
display_var_buffer//显示数据库变量缓冲相关信息
display_var_log //显示数据库变量日志相关信息
display_var_conn //显示数据库变量连接相关信息
display_var_query //显示数据库变量查询相关信息
display_vars //显示数据库变量总控函数
display_stat_traffic //显示数据库状态流量相关信息
display_stat_kbuffer //显示数据库状态索引缓冲相关信息
display_stat_qcache //显示数据库状态查询缓存相关信息
display_stat_thcache //显示数据库状态线程缓存相关信息
display_stat_tbcache //显示数据库状态表缓存相关信息
display_stat_query //显示数据库状态查询语句相关信息
display_stat_select //显示数据库状态选择相关信息
display_stat_sort //显示数据库状态排序相关信息
display_stat_tmp //显示数据库状态临时表相关信息
display_stat_innodb_bp //显示数据库状态InnoDB缓冲池相关信息
display_stat //显示数据库状态总控函数
calc_val //计算数值模板,包括当前值/平均值/最大值/最小值
calc_stat_traffic //计算数据库状态流量相关信息
calc_stat_kbuffer //计算数据库状态索引缓冲相关信息
calc_stat_qcache //计算数据库状态查询缓存相关信息
calc_stat_thcache //计算数据库状态线程缓存相关信息
calc_stat_tbcache //计算数据库状态表缓存相关信息
calc_stat_query //计算数据库状态查询语句相关信息
calc_stat_select //计算数据库状态选择语句相关信息
calc_stat_sort //计算数据库状态排序相关信息
calc_stat_tmp //计算数据库状态临时表相关信息
calc_stat_innodb_bp //计算数据库状态InnoDB缓冲池相关信息
calc_stat //计算数据库状态总控函数
refresh_all //每次刷新数据控制

标签: ,
  1. 李伟
    11 月 30th, 201315:33

    下载的脚本里 最后一行少了个大括号

    [回复]