Перевірка баз даних за допомогою HostTracker
Опубликовано: 2017-07-31 все статьиВ даній статті ми б хотіли познайомити вас ще з однією цікавою та корисною функцією нашого сервісу - Перевірка баз даних (далі - БД).
Існує багато різних сервісів і метрик для збору та аналізу інформації про роботу ресурсу, як-от кількість відвідувачів, тривалість сесій, розподіл аудиторії за регіонами тощо. Але під час роботи з даними виникає потреба в порівнянні даних показників, а особливо більш «технічних» їх характеристик, наприклад, приросту бази.
Саме для отримання та оцінки таких параметрів, команда розробників та аналітиків ХостТрекера розробила простий для розуміння та використання інструмент – Перевірка БД.
Налаштування запиту
Як правило, налаштування даного запиту не займає багато часу. Функція Перевірка БД дозволяє кожного разу при перевірці виконувати певний запит до бази даних, і відповідним чином обробляти результат. У разі, якщо запит не визначено – буде перевірятися можливість підключення до бази. Найцікавіше в даному інструменті - можливість з заданим часовим інтервалом виконувати певний запит, при цьому зберігаючи та порівнюючи його результати. Запит може бути будь-який - від простих вибірок до більш складніших, як-от (регулярних) апдейтів таблиць, запуску процедур (замість планувальника), різноманітних порівнянь і логічних операцій. Єдине обмеження – такий запит повинен виконуватися за 30 секунд, інакше - буде повернуто помилку по таймауту. Яким же чином ці дані можна аналізувати?
По-перше, запит має бути написаний таким чином, щоб потрібне значення поверталося в першу колонку першого рядка результуючого набору. Саме це отримане значення можна аналізувати. По-друге, для запитів з використанням операторів маніпулювання даними (UPDATE, INSERT, DELETE) ще додатково буде фіксуватися кількість оброблених рядків.
Наприклад, графік результату виконання DELETE за певними параметрами буде виглядати таким чином:
Відповідно, кожне таке спостереження фіксується, а останній результат запиту завжди доступний в таблиці завдань інтерфейсу. При цьому, якщо значення числове - по ньому буде побудовано графік, за допомогою якого можна прослідкувати динаміку змін відповідного параметру (параметрів). На даному етапі також можна задавати умови відбору – тобто значення може бути рівним/нерівним, перевищувати задане, перебувати у визначеному проміжку/поза ним тощо.
У випадку, якщо умова не буде виконуватися - запит не пройшов перевірку через таймаут або відсутнє з’єднання з БД - вам буде надіслано повідомлення (нагадаємо, ХостТрекер підтримує SMS, E-mail, Skype, Viber, Telegram, Push, Slack сповіщення та голосовий дзвінок).
Приклад використання
Для прикладу продемонструємо сценарій для відстеження розміру файлів БД і отримання повідомлень при досягненні певного критичного значення.
-
Пишемо запит, щоб отримати потрібні нам дані про вільне місце в табличному просторі:
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 Гб, нам надійде сповіщення.
Крім того, можна завжди переглянути історію завдання – для розуміння як швидко і коли саме спостерігався приріст.
Налаштування моніторингу
Під час налаштування необхідно вказати адресу сервера, порт, назву бази, логін і пароль користувача під яким буде виконуватися запит. Для даного завдання ми рекомендуємо створити окремого користувача з обмеженими правами (надати йому права тільки на ті дії, які йому слід виконувати). Також необхідно додати адреси серверів ХостТрекера звідки будуть проводитися перевірки в білий список фаєрволу та сервера БД, щоб забезпечити доступ до бази. Дані адреси визначені наперед – вони постійні.