【翻译】如何使用PowerShell管理Microsoft StreamInsight?

本文介绍了如何利用PowerShell自动化管理Microsoft StreamInsight,包括加载客户端API、连接主机、获取诊断视图等关键步骤,特别适用于运行ObjectModel样例应用程序时的诊断和状态查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:http://blogs.msdn.com/b/streaminsight/archive/2009/09/25/how-to-manage-microsoft-streaminsight-with-powershell.aspx


你有正在运行StreamInsight主机(StreamInsightHost.exe)吗?或者你有什么应用正宿主于StreamInsight引擎中吗?如果有的话,你可能想知道管理员该怎样获得其管理信息或者访问StreamInsight引擎中的元数据。你可能没法每次都仅仅为查看诊断信息,而在Microsoft Visual Studio中构建一个完整的应用程序。这里脚本所具有的功能刚好能够发挥作用,因为它们能够帮助你自动化管理任务。

Powershell工具正是那些场景中的主角,不仅如此,它对于StreamInsight也能够很好的工作。Powershell能够让你不需要在Visual Studio中编写完整应用的情况下,就能够执行管理任务。此外,它也会因为可以构建强大脚本而备受青睐。下面显示了在运行ObjectModel 样例应用程序时,使用PowerShell 2.0从StreamInsight主机中获取诊断视图的具体步骤。在文末你可以找到基于ObjectModel样例的代码。

目前它已经可以工作于CTP2版本中了——享受它吧!(译者注:这篇博文发表于2009年11月StreamInsight CTP Refresh发布之前)

PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.ComplexEventProcessing")

GAC    Version        Location

---    -------        --------

True   v2.0.50727    

C:\Windows\assembly\GAC_MSIL\Microsoft.ComplexEventProcessing\10.0.0.0__89845dcd8080cc9…

上面的第一步将StreamInsight客户端API加载进入了PowerShell。正如你所看到的,StreamInsight已经安装在了机器上,而我们是从GAC中找到了它的程序集。

PS C:\> $server = [Microsoft.ComplexEventProcessing.Server]::Connect("http://localhost/StreamInsight")

通过这一步,我们建立与运行中的StreamInsight主机进程的链接(确保服务已经启动),并将该链接存储在了server对象中。现在让我们看一下server对象中有哪些成员:

PS C:\> $server | gm

   TypeName: Microsoft.ComplexEventProcessing.Server

Name                    MemberType Definition

----                    ---------- ----------

ClearDiagnosticSettings Method     System.Void ClearDiagnosticSettings(System.Uri name)

CreateApplication       Method     Microsoft.ComplexEventProcessing.Application CreateApplication(string name)

CreateManagementService Method     Microsoft.ComplexEventProcessing.ManagementService.IManagementService CreateManag...

Dispose                 Method     System.Void Dispose()

Equals                  Method     bool Equals(System.Object obj)

GetDiagnosticSettings   Method     Microsoft.ComplexEventProcessing.DiagnosticSettings GetDiagnosticSettings(System....

GetDiagnosticView       Method     Microsoft.ComplexEventProcessing.DiagnosticView GetDiagnosticView(System.Uri name)

GetHashCode             Method     int GetHashCode()

GetType                 Method     type GetType()

SetDiagnosticSettings   Method     System.Void SetDiagnosticSettings(System.Uri name, Microsoft.ComplexEventProcessi...

ToString                Method     string ToString()

Applications            Property   System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=2.0.0....

IsEmbedded              Property   System.Boolean IsEmbedded {get;}

可以看到获取诊断视图的函数(GetDiagnosticView)也在上面的列表中。调用它可以获得事件管理对象,并从主机中管理状态:

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/EventManager")

PS C:\> $dv

Key                                                 Value

---                                                 -----

All Events Count                                    19

All Events Memory (bytes)                           249856

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/PlanManager")

PS C:\> $dv

Key                                                 Value

---                                                 -----

Query Count                                         14

Stream Count                                        50

Operator Count                                      38

由于我们正在运行ObjectModel样例,我们也可以获得交通传感器查询(traffic sensor query)的状态:

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")

PS C:\> $dv

Key                                                 Value

---                                                 -----

Query State                                         Suspended

Start Time                                          9/22/2009 5:34:02 PM

End Time                                            9/22/2009 5:34:03 PM

Stream Count                                        0

Operator Count                                      0

Total Incoming Event Count                          553

Total Consumed Event Count                          553

Total Produced Event Count                          192

Total Outgoing Event Count                          192

Last Incoming Event System Time                     9/22/2009 5:34:02 PM

Last Consumed Event System Time                     9/22/2009 5:34:02 PM

Last Produced Event System Time                     9/22/2009 5:34:03 PM

Last Outgoing Event System Time                     9/22/2009 5:34:03 PM

Total Consumed Events Latency (milliseconds)        14527.833

Total Produced Events Latency (milliseconds)        62457.0953

Total Outgoing Events Latency (milliseconds)        63553.2049

Last Produced CTI Timestamp                         12/31/9999 11:59:59 PM

Stream Event Count                                  0

Stream Memory Including Events (bytes)              0

Operator Index Event Count                          0

Operator Event Memory (bytes)                       0

Operator Index Memory (bytes)                       65870

Total Number of Times Operator Scheduled            708

Total Operator CPU Usage (milliseconds)             670

这个诊断视图列出了许多有用的东西。你可以从StreamInsight帮助文件中查询关于某个操作中单个元素的详细讨论。我经常查询的一些字段是事件总数以及最后一个CTI的时间戳,它们都是判断我的系统活动情况的关键指标。

正如上面提到的,这个例子假定查询正运行在一个暴露Web 服务端点的StreamInsight服务器上。有两个方法可以在样例中做到:

  1. 暴露内嵌服务器的Web服务。我们将在单独的博文中讨论这个问题;
  2. 使用StreamInsightHost.exe。

想要在一个单独的StreamInsight主机而不是内嵌服务器中运行ObjectModel样例,你需要作出少量的调整。这些调整的步骤包含在了样例包的README.txt文件中。附带的是修改后的ObjectModel.cs文件完整代码。注意你需要在代码中编辑输入的csv文件的路径。

ObjectModel文件下载


评论:这篇翻译的博文年代有点久远,不过上面的PowerShell代码目前均可以对StreamInsight 1.1和1.2进行操作。另外,ObjectModel中需要用来的输入输出适配器和csv文件可以从 产品样例中找到。

转载于:https://www.cnblogs.com/StreamInsight/archive/2011/07/07/How-to-Manage-Microsoft-StreamInsight-with-PowerShell.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值