您的位置:首页 > 数据库

Sql server 将查询结果输出到windows 性能计数器

2017-07-05 15:54 323 查看
Sql server  安装后本身会有监控项目到windows 的性能计数器,比如,cpu,内存,连接数之类的监控项目,而我们通过zabbix 来监控性能计数器中的值

目的:但比如我们总会有一些需求监控,比如监控当前数据库会话数或当前某个业务的数据值需要时刻动态监控它,这个就需要我们自定义监控了

思路:  1,将查询结果做成一个存储过程

             1.1 存储过程里面将查询结果输出到性能计数器的实例值中

             2,在Sql server 作业里面,新建一个作业来执行这个存储过程,然后每30秒执行一次

             3,zabbix 自定义监控性能计数器值(如果不知道百度,本文针对有zabbix和Sql server 有基础的童鞋)

性能计数器:我们能输出到性能计数器中SQLServer:User Settable   这个计数器下的10个实例,User counter 1--User counter 10。

            

1,新建存储过程

USE [test]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- 数据库当前会话数  

-- DROP PROCEDURE [dbo].[spUserCounter12_seesion_acount]  

CREATE PROCEDURE [dbo].[USP_spUserCounter12_seesion_acount]  

AS      

BEGIN   

SET NOCOUNT ON     

DECLARE @seesionacount INT

SET @seesionacount = 0  

select @seesionacount= count(*) from sys.dm_exec_sessions 

select @seesionacount

EXECUTE sp_user_counter3 @seesionacount         

-- 主要就是sp_user_counter3 这个是 性能计数器 SQLServer:User Settable(User counter 3)\Query   这个实例的值  ,我用的是User counter 3

SET NOCOUNT OFF    

END      

GO

2,新建作业

主要就是

常规:填写作业名称,调用的用户可以填写 sa

步骤,使用类型“Transact-SQL脚本”

          然后命令里面,执行存储过程

计划:设置每天执行,每30秒执行一次



3,在zabbix_agent 配置文件中,自定义key 获取性能计数器SQLServer:User Settable(User counter 3)\Query   的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息