Prometheus Exporter (十六)Microsoft SQL Server Exporter
本文已经收录在 Prometheus 合集 Prometheus 都可以采集那些指标?-- 常用 Exporter 合集 中。
前边聊了 MySQL 和 Postgres ,接着我们来看看 Microsoft SQL 的监控吧。这个是我写的关系型数据库监控里最后一个了,工作中遇到 Microsoft SQL 的机会实在太少。Prometheus 官方和社区都没有给出 Microsoft SQL 的 Exporter ,官方推荐了 awaragi 编写的 Exporter 。
awaragi 编写的 Exporter 官方地址是:https://github.com/awaragi/prometheus-mssql-exporter ,最新版本不详。这个 Exporter 看上去是用 JavaScript 写的,并且将镜像上传到 Docker Hub 。这个有记载的最新版本是 0.4.1,发行于 4 年前,但是作者在 6 个月(当前是 2021 年 12 月)前发布了一个 Tag 是 latest 的版本。所以我也不知道最新版本是什么。首先声明一下,我还没有使用该 Exporter 对 Microsoft SQL 进行监控,但是看在 Prometheus 推荐的份上,我觉得可以看一下。
安装运行
这个 Exporter 也支持二进制和容器运行。
在运行前,需要创建监控使用的账号和密码。这个账户和密码需要有如下权限:
GRANT VIEW ANY DEFINITION TO
GRANT VIEW SERVER STATE TO
如果要使用二进制运行的话,首先需要一个 Nodejs 环境,按照 Dockerfile 描述,建议使用 8.4.0 版本。然后下载这个仓库的代码。接着设置用于启动的环境变量
接着启动 Node 进程
也可以通过环境变量来打开 Debug 模式来进行调试,DEBUG
有两个参数可选,app
和 metrics
,可以都使用,也可以二选一。比如 :
守护进程,开机自起什么的,各位观众老爷自己处理吧。
如果使用 容器进行启动,那么可以参考下面的启动参数
这个镜像支持下面的启动参数,并且默认是通过 4000 的端口来暴露监控数据。
SERVER Microsoft SQL 数据库的 IP 地址
PORT Microsoft SQL 数据库的端口,缺省是 1433
USERNAME 创建好的监控用的用户名
PASSWORD 创建好的监控用的用户名对应的密码
DEBUG 打开 Debug 模式来进行调试,
DEBUG
有两个参数可选,app
和metrics
,可以都使用,也可以二选一。
指标
使用这个 Exporter 可以获取到如下监控指标:
mssql_instance_local_time Number of seconds since epoch on local instancemssql_connections{database,state} Number of active connections
mssql_deadlocks Number of lock requests per second that resulted in a deadlock since last restart
mssql_user_errors Number of user errors/sec since last restart
mssql_kill_connection_errors Number of kill connection errors/sec since last restart
mssql_database_state{database} State of each database (0=online 1=restoring 2=recovering 3=recovery pending 4=suspect 5=emergency 6=offline 7=copying 10=offline secondary)
mssql_log_growths{database} Total number of times the transaction log for the database has been expanded last restart
mssql_database_filesize{database,logicalname,type,filename} Physical sizes of files used by database in KB, their names and types (0=rows, 1=log, 2=filestream,3=n/a 4=fulltext(prior to version 2008 of MS SQL Server))
mssql_page_life_expectancy Indicates the minimum number of seconds a page will stay in the buffer pool on this node without references. The traditional advice from Microsoft used to be that the PLE should remain above 300 seconds
mssql_io_stall{database,type} Wait time (ms) of stall since last restart
mssql_io_stall_total{database} Wait time (ms) of stall since last restart
mssql_batch_requests Number of Transact-SQL command batches received per second. This statistic is affected by all constraints (such as I/O, number of users, cachesize, complexity of requests, and so on). High batch requests mean good throughput
mssql_page_fault_count Number of page faults since last restart
mssql_memory_utilization_percentage Percentage of memory utilization
mssql_total_physical_memory_kb Total physical memory in KB
mssql_available_physical_memory_kb Available physical memory in KB
mssql_total_page_file_kb Total page file in KB
mssql_available_page_file_kb Available page file in KB
这个监控指标数量相对 MySQL 来说,少很多了。
小结
这个 Exporter 我基本上没有使用过,大家使用过程中有问题的话,可以联系作者,看看能否处理。
版权声明: 本文为 InfoQ 作者【耳东@Erdong】的原创文章。
原文链接:【http://xie.infoq.cn/article/92c204ac679e3f17c160c3605】。未经作者许可,禁止转载。
评论