Поделиться через


Наблюдение за сервером служб StreamInsight и запросами

При наблюдении за состоянием сервера StreamInsight выполняется также отслеживание общей исправности системы и производительности запросов. Данные о состоянии сервера StreamInsight перехватываются путем отслеживания запросов StreamInsight, выполняемых на сервере, а также контроля использования системных ресурсов сущностями, составляющими запрос StreamInsight.

В этом разделе

  • Создание представлений диагностики

  • Какие проблемы можно устранять с помощью представлений диагностики

  • Состояния запроса

  • Основные сведения о наблюдении на уровне запроса

  • Наблюдение за задержкой запроса

  • Список диагностических свойств

    • Диагностика операторов

    • Диагностика адаптера

    • Диагностика потоков

    • Диагностика запроса

    • Диагностика опубликованного потока

    • Диагностика сервера

  • Доступ к диагностике с использованием PowerShell

Создание представлений диагностики

Данные наблюдения можно получать с помощью API представлений диагностики. Перед использованием этого API необходимо включить веб-службу управления во внедренном и изолированном режиме развертывания сервера и подключить клиентское приложение к серверу через эту службу. Дополнительные сведения см. в разделе Публикация и соединение с сервером служб StreamInsight.

Наблюдение за сервером и запросами также можно выполнять с помощью функций диагностики в отладчике потока событий StreamInsight, который использует API диагностики для вывода результатов в графическом пользовательском интерфейсе. Следует подключить отладчик к активному серверу StreamInsight и просматривать различные объекты на сервере с помощью обозревателя объектов. Щелкните любой объект правой кнопкой мыши, чтобы получить диагностические данные времени выполнения для этой сущности. Дополнительные сведения см. в разделе Использование отладчика потока событий StreamInsight.

Доступ ко всем объектам на сервере выполняется с использованием URI на основе иерархической схемы именования. Эта схема начинается с сервера и продолжается до операторов запроса и потоков событий. Диагностические данные уровня сервера можно получать из следующих объектов.

  • cep:/Server

  • cep:/Server/PlanManager

  • cep:/Server/EventManager

  • cep:/Server/Query

Для ссылки на конкретный запрос применяется схема именования cep:/Server/Application/ApplicationName/Query/QueryName.

Для ссылки на отдельные операторы и потоки, принадлежащие запросу, используйте следующие схемы именования. Обратите внимание, что адаптеры также считаются операторами в запросе. Используйте для адаптеров правила работы с операторами.

  • cep:/Server/Application/имя_приложения/Query/имя_запроса/Operator/имя_оператора

  • cep:/Server/Application/имя_приложения/Query/имя_запроса/Stream/имя_потока

Например, для ссылки на запрос с именем TrafficSensorQuery в приложении с именем ObjectModelSample используйте конструкцию cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery.

Диагностические сведения для этих объектов можно получить путем вызова метода GetDiagnosticView(). Диагностические параметры при получении можно фильтровать по двум измерениям — аспекту (память, ЦП и другие атрибуты, относящиеся к параметру) и уровню (важности). Такие условия фильтрации задаются с помощью методов SetDiagnosticsSettings() и ClearDiagnosticSettings(), которые устанавливают или сбрасывают определенные параметры для указанного запроса. Следующий пример взят из образца ExplicitServer.cs. В нем выводятся диагностические данные по различным объектам для выполняющегося запроса. В примере предполагается, что зарегистрирован экземпляр StreamInsight с именем MyInstance.

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. К проблемам такого рода относятся медленная работа сети, низкое быстродействие дискового ввода-вывода, недостаточный объем памяти и конкуренция за ресурсы на сервере.

[В начало]

Состояния запроса

За время своего существования запрос сменяет несколько состояний. Эти состояния описаны в следующей таблице.

Состояние запроса

Описание

Остановлено

Запрос больше не является активным. Не сохранен план запроса.

Это состояние, как правило, возникает после вызова метода Stop запроса.

Инициализация

Это состояние, как правило, существует после одного из следующих событий.

  • Запрос был остановлен, и пользователь вызвал его метод Start. В процессе обработки запрос перешел в состояние Running без взаимодействия с пользователем.

  • Выполнялся эластичный запрос, и сервер восстанавливается после сбоя. Чтобы изменить состояние запроса, пользователь должен вызвать его метод Start.

Выполнение

Запрос обрабатывает события.

Это состояние, как правило, возникает после вызова метода Start запроса.

Назначение контрольных точек

Запрос выполняется, и происходит создание контрольной точки.

Это состояние, как правило, существует после вызова метода BeginCheckpoint.

Останавливается

Пользователь запросил останов запроса.

Это состояние, как правило, возникает после вызова метода Stop запроса.

Приостановлено

Восстановление эластичного запроса окончилось неуспешно, либо не удалось выполнить восстановление, поскольку сервер был запущен без поддержки эластичности.

Завершено

Запрос завершился успешно. Поэтому входные адаптеры ставили в очередь маркеры конца потока, а выходной адаптер их обрабатывал.

Прерван

Произошел сбой. Запрос все еще доступен в диспетчере планов.

[В начало]

Основные сведения о наблюдении на уровне запроса

Если предусмотрено отслеживание производительности запросов на сервере StreamInsight, то можно использовать атрибуты контроля на уровне запроса, предоставляемые в API ManagementService. Следующее изображение потока событий поможет представить способ использования этих атрибутов наблюдения.

Наблюдение за событиями с помощью запросов CEP.

На изображении имеются четыре точки измерения, которые записывают прохождение событий (слева направо) от входного адаптера через запрос к выходному адаптеру. В этих точках измерения снимаются следующие показатели.

  • Входящие — записывает входящие события на всех входных адаптерах. Это мера скорости поступления исходных входных событий в запрос из входного адаптера.

  • Используемые — записывает события, используемые сервером StreamInsight во всех операторах, которые следуют непосредственно за входными адаптерами. Это мера для событий, поставленных в очередь на сервере.

  • Созданные — записывает все события, исходящие из последнего оператора, расположенного непосредственно перед выходным адаптером. Это мера для событий, удаленных из очереди запросов.

  • Исходящие — записывает все события, исходящие из выходного адаптера. Это мера скорости для выхода событий с сервера StreamInsight в приемник.

Ориентируясь по этой иллюстрации, можно определить соответствующий возвращаемый атрибут на основании интересующей области потока событий. Например, если интерес представляет количество событий, обрабатываемых запросом, то можно использовать атрибут QueryTotalConsumedEventCount. В ином случае, если вас интересует события, которые были выработаны запросом, используйте атрибут QueryTotalProducedEventCount.

[В начало]

Наблюдение за задержкой запроса

Задержка представляет собой совокупное число, рассчитанное для всех поступлений и выходов событий на определенном шлюзе (входящих, созданных, использованных или исходящих). Среднюю задержку между измерениями, выполненными в двух точках в один момент времени, можно подсчитать как (S2 – S1) / (C2 – C1), где S — совокупная сумма задержек на любом данном шлюзе, а C — число событий в этой шлюзовой точке.

Например, чтобы вычислить среднюю задержку обработки, измерьте общую задержку (QueryTotalConsumedEventLatency) с отметкой времени t1 (S1) и общее число обработанных событий (QueryTotalConsumedEventCount) с отметкой времени t1 (C1). Затем нужно повторить те же измерения для разных отметок времени (t2), а потом рассчитать среднюю задержку использованных событий как (S2 — S1)/ (C2 — C1).

Чтобы определить эффективность работы адаптеров по передаче событий в запрос и из запроса, а также возможную скорость обработки событий сервером StreamInsight, можно использовать атрибуты с QueryTotalIncomingEventCount по QueryLastProducedCtiTimestamp.

Можно определить общий объем памяти, расходуемой операторами, просуммировав значения атрибутов OperatorEventMemory и OperatorIndexMemory.

[В начало]

Диагностические свойства

Представления диагностики возвращают атрибуты на нескольких уровнях гранулярности объектов: сервер, запрос, опубликованные потоки, оператор и адаптер.

Диагностические данные рассчитаны на агрегирование объектов более мелкой гранулярности в объекты более крупной гранулярности в иерархии. Для каждого из этих уровней можно получить данные диагностики следующих видов.

  • Статические данные (S) возвращают свойство объекта. Статические данные не изменяются при изменении условий операции запроса.

  • Нестатистические данные (N) возвращают статистику, в которую не включены результаты статистической обработки от дочерних объектов к их родительским объектам.

  • Статистические данные (A) возвращают статистику, собранную при статистической обработке от дочерних объектов к их родительскому объекту.

Следует учитывать, что перечисленные ниже свойства диагностических представлений доступны в DiagnosticViewProperty.

Диагностика операторов

Метаданные

В следующей таблице перечислены свойства метаданных, которые описывают отдельные операторы в запросе. Значения этих свойств не изменяются.

Имя свойства

Тип

Описание

OperatorId

Int64

Идентификатор для оператора.

OperatorKind

String

Тип оператора.

OperatorQueryId

Int64

Идентификатор для запроса, в котором находится текущий оператор.

OperatorEventType

String

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

String

Имя поля идентификатора группы для оператора группирования и применения.

OperatorMinCpuUsageAcrossWorkers

Int64

Минимальная загрузка процессора, в миллисекундах, в рабочих потоках оператора.

OperatorMaxCpuUsageAcrossWorkers

Int64

Максимальная загрузка процессора, в миллисекундах, в рабочих потоках оператора.

OperatorMinEventAdjustedCount

Int64

Минимальное количество событий, откорректированных в рабочих потоках оператора.

OperatorMaxEventAdjustedCount

Int64

Максимальное количество событий, откорректированных в рабочих потоках оператора.

OperatorTotalEventAdjustedCount

Int64

Общее количество событий, откорректированных в рабочих потоках оператора.

OperatorMinEventDroppedCount

Int64

Минимальное количество событий, удаленных в рабочих потоках оператора.

OperatorMaxEventDroppedCount

Int64

Максимальное количество событий, удаленных в рабочих потоках оператора.

OperatorTotalEventDroppedCount

Int64

Общее количество событий, удаленных в рабочих потоках оператора.

Агрегированные статистические данные

В следующей таблице приведены статистические данные, агрегированные по всем логическим экземплярам оператора, вплоть до статистических данных запроса.

Имя свойства

Тип

Описание

OperatorIndexEventCount

Int64

Память, используемая индексами по всем активным логическим экземплярам оператора.

OperatorEventMemory

Int64

Объем памяти (в байтах), используемый событиями в индексах по всем логическим экземплярам оператора.

OperatorIndexMemory

Int64

Объем памяти (в байтах), используемый индексами в операторе.

OperatorTotalCpuUsage

Int64

Совокупная загрузка ЦП оператором в миллисекундах.

OperatorTotalScheduledCount

Int64

Общее число раз планирования оператора.

[В начало]

Диагностика адаптера

В данном разделе перечислены диагностические свойства, характерные для адаптеров. Адаптеры представляют собой операторы специального типа, поэтому включают все диагностические свойства, перечисленные для операторов.

Метаданные

В следующей таблице перечислены свойства метаданных, которые описывают отдельные адаптеры. Примечание. значение свойства AdapterState может измениться.

Имя свойства

Тип

Описание

AdapterStateTransitionHistory

String

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

Идентификатор потока.

StreamQueryId

Int64

Идентификатор запроса для потока.

StreamSourceOperatorId

Int64

Идентификатор исходного оператора для потока.

StreamTargetOperatorId

Int64

Идентификатор целевого оператора для потока.

StreamSystemInstance

Boolean

Значение типа 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

String

Текущее состояние запроса.

QueryStartTime

DateTime

Время начала запроса.

QueryEndTime

DateTime

Время окончания запроса.

QueryException

String

Последнее исключение, которое возникло в запросе.

QueryCreationTime

DateTime

Время создания экземпляра запроса.

QueryId

Int64

Идентификатор запроса.

QuerySystemInstance

Boolean

Логическое значение, указывающее, является ли запрос системным.

QueryInstanceGroupId

Int64

Идентификатор группы экземпляров запроса.

Статистические данные

В следующей таблице перечислены статистические данные, характерные для запроса.

Имя свойства

Тип

Описание

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

Идентификатор публикуемого потока.

PublishedStreamEventShape

S

String

String

Форма события, обрабатываемого опубликованным потоком: точечное событие, интервальное или граничное.

PublishedStreamEventType

S

String

String

Строка, содержащая тип события, представленного в XML.

PublishedStreamProducerCount

S

Количество

Int32

Счетчик производителей событий в потоке. Значение равно 0 или 1.

PublishedStreamConsumerCount

S

Количество

Int32

Счетчик потребителей событий из потока.

PublishedStreamEventCount

S

Количество

Int64

Счетчик событий в опубликованном потоке.

PublishedStreamTotalEventCount

S

Количество

Int64

Общий счетчик событий во всех опубликованных потоках.

[В начало]

Диагностика сервера

Сервер

В следующей таблице приведены показатели, относящиеся ко всему серверу (StreamInsight).

Атрибут

Тип данных

Тип .NET Framework

Описание

ServerVersion

String

String

Строка версии сборки сервера.

Диспетчер событий

В следующей таблице приведены показатели, относящиеся ко всему серверу (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

Для получения доступа к сведениям об управляемости или управления метаданными на выполняемом, размещенном экземпляре StreamInsight можно использовать PowerShell. В следующих примерах используется Powershell 2.0. Для запроса в примерах используется образец приложения ObjectModel.cs, работающий на узле StreamInsight.

В следующем примере загружаются DLL-библиотеки Microsoft.ComplexEventProcessing из глобального кэша сборок (GAC).

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)