监视 StreamInsight 服务器和查询
监视 StreamInsight 服务器的状态涉及跟踪系统的总体运行状况和查询性能。StreamInsight 服务器的状态通过监视服务器上运行的 StreamInsight 查询以及监视组成 StreamInsight 查询的实体如何使用系统资源进行捕获。
主题内容
创建诊断视图
使用诊断视图可解决哪些问题?
查询状态
了解查询级别监视
监视查询滞后时间
诊断属性的列表
运算符诊断
适配器诊断
流诊断
查询诊断
已发布流诊断
服务器诊断
使用 PowerShell 访问诊断
创建诊断视图
可通过使用诊断视图 API 来获取监视信息。作为使用此 API 的先决条件,您必须在服务器部署的嵌入模式和独立模式上都启用管理 Web 服务,并且您的客户端应用程序必须通过此 Web 服务连接到服务器。有关详细信息,请参阅发布到和连接到 StreamInsight 服务器。
或者,您可以通过使用 StreamInsight 事件流调试器中的诊断功能来监视服务器和查询,此事件流调试器使用诊断 API 在 GUI 界面中返回结果。您应该将调试器连接到某一处于活动状态的 StreamInsight 服务器,并且使用对象资源管理器查看该服务器中的不同对象。右键单击任何对象可以获取该实体的运行时诊断信息。有关详细信息,请参阅使用 StreamInsight 事件流调试器。
服务器中的所有对象可通过基于分层命名架构的统一资源标识符 (URI) 进行访问。此命名架构以服务器开头,并继续向下深入到查询运算符和事件流。您可以从以下对象检索服务器级别诊断信息:
cep:/Server
cep:/Server/PlanManager
cep:/Server/EventManager
cep:/Server/Query
若要表示特定查询,请使用命名架构 cep:/Server/Application/应用程序名称/Query/查询名称。
若要表示属于某一查询的特定运算符和流,请使用以下命名架构。请注意,在查询中适配器也被视作运算符。将运算符命名法用于适配器。
cep:/Server/Application/应用程序名称/Query/查询名称/Operator/运算符名称
cep:/Server/Application/应用程序名称/Query/查询名称/Stream/流名称
例如,若要在名为“ObjectModelSample”的应用程序中引用名为“TrafficSensorQuery”的查询,请使用 cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery。
通过调用 GetDiagnosticView() 方法获取这些对象的诊断信息。您可以沿两个维度筛选诊断设置的检索 - 视点(内存、CPU 以及特定于该设置的其他属性)和级别(重要性的级别)。您可以使用 SetDiagnosticsSettings() 和 ClearDiagnosticSettings() 方法设置这些筛选条件,以便设置或清除针对指定查询的特定设置。下面的示例摘自示例“ExplicitServer.cs”并且为正运行的查询输出不同对象的诊断信息。该示例假定名为“MyInstance”的注册的 StreamInsight 实例。
public class ExplicitServer
{
public static void Main(string[] args)
{
using (Server server = Server.Create("MyInstance"))
{
try
{
// Create application in server
// Create query logic as a query template
// Register adapter factories
// bind query to event producers and consumers
// Create bound query that can be run
// Create a tracer to output information on the console.
TraceListener tracer = new ConsoleTraceListener();
// Start the query
query.Start();
// Retrieve diagnostic information from the StreamInsight server.
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
tracer.WriteLine("Global Server Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Query")), tracer);
tracer.WriteLine("Summary Query Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);
tracer.WriteLine("Operator Diagnostics");
RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery/Operator/sensorInput")), tracer);
query.Stop();
}
catch (Exception e)
{
tracer.WriteLine(e.ToString());
}
}
}
private static void RetrieveDiagnostics(DiagnosticView diagview, TraceListener traceListener)
{
// Display diagnostics for diagnostic view object
traceListener.WriteLine("Diagnostic View for '" + diagview.ObjectName + "':");
foreach (KeyValuePair<string, object> diagprop in diagview)
{
traceListener.WriteLine(" " + diagprop.Key + ": " + diagprop.Value);
}
}
}
有关在前面的示例中使用的 API 的详细信息,请参阅 DiagnosticView。有关如何使用跟踪侦听器的详细信息,请参阅跟踪侦听器。
[页首]
使用诊断视图可解决哪些问题?
您可以使用诊断视图解决与 StreamInsight 应用程序有关的若干类型的问题。例如:
根源 |
症状 |
---|---|
用户定义的扩展插件速度较慢 |
长系统滞后时间 |
用户定义的扩展插件引发了异常 |
挂起或中止的查询 |
输入适配器不快速传输数据 |
长数据滞后时间 |
输入适配器不生成 CTI |
挂起查询 |
输出适配器未保持正常工作 |
长系统滞后时间 |
但是,您通常无法使用诊断视图解决服务器级别的问题,或者无法解决本地网络问题,这些问题可能正在影响您的 StreamInsight 应用程序。此类问题包括网络速度慢、磁盘 I/O 速度慢、内存不足以及服务器上的资源争用。
[页首]
查询状态
一个查询在其生命周期中要经历若干状态。下表对这些状态进行了说明。
查询状态 |
说明 |
---|---|
已停止 |
查询不再处于活动状态。不保留查询计划 此状态通常在调用查询的 Stop 方法后存在。 |
正在初始化 |
此状态通常在以下事件之一后存在:
|
正在运行 |
查询正在处理事件。 此状态通常在调用查询的 Start 方法后存在。 |
正在执行检查点检查 |
查询正在运行并且检查点检查正在进行中。 此状态通常在调用 BeginCheckpoint 方法后存在。 |
正在停止 |
用户已请求停止查询。 此状态通常在调用查询的 Stop 方法后存在。 |
已挂起 |
有弹性的查询恢复失败,或者由于服务器在没有弹性的情况下启动而无法恢复。 |
已完成 |
查询已正常完成。也就是说,输入适配器排队在流结束标记的末尾,并且输出适配器已使用它们。 |
已中止 |
发生了失败。查询仍可用于计划管理器中。 |
[页首]
了解查询级别监视
在监视 StreamInsight 服务器中的查询性能时,可以使用 ManagementService API 提供的查询级别监视属性。使用下面的事件流图示可帮助您了解如何使用这些监视属性。
基于此图示,设想有四个记录事件通过(从左到右从查询的输入适配器到输出适配器)的测量点。基于这些测量点,可以派生以下度量:
传入 — 记录通过所有输入适配器的传入事件。这是原始输入事件从输入适配器到查询的到达率的度量值。
占用 — 记录 StreamInsight 服务器占用的事件,即,紧跟在输入适配器之后的所有运算符。这是排队到服务器中的事件的度量值。
生成 — 记录离开紧接在输出适配器之前的最后一个运算符的所有事件。这是从查询取消排队的事件的度量值。
传出 — 记录离开输出适配器的所有事件。这是从 StreamInsight 服务器到接收器的事件离开速率的度量值。
通过使用图示作为指导,您可以基于感兴趣的事件流方面确定要返回的相应属性。例如,如果您对查询使用的事件数目感兴趣,则使用属性 QueryTotalConsumedEventCount;或者,如果您对查询已生成的事件感兴趣,则使用属性 QueryTotalProducedEventCount。
[页首]
监视查询滞后时间
滞后时间是跨在特定入口(传入、生成、占用或传出)到达和离开的所有事件计算得出的累计数字。可通过以下方式计算在任意两个时间点进行的度量之间的平均滞后时间:(S2 – S1) / (C2 – C1),其中 S 是任一给定入口的滞后时间的累计和,C 是该入口点的事件计数。
例如,要计算平均占用的滞后时间,应度量时间戳 t1 (S1) 的累计占用滞后时间 (QueryTotalConsumedEventLatency) 以及时间戳 t1 (C1) 的占用事件总计数 (QueryTotalConsumedEventCount)。接下来,在不同时间戳 (t2) 重复相同的度量,并通过 (S2 – S1)/(C2 – C1) 计算平均占用事件滞后时间。
可以使用从 QueryTotalIncomingEventCount 到 QueryLastProducedCtiTimestamp 的属性来确定适配器将事件传输到查询或从查询中传出事件的效率,以及 StreamInsight 服务器处理这些事件的速率。
可通过对 OperatorEventMemory 和 OperatorIndexMemory 属性的值求和来确定运算符占用的总内存。
[页首]
诊断属性
诊断视图返回若干对象粒度级别上的属性:服务器、查询、发布的流、运算符和适配器。
对诊断进行设计,这样,诊断信息可以从层次结构中更细粒度的对象向上聚合到更粗粒度的对象。对于其中每个级别,可以获取以下种类的诊断信息:
静态信息 (S) 返回对象的属性。静态信息不随查询操作的条件的变化而更改。
非聚合信息 (N) 返回未从子对象聚合到其父对象的统计信息。
聚合信息 (A) 返回从子对象到其父对象的聚合统计信息。
请注意,下列所有诊断视图属性均可用于 DiagnosticViewProperty 中。
运算符诊断
元数据
下表列出了描述查询中的各运算符的元数据属性。这些属性的值不会更改。
属性名称 |
类型 |
说明 |
---|---|---|
OperatorId |
Int64 |
运算符的标识符。 |
OperatorKind |
字符串 |
运算符的类型。 |
OperatorQueryId |
Int64 |
当前运算符驻留的查询的标识符。 |
OperatorEventType |
字符串 |
运算符的输出类型的 XML 表示形式。对于 G&A,它是分组字段类型,而非输出类型。 |
非聚合统计信息
下表列出了跨某一运算符的所有逻辑实例聚合、但不向上聚合成查询统计信息的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
OperatorTotalInputEventCount |
Int64 |
运算符的输入事件的总数。 |
OperatorMinInputEventCountAcrossWorkers |
Int64 |
运算符的所有工作线程中处理的输入事件的最小数目。 |
OperatorMaxInputEventCountAcrossWorkers |
Int64 |
运算符的所有工作线程中处理的输入事件的最大数目。 |
OperatorTotalOutputEventCount |
Int64 |
运算符的输出事件的总数。 |
OperatorMinOutputEventCountAcrossWorkers |
Int64 |
运算符的所有工作线程中生成的输出事件的最小数目。 |
OperatorMaxOutputEventCountAcrossWorkers |
Int64 |
运算符的所有工作线程中生成的输出事件的最大数目。 |
OperatorLastOutputCtiTimestamp |
DateTime |
运算符生成的最后一个 CTI 的时间戳(采用应用程序时间)。 |
OperatorTotalOutputCtiCount |
Int64 |
运算符生成的 CTI 事件的总数。 |
OperatorMinOutputCtiCountAcrossWorkers |
Int64 |
运算符的所有工作线程中生成的 CTI 事件的最小数目。 |
OperatorMaxOutputCtiCountAcrossWorkers |
Int64 |
运算符的所有工作线程中生成的 CTI 事件的最大数目。 |
OperatorEventCountSinceLastCti |
Int64 |
自某一运算符的所有工作线程的上次 CTI 以来该运算符生成的事件的聚合数目。 对于 Cleanse 运算符,该值通常为 0(零)。 |
OperatorMinIndexEventCountAcrossWorkers |
Int64 |
运算符的各工作线程的索引中的事件的最小数目。 |
OperatorMaxIndexEventCountAcrossWorkers |
Int64 |
运算符的各工作线程的索引中的事件的最大数目。 |
OperatorMinEventMemoryAcrossWorkers |
Int64 |
运算符的所有工作线程的索引中的事件使用的最小内存量(字节)。 |
OperatorMaxEventMemoryAcrossWorkers |
Int64 |
运算符的所有工作线程的索引中的事件使用的最大内存量(字节)。 |
OperatorMinIndexMemoryAcrossWorkers |
Int64 |
运算符的所有工作线程的索引使用的最小内存量(字节)。 |
OperatorMaxIndexMemoryAcrossWorkers |
Int64 |
运算符的所有工作线程的索引使用的最大内存量(字节)。 |
OperatorNumberOfWorkers |
Int32 |
正在执行运算符的计算单元的数目。 |
OperatorGroupIdField |
字符串 |
分组和应用运算符的分组 ID 字段的名称。 |
OperatorMinCpuUsageAcrossWorkers |
Int64 |
运算符的工作线程中最短 CPU 占用时间(毫秒)。 |
OperatorMaxCpuUsageAcrossWorkers |
Int64 |
运算符的工作线程中最长 CPU 占用时间(毫秒)。 |
OperatorMinEventAdjustedCount |
Int64 |
运算符的各工作线程中调整的事件的最小数目。 |
OperatorMaxEventAdjustedCount |
Int64 |
运算符的各工作线程中调整的事件的最大数目。 |
OperatorTotalEventAdjustedCount |
Int64 |
运算符的工作线程中调整的事件总数。 |
OperatorMinEventDroppedCount |
Int64 |
运算符的各工作线程中删除的事件的最小数目。 |
OperatorMaxEventDroppedCount |
Int64 |
运算符的各工作线程中删除的事件的最大数目。 |
OperatorTotalEventDroppedCount |
Int64 |
运算符的工作线程中删除的事件总数。 |
聚合统计信息
下表列出了跨某一运算符的所有逻辑实例聚合、并且聚合成查询统计信息的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
OperatorIndexEventCount |
Int64 |
运算符的所有活动逻辑实例中的索引使用的内存。 |
OperatorEventMemory |
Int64 |
运算符的所有逻辑实例的索引中的事件使用的内存量(字节)。 |
OperatorIndexMemory |
Int64 |
运算符中的索引使用的内存量(字节)。 |
OperatorTotalCpuUsage |
Int64 |
运算符占用的总 CPU 时间(毫秒)。 |
OperatorTotalScheduledCount |
Int64 |
安排运算符的总次数。 |
[页首]
适配器诊断
本节列出了特定于适配器的诊断属性。适配器是特殊类型的运算符,因此包含为运算符列出的所有诊断属性。
元数据
下表列出了描述单独适配器的元数据属性。请注意,AdapterState 属性值可以更改。
属性名称 |
类型 |
说明 |
---|---|---|
AdapterStateTransitionHistory |
字符串 |
各适配器的最后几个适配器转换的 XML 表示形式。 |
统计信息
下表列出了特定于适配器的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
AdapterTotalSuspendCount |
Int64 |
已挂起的所有适配器实例的总数。 |
AdapterMinSuspendCountAcrossWorkers |
Int64 |
已挂起某个适配器实例的最小次数。 |
AdapterMinSuspendCountAcrossWorkers |
Int64 |
已挂起某个适配器实例的最大次数。 |
AdapterTotalTimeInSuspendedState |
TimeSpan |
某个适配器的所有实例处于挂起状态的总时间。 |
AdapterMinTimeInSuspendedStateAcrossWorkers |
TimeSpan |
某个适配器实例处于挂起状态的最短时间。 |
AdapterMaxTimeInSuspendedStateAcrossWorkers |
TimeSpan |
某个适配器实例处于挂起状态的最长时间。 |
AdapterTotalTimeInNonSuspendedState |
TimeSpan |
某个适配器的所有实例处于非挂起状态的总时间。 |
AdapterMinTimeInNonSuspendedStateAcrossWorkers |
TimeSpan |
某个适配器实例处于未挂起状态的最短时间。 |
AdapterMaxTimeInNonSuspendedStateAcrossWorkers |
TimeSpan |
某个适配器实例处于未挂起状态的最长时间。 |
AdapterFirstCtiTimestamp |
DateTime |
适配器生成或占用的第一个 CTI 的时间戳(采用应用程序时间)。 |
AdapterNumberOfRunningWorkers |
Int32 |
处于“正在运行”状态的适配器实例的数目。 |
AdapterNumberOfStoppedWorkers |
Int32 |
处于“已停止”状态的适配器实例的数目。 |
AdapterNumberOfSuspendedWorkers |
Int32 |
处于“已挂起”状态的适配器实例的数目。 |
适配器弹性
属性 |
信息 类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
InputAdapterLastCheckpointHighWaterMark |
N |
DateTime |
对此流的最后一个检查点使用的应用程序时间高水印。此水印唯一标识输入流中的一个点,在恢复期间,流应重播该点后的所有事件。 |
OutputAdapterLastCheckpointEventOffset |
N |
Int32 |
自应用程序时间高水印以来的事件数,该应用程序时间高水印指定了输出流中采用最后一个检查点的位置。 |
OutputAdapterLastCheckpointHighWaterMark |
N |
DateTime |
由查询采用的最后一个检查点的输出流的应用程序时间高水印。 |
[页首]
流诊断
元数据
下表列出了描述查询中的单独流的元数据属性。这些属性的值不会更改。
属性名称 |
类型 |
说明 |
---|---|---|
StreamId |
Int64 |
流的 ID。 |
StreamQueryId |
Int64 |
流的查询的 ID。 |
StreamSourceOperatorId |
Int64 |
流的源运算符的 ID。 |
StreamTargetOperatorId |
Int64 |
流的目标运算符的 ID。 |
StreamSystemInstance |
Boolean |
指示流是否为系统流的布尔值。 |
非聚合统计信息
下表列出了跨某一流的所有逻辑实例聚合、但不聚合成查询统计信息的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
StreamTotalInputEventCount |
Int64 |
流的输入事件的总数。 |
StreamMinEventCountAcrossWorkers |
Int64 |
流的所有实例中的事件的最小数目。 |
StreamMaxEventCountAcrossWorkers |
Int64 |
流的所有实例中的事件的最大数目。 |
StreamNumberOfWorkers |
Int32 |
此流的实例数目。 |
StreamMinInputEventCountAcrossWorkers |
Int64 |
流的各实例间的输入事件的最小数目。 |
StreamMaxInputEventCountAcrossWorkers |
Int64 |
流的各实例间的输入事件的最大数目。 |
StreamMinMemoryIncludingEventsAcrossWorkers |
Int64 |
流的各实例间使用的最小内存量(字节)。 |
StreamMaxMemoryIncludingEventsAcrossWorkers |
Int64 |
流的各实例间使用的最大内存量(字节)。 |
聚合统计信息
下表列出了跨某一流的所有逻辑实例聚合、且聚合成查询统计信息的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
StreamEventCount |
Int64 |
流的所有实例间的事件的总数。 |
StreamMemoryIncludingEvents |
Int64 |
流及其中的所有事件使用的内存量(字节)。 |
[页首]
查询诊断
查询包含来自其构成运算符和流的聚合统计信息及其自己的统计信息。下面的几节详细介绍了特定于查询的统计信息。
在查询未在运行时,诊断仅返回 QueryState(Suspended 或 Stopped)和 IsResilient(true 或 false)属性。
元数据
下表列出了描述单独查询的元数据属性。这些属性的值不会更改。
属性名称 |
类型 |
说明 |
---|---|---|
QueryState |
字符串 |
查询的当前状态。 |
QueryStartTime |
DateTime |
查询的开始时间。 |
QueryEndTime |
DateTime |
查询的结束时间。 |
QueryException |
字符串 |
在查询中发生的最后一个异常。 |
QueryCreationTime |
DateTime |
查询实例的创建时间。 |
QueryId |
Int64 |
查询的 ID。 |
QuerySystemInstance |
Boolean |
指示查询是否为系统查询的布尔值。 |
QueryInstanceGroupId |
Int64 |
查询的实例组 ID。 |
统计信息
下表列出了特定于查询的统计信息。
属性名称 |
类型 |
说明 |
---|---|---|
QueryTotalIncomingEventCount |
Int64 |
查询的传入事件的总数。 |
QueryTotalConsumedEventCount |
Int64 |
查询使用的事件的总数。 |
QueryTotalProducedEventCount |
Int64 |
查询生成的事件的总数。 |
QueryTotalOutgoingEventCount |
Int64 |
查询的传出事件的总数。 |
QueryLastIncomingEventTimestamp |
DateTime |
查询的最近传入事件的系统时间。 |
QueryLastConsumedEventTimestamp |
DateTime |
查询的最近使用的事件的系统时间。 |
QueryLastProducedEventTimestamp |
DateTime |
查询的最近生成的事件的系统时间。 |
QueryLastOutgoingEventTimestamp |
DateTime |
查询的最近传出事件的系统时间。 |
QueryTotalConsumedEventLatency |
Double |
查询使用的所有事件的总滞后时间(毫秒)。 |
QueryTotalProducedEventLatency |
Double |
查询生成的所有事件的总滞后时间(毫秒)。 |
QueryTotalOutgoingEventLatency |
Double |
查询的所有传出事件的总滞后时间(毫秒)。 |
QueryLastProducedCtiTimestamp |
DateTime |
查询生成的最后一个 CTI 的时间戳(采用应用程序时间)。 |
查询弹性
属性 |
信息 类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
QueryLastCheckpointBeginTime |
N |
DateTime |
查询的最后一个检查点的开始时间。如果尚未采用检查点,或者已停止查询,或者已中止查询,则不会提供此项。 |
QueryLastCheckpointEndTime |
N |
DateTime |
查询的最后一个检查点的完成时间。如果尚未采用检查点,或者已停止查询,或者已中止查询,则不会提供此项。 |
QueryLastCheckpointSize |
N |
Int64 |
查询的最后一个检查点的大小(字节)。如果尚未采用检查点,则不会提供此项。 |
QueryIsResilient |
N |
Boolean |
如果查询已配置为可用于复原,则为 True(无论服务器状态如何)。否则为 False。 |
[页首]
已发布流诊断
下表列出了为已发布流返回的度量。若要了解有关已发布流的详细信息,请参阅“开发人员指南”中的在运行时撰写查询。请注意,每个查询还具有一个隐式的已发布流 - 此已发布流的详细信息将作为查询诊断的一部分显示。
属性 |
类型信息 |
数据类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|---|
PublishedStreamId |
S |
数字 |
Int64 |
已发布流的 ID。 |
PublishedStreamEventShape |
S |
字符串 |
字符串 |
已发布流处理的事件的形状 - 点、间隔或边缘之一。 |
PublishedStreamEventType |
S |
字符串 |
字符串 |
包含 XML 中表示的事件类型的字符串。 |
PublishedStreamProducerCount |
S |
数字 |
Int32 |
进入流的事件的生成者的计数;值为 0 或 1。 |
PublishedStreamConsumerCount |
S |
数字 |
Int32 |
来自流的事件的使用者的计数。 |
PublishedStreamEventCount |
S |
数字 |
Int64 |
已发布流中事件的计数。 |
PublishedStreamTotalEventCount |
S |
数字 |
Int64 |
跨所有已发布流的事件的总计数。 |
[页首]
服务器诊断
服务器
下表列出了服务器范围(StreamInsight 服务器)度量。
属性 |
数据类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
ServerVersion |
字符串 |
字符串 |
服务器的程序集版本字符串。 |
事件管理器
下表列出了可为事件管理器返回的服务器范围内的(StreamInsight 服务器)度量。
属性 |
数据类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
AllEventsCount |
Number |
Int64 |
StreamInsight 服务器中处于活动状态(已分配)的事件计数。 |
AllEventsMemory |
Number |
Int64 |
系统中处于活动状态的所有事件使用的内存量。 |
查询管理器
下表列出了可为查询计划管理器返回的服务器范围内的(StreamInsight 服务器)度量。
属性 |
数据类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
AllQueriesCount |
Number |
Int64 |
StreamInsight 服务器(正在运行和已完成)中正在运行、已中止或已挂起的查询总数。完成的查询意味着适配器已调用 Stopped() 方法来响应查询关闭请求,或查询已中止。 |
AllQueriesStreamCount |
Number |
Int64 |
查询中的总运算符。 |
AllQueriesOperatorCount |
Number |
Int64 |
查询中的流总数。 |
查询(服务器范围)
服务器范围(StreamInsight 服务器)内的查询诊断度量是针对查询、运算符和流显示聚合度量的三个表的并集。此外,此诊断视图还提供查询范围的滞后时间度量。在此处将说明两个度量,以便强调其重要性。
属性 |
数据类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
StreamEventCount |
Number |
Int64 |
跨所有查询的所有逻辑流中的事件总数。 这是跨所有流的事件的累计计数。不同查询中的流可能维护对这些事件的引用;因此,如果在所有查询中汇总此计数,则总事件计数的流内存可能会超过正运行 StreamInsight 服务器的计算机的物理容量。 |
OperatorIndexEventCount |
Number |
Int64 |
跨所有运算符的累计事件计数。 这是跨所有运算符的事件的累计计数。不同查询中的运算符可以维护对这些事件的引用。因此,如果在所有查询中汇总此计数,则总事件计数的内存可能会超过正运行 StreamInsight 服务器的计算机的物理容量。所以,将此数字解释为仅限于特定查询而非所有查询,这一点很重要。 |
服务器弹性
属性 |
信息 类型 |
.NET Framework 类型 |
说明 |
---|---|---|---|
ServerLastRecoveryBeginTime |
N |
DateTime |
服务器开始其最后一个恢复进程的时间。 |
ServerLastRecoveryEndTime |
N |
DateTime |
服务器完成其最后一个恢复进程的时间。 |
ServerIsResilient |
N |
Boolean |
如果为弹性配置了服务器,则为 True。否则为 False。 |
[页首]
使用 PowerShell 访问诊断
您可以使用 PowerShell 访问管理信息或管理 StreamInsight 的正运行托管实例的元数据。下面的示例使用 Powershell 2.0。对于查询,它们使用在 StreamInsight 主机上运行的示例应用程序 ObjectModel.cs。
下面的示例从全局程序集缓存 (GAC) 加载 Microsoft.ComplexEventProcessing DLL。
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__89845dcd8080cc91\Micro...
下面的示例返回可在 StreamInsight 的正运行实例上访问的方法和属性。
PS C:\> $server = [Microsoft.ComplexEventProcessing.Server]::Connect("https://localhost/StreamInsight")
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;}
下面的示例返回事件管理器的服务器范围内的(StreamInsight 服务器)度量。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/EventManager")
PS C:\> $dv
下面是结果集:
Key Value
------------------------------ -----
AllEventsCount 19
AllEventsMemory 249856
下面的示例返回计划管理器的服务器范围内的(StreamInsight 服务器)度量。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/PlanManager")
PS C:\> $dv
下面是结果集:
Key Value
----------------------- -----
AllQueriesCount 14
AllQueriesStreamCount 50
AllQueriesOperatorCount 38
下面的示例为查询 TrafficSensorQuery 返回查询度量。
PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")
PS C:\> $dv
下面是结果集:
Key Value
------------------------------------------ --------------
QueryState Suspended
QueryStartTime 9/22/2009 5:34:02 PM
QueryEndTime 9/22/2009 5:34:03 PM
StreamEventCount 0
OperatorCount 0
QueryTotalIncomingEventCount 553
QueryTotalConsumedEventCount 553
QueryTotalProducedEventCount 192
QueryTotalOutgoingEventCount 192
QueryLastIncomingEventSystemTime 9/22/2009 5:34:02 PM
QueryLastConsumedEventSystemTime 9/22/2009 5:34:02 PM
QueryLastProducedEventSystemTime 9/22/2009 5:34:03 PM
QueryLastOutgoingEventSystemTime 9/22/2009 5:34:03 PM
QueryTotalConsumedEventsLatency 14527.833
QueryTotalProducedEventsLatency 62457.0953
QueryTotalOutgoingEventsLatency 63553.2049
QueryLastProducedCTITimestamp 12/31/9999 11:59:59 PM
StreamMemoryIncludingEvents 0
OperatorIndexEventCount 0
OperatorEventMemory 0
OperatorIndexMemory 65870
OperatorTotalScheduledCount 708
OperatorTotalCpuUsage 670
[页首]