На фотографии макрофото глаз стрекозы. Они имеют фасеточное строение и состоят примерно из 30000 шестиугольных фасетов, что позволяет стрекозе смотреть практически на 360 градусов (за исключением направления «прямо назад»). Полезное умение, если ты стрекоза.

Когда в организации «зоопарк» баз данных, а их унификация на горизонте даже не просматривается, нужно прилагать усилия, чтобы успевать управлять и следить за их работой. Посмотрите ещё раз на стрекозу.

В статье расскажем об инструменте мониторинга Foglight for Databases, который объединяет в одной консоли мониторинг SQL Server, Oracle, MySQL, PostgreSQL, DB2, SAP ASE, MongoDB и Cassandra. В нём также есть лёгкий налёт DevOps в части логирования изменений в конфигурации баз данных. Обо всём по порядку. Под катом много скриншотов.

Почему до ката мы упомянули DevOps? Одна из приглянувшихся фишек Foglight — возможность в ручном режиме отмечать на таймлайне релизы и вообще любые изменения. Разработчики сами могут вносить данные об изменениях и через некоторое время здесь же получать обратную связь в виде снижения или повышения производительности. В автоматическом режиме отслеженные изменения тоже отмечаются: изменения в Execution Plan или конфигурации БД — всё это будет присутствовать на графике.



Примеры изменений.



Отсюда же можно перейти в другое представление и сравнить изменения в Execution Plan.



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





Насколько хорошо налажен канал общения между разработчиками и администраторами БД? Обо всех ли изменениях вовремя узнают коллеги из эксплуатации? Что если новый релиз породил спорадическую проблему, которая начала проявляться на регулярной основе и замедляет работу приложения?

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

Дальше в статье покажем возможности мониторинга для каждой из поддерживаемых баз данных.

Microsoft SQL Server




Ключевая особенность мониторинга SQL Server в Foglight for Databases — наличие инструмента Performance Investigator, который выполняет многомерный анализ производительности БД в разрезах по базам данных, долгим запросам, сессиям, пользователям, исполнимым скриптам, рабочим станциям и приложениям.



Другая особенность — поддержка технологий SSIS, SSRS и SSAS. Например, ниже обзорное представление с метриками SSIS.



Из представления выше можно «провалиться» на уровень с детализацией до пакетов и выявить проблемные.

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



Многие представления дублируют отчёты, которые можно построить в Management Studio. Мониторинг ведётся удалённо, и суммарный оверхед не превышает 2%. В актуальной версии Foglight поддерживаются версии SQL Server от 2005 до 2017.

Oracle




Для мониторинга БД Oracle в Foglight также предусмотрен инструмент Performance Investigator. Концепция его работы во многом аналогична подходам для мониторинга SQL Server, в основе — многомерный анализ производительности БД.





Поддерживаются технологии RAC, Exadata, ASM и Data Guard.

My SQL




Мониторинг My SQL охватывает основные показатели (в том числе и репликацию как один к одному, так и один ко многим) и отслеживает изменения в конфигурации БД аналогично SQL Server и Oraсle. Можно создавать свои шаблоны конфигурации, соответствие которым будет также отслеживаться.

Foglight умеет контролировать параметры выполнения запросов в БД. Делает это методом explain. Есть специальные представления по таблицам различных БД My SQL на едином экране. Из единой точки можно контролировать сотни баз данных и с небольшим оверхедом (не более 2%).



Postgre SQL


В модуле для мониторинга Postgre SQL есть представления а’ля helicopter view для обзора ключевых показателей производительности БД, обзор показателей таблиц.



Поддерживается мониторинг репликации и контроль выполнения WAL (Write-Ahead Logging) как на стороне отправителя, так и получателя.

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



Мониторинг баз PostgreSQL выполняется также удалённо, и оверхед не превышает 2%.

DB2


После настройки мониторинга основные метрики DB2 можно сразу же увидеть на агрегирующем дашборде.



Мониторинг БД DB2 выполняется безагентским способом с оверхедом, в среднем не превышающем 2%.

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



На скриншоте ниже дашборд с блокировками. Из каждого дашборда можно сделать отчёт. В том числе и на регулярной основе.



При необходимости можно отслеживать тяжёлые запросы.



C помощью модуля для СУБД DB2 можно контролировать конфигурацию и выполнять автоматическую постановку на мониторинг новых БД.

SAP ASE


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



По каждому database engine доступны более подробные данные. Переключаясь между вкладками, можно посмотреть связанные процессы и сравнить производительность.



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



Модуль для SAP ASE поддерживает удалённый мониторинг. На основе всех собираемых данных можно создавать собственные дашборды и отчёты.

MongoDB


Как и с предыдущими СУБД, мониторинг MongoDB выполняется удалённо. После настройки мониторинга будет доступно агрегирующее представление с основными метриками мониторинга.



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



При включённом в настройках СУБД профилировании можно селектить и выводить на дашборд все соответствующие метрики. Если у БД есть реплика, Foglight будет контролировать также вещи вроде member status, health и прочие.

Дополнительный полезный функционал — мониторинг конфигурации нод, сравнение со стандартной и алерт в случае изменений.

Cassandra


Установка агента на ноды не требуется, всё происходит удалённо и с минимальным оверхедом. После настройки мониторинга Cassandra в Foglight появляется набор дашбордов с показателями производительности БД.



Foglight поддерживает контроль keyspace для нод в кластере, их сравнение по производительности (количество обращений к объектам, показатели read/write, задержку). Ноды можно также сравнивать по конфигурациям, количеству обработанных сообщений, сообщений с ошибками и т.д.



На скриншоте ниже интерфейс Foglight for Cassandra и представление по производительности JVM.



Из всех собранных метрик можно конструировать собственные дашборды и отчёты.

Заключение


Спасибо, что дочитали и досмотрели до этого места. Подытожим.
  1. Foglight for Databases поддерживает мониторинг SQL Server, Oracle, MySQL, PostgreSQL, DB2, SAP ASE, MongoDB и Cassandra.
  2. Кроме производительности самих БД Foglight также контролирует их конфигурацию.
  3. Данные по разным СУБД можно комбинировать на одном дашборде (а вдруг надо?).
  4. Мониторинг всех СУБД выполняется удалённо с оверхедом, не превышающим 2%. Из одной точки можете контролировать все базы.
  5. У Foglight for Databases есть REST API, из которого можно забирать метрики или события во внешние системы дашбординга, отчётинга или алертинга. Если есть зонтичная система мониторинга, в неё тоже можно будет встроиться.
  6. Кроме СУБД Foglight умеет и виртуализацию (VMware, Hyper-V, Openstack), СХД, серверы, AD, Exchange.

С Foglight for Databases можно познакомиться поближе. Заявку на пилотный проект или получение дистрибутива и тестовых лицензий (если захотите сделать всё сами) вы можете оставить через форму обратной связи на сайте.