Перевірка баз даних за допомогою HostTracker

Опубликовано: 2017-07-31 все статьи | Глосарій | ПОШИРЕНІ ЗАПИТАННЯ

В даній статті ми б хотіли познайомити вас ще з однією цікавою та корисною функцією нашого сервісу - Перевірка баз даних (далі - БД).

Існує багато різних сервісів і метрик для збору та аналізу інформації про роботу ресурсу, як-от кількість відвідувачів, тривалість сесій, розподіл аудиторії за регіонами тощо. Але під час роботи з даними виникає потреба в порівнянні даних показників, а особливо більш «технічних» їх характеристик, наприклад, приросту бази.

Саме для отримання та оцінки таких параметрів, команда розробників та аналітиків ХостТрекера розробила простий для розуміння та використання інструмент – Перевірка БД.

Налаштування запиту

Як правило, налаштування даного запиту не займає багато часу. Функція Перевірка БД дозволяє кожного разу при перевірці виконувати певний запит до бази даних, і відповідним чином обробляти результат. У разі, якщо запит не визначено – буде перевірятися можливість підключення до бази. Найцікавіше в даному інструменті - можливість з заданим часовим інтервалом виконувати певний запит, при цьому зберігаючи та порівнюючи його результати. Запит може бути будь-який - від простих вибірок до більш складніших, як-от (регулярних) апдейтів таблиць, запуску процедур (замість планувальника), різноманітних порівнянь і логічних операцій. Єдине обмеження – такий запит повинен виконуватися за 30 секунд, інакше - буде повернуто помилку по таймауту. Яким же чином ці дані можна аналізувати?

По-перше, запит має бути написаний таким чином, щоб потрібне значення поверталося в першу колонку першого рядка результуючого набору. Саме це отримане значення можна аналізувати. По-друге, для запитів з використанням операторів маніпулювання даними (UPDATE, INSERT, DELETE) ще додатково буде фіксуватися кількість оброблених рядків.

Наприклад, графік результату виконання DELETE за певними параметрами буде виглядати таким чином:

Відповідно, кожне таке спостереження фіксується, а останній результат запиту завжди доступний в таблиці завдань інтерфейсу. При цьому, якщо значення числове - по ньому буде побудовано графік, за допомогою якого можна прослідкувати динаміку змін відповідного параметру (параметрів). На даному етапі також можна задавати умови відбору – тобто значення може бути рівним/нерівним, перевищувати задане, перебувати у визначеному проміжку/поза ним тощо.

У випадку, якщо умова не буде виконуватися - запит не пройшов перевірку через таймаут або відсутнє з’єднання з БД - вам буде надіслано повідомлення (нагадаємо, ХостТрекер підтримує SMS, E-mail, Skype, Viber, Telegram, Push, Slack сповіщення та голосовий дзвінок).

Приклад використання

Для прикладу продемонструємо сценарій для відстеження розміру файлів БД і отримання повідомлень при досягненні певного критичного значення.

  1. Пишемо запит, щоб отримати потрібні нам дані про вільне місце в табличному просторі: 

          SELECT
          convert(DECIMAL(12,2),round(sysfile.size/128.000,2)) AS 'FileSize/mb'
          , convert(DECIMAL(12,2),round(fileproperty(sysfile.name,'SpaceUsed')/128.000,2))
          AS 'Used/mb'
          , convert(DECIMAL(12,2),round((sysfile.size-fileproperty(sysfile.name,'SpaceUsed'))/128.000,2))
          AS 'Free/mb'
          , filegroup.groupname AS 'File-group'
          , sysfile.[name],sysfile.[filename]
          FROM dbo.sysfiles sysfile (NOLOCK)
          inner join dbo.sysfilegroups filegroup (NOLOCK) ON filegroup.groupid =
          sysfile.groupid
          UNION ALL 
          SELECT
          convert(DECIMAL(12,2),round(sysfile.size/128.000,2)) AS 'FileSize/mb'
          , convert(DECIMAL(12,2),round(fileproperty(sysfile.name,'SpaceUsed')/128.000,2))
          AS 'Used/mb'
          , convert(DECIMAL(12,2),round((sysfile.size-fileproperty(sysfile.name,'SpaceUsed'))/128.000,2))
         AS 'Free/mb'
         , (CASE WHEN sysfile.groupid = 0 THEN 'Log' END) AS 'File-group'
         , sysfile.[name],sysfile.[filename]
         FROM dbo.sysfiles sysfile (NOLOCK) WHERE groupid = 0
         ORDER BY [File-group],sysfile.[name]                                          

      2.  Отримуємо таку картину:

      3.  Обираємо потрібні параметри:

             1.  Результат запиту - «значення в першій колонці першого рядка».

             2.  Перевірка результату - «менше, ніж» і вводимо в поле значення «1000».

Отримуємо: якщо лог-файл перевищить 1 Гб, нам надійде сповіщення.

Крім того, можна завжди переглянути історію завдання – для розуміння як швидко і коли саме спостерігався приріст.

Налаштування моніторингу

Під час налаштування необхідно вказати адресу сервера, порт, назву бази, логін і пароль користувача під яким буде виконуватися запит. Для даного завдання ми рекомендуємо створити окремого користувача з обмеженими правами (надати йому права тільки на ті дії, які йому слід виконувати). Також необхідно додати адреси серверів ХостТрекера звідки будуть проводитися перевірки в білий список фаєрволу та сервера БД, щоб забезпечити доступ до бази. Дані адреси визначені наперед – вони постійні.

Теги: guide