
На фотографии макрофото глаз стрекозы. Они имеют фасеточное строение и состоят примерно из 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.

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