监视 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 方法。查询将前进到 Running 状态并且无需用户交互。

  • 一个有弹性的查询已在运行并且服务器正在从失败中恢复。若要更改查询的状态,用户必须调用其 Start 方法。

正在运行

查询正在处理事件。

此状态通常在调用查询的 Start 方法后存在。

正在执行检查点检查

查询正在运行并且检查点检查正在进行中。

此状态通常在调用 BeginCheckpoint 方法后存在。

正在停止

用户已请求停止查询。

此状态通常在调用查询的 Stop 方法后存在。

已挂起

有弹性的查询恢复失败,或者由于服务器在没有弹性的情况下启动而无法恢复。

已完成

查询已正常完成。也就是说,输入适配器排队在流结束标记的末尾,并且输出适配器已使用它们。

已中止

发生了失败。查询仍可用于计划管理器中。

[页首]

了解查询级别监视

在监视 StreamInsight 服务器中的查询性能时,可以使用 ManagementService API 提供的查询级别监视属性。使用下面的事件流图示可帮助您了解如何使用这些监视属性。

通过 CEP 查询监视事件。

基于此图示,设想有四个记录事件通过(从左到右从查询的输入适配器到输出适配器)的测量点。基于这些测量点,可以派生以下度量:

  • 传入 — 记录通过所有输入适配器的传入事件。这是原始输入事件从输入适配器到查询的到达率的度量值。

  • 占用 — 记录 StreamInsight 服务器占用的事件,即,紧跟在输入适配器之后的所有运算符。这是排队到服务器中的事件的度量值。

  • 生成 — 记录离开紧接在输出适配器之前的最后一个运算符的所有事件。这是从查询取消排队的事件的度量值。

  • 传出 — 记录离开输出适配器的所有事件。这是从 StreamInsight 服务器到接收器的事件离开速率的度量值。

通过使用图示作为指导,您可以基于感兴趣的事件流方面确定要返回的相应属性。例如,如果您对查询使用的事件数目感兴趣,则使用属性 QueryTotalConsumedEventCount;或者,如果您对查询已生成的事件感兴趣,则使用属性 QueryTotalProducedEventCount

[页首]

监视查询滞后时间

滞后时间是跨在特定入口(传入、生成、占用或传出)到达和离开的所有事件计算得出的累计数字。可通过以下方式计算在任意两个时间点进行的度量之间的平均滞后时间:(S2 – S1) / (C2 – C1),其中 S 是任一给定入口的滞后时间的累计和,C 是该入口点的事件计数。

例如,要计算平均占用的滞后时间,应度量时间戳 t1 (S1) 的累计占用滞后时间 (QueryTotalConsumedEventLatency) 以及时间戳 t1 (C1) 的占用事件总计数 (QueryTotalConsumedEventCount)。接下来,在不同时间戳 (t2) 重复相同的度量,并通过 (S2 – S1)/(C2 – C1) 计算平均占用事件滞后时间。

可以使用从 QueryTotalIncomingEventCountQueryLastProducedCtiTimestamp 的属性来确定适配器将事件传输到查询或从查询中传出事件的效率,以及 StreamInsight 服务器处理这些事件的速率。

可通过对 OperatorEventMemoryOperatorIndexMemory 属性的值求和来确定运算符占用的总内存。

[页首]

诊断属性

诊断视图返回若干对象粒度级别上的属性:服务器、查询、发布的流、运算符和适配器。

对诊断进行设计,这样,诊断信息可以从层次结构中更细粒度的对象向上聚合到更粗粒度的对象。对于其中每个级别,可以获取以下种类的诊断信息:

  • 静态信息 (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

流及其中的所有事件使用的内存量(字节)。

[页首]

查询诊断

查询包含来自其构成运算符和流的聚合统计信息及其自己的统计信息。下面的几节详细介绍了特定于查询的统计信息。

在查询未在运行时,诊断仅返回 QueryStateSuspendedStopped)和 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

[页首]

请参阅

概念

操作 (StreamInsight)