Использование данных, полученных сборщиком данных и записанных в 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.

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

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

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

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

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

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

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

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

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

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

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