Использование данных, полученных сборщиком данных и записанных в SQL Server

Ранее было рассмотрено как записать данные о текущих показателях производительности системы в базу данных на SQL Server (статья «Запись показателей монитора производительности Windows в базу данных SQL Server»). В текущей статье разберемся что за данные мы пишем и как их можно использовать.

Информация о получаемых данных

В результате подключения механизма записи показателей счетчиков в базу данных SQL Server, в базе данных были созданы 3 таблицы:

  • DisplayToID
  • CounterDetails
  • CounterData

Таблица «DisplayToID»

Данная таблица содержит информацию о сборщике данных:

  • GUID — идентификатор сборщика данных
  • DisplayString — имя сборщика данных, как он задан в системном мониторе (perfmon)
  • LogStartTime, LogStopTime — информация о времени старта и остановки сборщика данных
  • NumberOfRecords — количество записей (моментов записей, т.е. последний номер итерации получения показателей и их запись в базу данных)
  • MinutesToUTC, TimeZoneName — смещение времени по отношению к UTC и часовой пояс
Таблица "DisplayToID"
Таблица «DisplayToID»

В общем, не особо интересная информация, особенно если сборщик данных только один.

Таблица «CounterDetails»

Эта таблица содержит информацию о логируемых счетчиках, что нам потребуется для идентификации логируемых значений:

  • CounterID — идентификатор счетчика
  • MachineName — имя компьютера/сервера
  • ObjectName — имя объекта, к которому относится счетчик (как задано в системном мониторе)
  • CounterName — имя счетчика
  • InstanceName — имя экземпляра счетчика (как задано в системном мониторе)
  • CounterType, DefaultScale, InstanceIndex, ParentName, ParentObjectID, TimeBaseA, TimeBaseB — не особо интересные поля, поэтому я опущу их рассмотрение
Таблица "CounterDetails"
Таблица «CounterDetails»

Таблица «CounterData»

Самая важная таблица, ради которой все и затевалось — содержит значения счетчиков в конкретные моменты времени.

  • GUID — идентификатор сборщика данных из таблицы «DisplayToID»
  • CounterID — идентификатор счетчика из таблицы «CounterDetails»
  • RecordIndex — порядковый номер записи (номер итерации получения данных по соответствующему сборщику данных, т.е. если в момент сбора данных в сборщике было 5 счетчиков — у них всех будет единый номер)
  • CounterDateTime — дата и время значения показателя (строка в канонической форме ODBC с миллисекундами)
  • CounterValue — абсолютное значение показателя
  • FirstValueA, FirstValueB, SecondValueA, SecondValueB, MultiCount — не особо интересные поля, поэтому я опущу их рассмотрение
Таблица "CounterData"
Таблица «CounterData»

Примеры работы с данными счетчиков

Плюсом «сырых» данных является то что ими можно манипулировать любыми способами. В самых продвинутых случаях, эти данные можно обрабатывать сторонними фреймворками, подключить оповещения, строить графики, в общем, все что в голову взбредет!
В данном разделе приведу несколько простых запросов работы с «сырыми» данными в SQL Server.

Получение данных с отбором по счетчику

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

Получение значений счетчика с отбором по счетчику и времени
Получение значений счетчика с отбором по счетчику и времени

Получение средних значений показателей за период

Нижеприведенный запрос отражает минимальное, максимальное и среднее значение счетчиков за период

Получение минимальных, максимальных и средних значений показателей за период
Получение минимальных, максимальных и средних значений показателей за период

Срез последних значение показателей

Следующий запрос отражает последние значения счетчиков

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *