SSAS - 扩展事件 监控设计 Power BI展示


视频周未更新。

代码下载:SSAS_Monitor.zip

场景,需要监控哪些用户分别在什么时候访部哪些SSAS数据库。

解决方案:

1 SSAS设置

》1.1 新建SSAS扩展事件会话

>>1.1名称"Monior" ,事件选择"Query End"并且点一下,小三角形按纽。下图所示:

》1.2选择 Even_file,文件保存 “D:\Monitor\Xevent\Monitor.xel”

至此SSAS扩展事件会话新建完成。 日志保存在D:\Monitor\Xevent ,文件以Monitor_开头。

2 SQL SERVER设计

SQL SERVER,核心的点在于,把xel读到数据库中。 xel每一条信息,都是XML格式内容,所以需要用到XPAH表达式,取到我们想要的值。

》2.1通过sys.fn_xe_file_target_read_file 把文件内容读取出来

》2.2通过 XML中 XPATH取到对应节点。

/*

把监控文件写入到表中

*/

CREATE PROCEDURE [dbo].[USP_Monitor_SSAS]

(
  @FilePath nvarchar(500)='D:\Monitor\Xevent\Monitor_*.xel' --默值
)

AS
BEGIN

    --三天一个复盖
    Delete from Monitor_SSAS where MonitorDate>= DATEADD(D,-3, cast(GETDATE() as date))

	IF OBJECT_ID('tempdb..#tmp') IS NOT NULL DROP TABLE #tmp

	SELECT  cast(dbo.fn_ConvertLocalTime(timestamp_utc) as date) as MonitorDate,   object_name, CAST(event_data AS XML) event_data  
	
	
	 INTO #tmp    FROM sys.fn_xe_file_target_read_file  ( @FilePath, default, default, default )
	   where object_name in ('QueryEnd')  and cast( dbo.fn_ConvertLocalTime(timestamp_utc) as date)>= DATEADD(D,-3, cast(GETDATE() as date))

	
	    ;with t as (
	    select object_name as EventName,MonitorDate,

		t.event_data.value('(//data[@name="NTUserName"]/value)[1]', 'varchar(20)') as UserName,
		dbo.fn_ConvertLocalTime(t.event_data.value('(//data[@name="StartTime"]/value)[1]', 'datetime') ) as StartTime,
		dbo.fn_ConvertLocalTime(t.event_data.value('(//data[@name="EndTime"]/value)[1]', 'datetime')) as EndTime,
		t.event_data.value('(//data[@name="DatabaseName"]/value)[1]', 'nvarchar(30)') as DatabaseName,
		t.event_data.value('(//data[@name="ServerName"]/value)[1]', 'nvarchar(30)') as ServerName,
		t.event_data.value('(//data[@name="TextData"]/value)[1]', 'nvarchar(max)') as TextData
        from   #tmp t  

		)
		insert into Monitor_SSAS(Duration,eventName,MonitorDate,UserName,StartTime,EndTime,DatabaseName,ServerName,TextData)


		select DATEPART(ss, EndTime-StartTime) as Duration,* from t




END
GO

  

》2.3通过代理作业完成exec [dbo].[USP_Monitor_SSAS] 'D:\Monitor\Xevent\Monitor_*.xel'调用

exec [dbo].[USP_Monitor_SSAS]  'D:\Monitor\Xevent\Monitor_*.xel'

  

3.POWER BI

》3.1有可能同一时间点,有多个人访问,这时要聚合

长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn