StreamInsight手札(五)——使用EventFlowDebugger调试事件流
StreamInsight提供了EventFlowDebugger以方便用户进行事件流调试。这一工具拥有直观的图形化界面,支持即时调试和日志调试,支持跟踪和回溯。
本文将介绍EventFlowDebugger基本使用方法。
EventFlowDebugger分为在线模式和离线模式两种使用方法。在线模式下,用户连接到StreamInsight服务器,在线进行调试,或者录制某一段时间的事件流供离线模式使用。离线模式下,用户通过加载Trace文件对事件流进行调试。
下面对其主要功能进行介绍。
连接到服务器(在线)
在线模式需要用户连接到一个正在运行的StreamInsight服务器。
StreamInsight服务器有两种,嵌入服务器和远程服务器:
- 嵌入服务器(Embedded Server):var cepServerEmbedded = Server.Create();
- 远程服务器(Remote Server):var cepServerRemote = Server.Connect("https://servername/StreamInsight");
如果使用远程服务器,则用户可以直接连接远程服务器的地址。如果程序使用嵌入服务器,则需要在程序中添加如下代码:
ServiceHost _dvHost = null;
IManagementService _service = null;
IManagementService proxy = server.CreateManagementService();
_service = proxy;
_dvHost = new ServiceHost(proxy);
WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message);
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.MaxReceivedMessageSize = 4655360;
_dvHost.AddServiceEndpoint(typeof(IManagementService), binding, "https://localhost:8080");
_dvHost.Open();
同时需要添加引用Microsoft.ComplexEventProcessing.ManagementService.dll,输入加亮部分地址就可以连接嵌入服务器了。
连接到服务器的几种常见错误
错误1
HTTP could not register URL https://+:8001/. Your process does not have access rights to this namespace (see https://go.microsoft.com/fwlink/?LinkId=70353 for details).
这个错误是由于用户对访问的URL没有权限。解决方法如下:
- netsh http add urlacl url=https://localhost:8090/MyStreamInsightServer user=<domain\userid>
- net localgroup StreamInsightUsers$Default /ADD SOMEDOMAIN\someuser
错误2
一般是URL地址不正确或者StreamInsight程序没有运行。
错误3
一般是由于StreamInsight程序没有运行。
错误4
一般是由于用户没有添加到正确的组。注意检查如下几个用户组:StreamInsightUsers$***, Performance Log Users
错误5
这个错误一般是由于用户程序中有断点。
显示查询(在线和离线)
在通过在线模式连接服务器或者离线模式打开trace文件后,用户可以查看查询的图形化界面:
在线模式下,用户可以通过菜单上的“开始录制”和“停止录制”录制一段时间的事件流。也可以采用Trace.cmd start <文件名>.etl和Trace.cmd stop <文件名>.etl来录制。
事件流分析(在线和离线)
用户可以通过如下菜单来实现对事件流的调试:
重播菜单可以通过但不模式从头开始一步一步调试事件流的变化,也可以直接跳转到用户设置的断点。寻根分析(Root Cause Analysis)可以找出指定事件的事件源。演化分析(Event Propagation Analysis)可以更重指定事件之后的所有演变。通过多个菜单的综合运用,用户就可以找出事件流中的异常事件数据,并进行更进一步的分析。
更多信息,请参见:
https://technet.microsoft.com/zh-cn/library/ff518532.aspx
软件测试工程师 金晶