Установка плагина для DBeaver
Плагин PanDev Metrics для DBeaver делает работу с базами данных видимой в ваших метриках. До его появления аналитик, DBA или бэкенд-разработчик мог потратить полдня на разбор инцидента через SQL-запросы — и всё равно выглядеть неактивным в отчётах. Плагин устанавливается с p2 update site, выполняет вход по API-токену, а его данные попадают на ту же шкалу активности, что и данные из IDE, браузера и терминала.
Требования
- DBeaver 25.x или новее, Community или PRO. Проверено на DBeaver 26.1.4.
- Отдельная установка Java не нужна — DBeaver поставляется со своей средой выполнения.
- API-токен из вашего рабочего пространства PanDev Metrics (см. Вход).
Как работает плагин
Плагин подключается к Query Manager — встроенной точке расширения DBeaver, через которую проходит каждый вызов к базе. Это значит, что не нужен форк DBeaver и нет зависимости от внутренних классов UI: обработчик регистрируется сам при старте IDE.
| Событие | Когда срабатывает | Что попадает в метрики |
|---|---|---|
CONSOLE_QUERY | Вы выполняете SQL | Структура запроса, число строк, длительность, текст ошибки |
CONNECTION_SUCCESSFUL | Открывается подключение к базе | Имя подключения, СУБД, JDBC URL, пользователь базы |
CONNECTION_FAILED | Попытка подключения не удаётся | То же, плюс причина |
DB_CELL_MANUAL_CHANGE | Вы вручную правите данные в гриде результатов | Таблица, колонка, новое значение, id строки |
События накапливаются в пакеты и отправляются каждые 90 секунд. Всё, что не успело уйти, шифруется и пишется на диск, поэтому переживает перезапуск DBeaver и отправляется, как только связь восстановится. Служебные запросы, которые DBeaver выполняет сам, — чтение метаданных для навигатора и автодополнения — отфильтровываются ещё до постановки в очередь.
Полный список собираемых и несобираемых сигналов — в обзоре.
Установка
Способа два: мастер DBeaver — рекомендуемый вариант, занимает около минуты, — и командная строка p2 director для массового развёртывания. Шаги мастера описаны ниже.
-
В DBeaver откройте Help → Install New Software…
-
Нажмите Add… и вставьте URL update site в поле Location:
https://storage.googleapis.com/pandev-backoffice-cloud-test-assets/dbeaver/updates/Офлайн-установка: скачайте архив плагина и укажите его через Add… → Archive….
-
Выберите категорию PanDev Metrics, нажмите Next и примите лицензию.
-
Завершите работу мастера и согласитесь на перезапуск DBeaver.
После перезапуска в главном меню появляется пункт PanDev Metrics.
Перед установкой плагина запустите DBeaver хотя бы один раз. DBeaver в /Applications — это подписанный и нотаризованный бандл: до первого запуска у него ещё стоит флаг карантина, а Gatekeeper проверяет всю подпись именно при первом запуске, поэтому любой файл, добавленный внутрь бандла до этого, ломает подпись. macOS не просто отказывается запускать такое приложение — она удаляет его как повреждённое, и восстановление сводится к переустановке.
brew install --cask dbeaver-community
open -a DBeaver # первый запуск: Gatekeeper проверит и одобрит приложение
# закройте DBeaver — и только теперь ставьте плагин
Установка из командной строки
p2 director работает без GUI и ясно сообщает об ошибках, поэтому подходит для массового развёртывания и CI.
/Applications/DBeaver.app/Contents/MacOS/dbeaver \
-application org.eclipse.equinox.p2.director \
-repository https://storage.googleapis.com/pandev-backoffice-cloud-test-assets/dbeaver/updates/ \
-installIU kz.pandev.metrics.dbeaver.feature.feature.group \
-nosplash -consoleLog
В Linux лаунчер — /usr/share/dbeaver/dbeaver, в Windows — C:\Program Files\DBeaver\dbeaver.exe. При успешном выполнении выводятся Overall install request is satisfiable и Operation completed. Чтобы удалить плагин, замените -installIU на -uninstallIU.
Папка dropins не работает на DBeaver 26.1.4 — бандл так и не попадает в p2-профиль. Используйте мастер или p2 director.
Вход
Вход выполняется только по API-токену; логин и пароль не поддерживаются — это устаревший путь. Адрес сервера и логин компании вводить тоже не нужно: URL сервера зашифрован внутри самого токена и извлекается локально.
- После перезапуска DBeaver показывает окно входа. Открыть его позже можно через PanDev Metrics → Вход…
- Вставьте API-токен и нажмите Войти.
Откройте веб-приложение PanDev Metrics, перейдите в Настройки → Плагины и нажмите DBeaver — откроется инструкция по установке. Скопируйте значение из шага Введите ваш токен; токены начинаются с pandev_.
На том же шаге есть кнопки Обновить токен и Отозвать токен. В рабочем пространстве активен один токен, и он же подходит для IDE-плагинов, браузерных расширений и CLI. С on-prem всё так же: токен берётся из вашего собственного экземпляра.
Плагин сохраняет в защищённое хранилище платформы сам API-токен, а не только выданный на его основе access token. Когда access token истекает, плагин незаметно обновляет его, поэтому повторный вход запрашивается только если токен был отозван, — и в любом случае накопленные события не теряются. Сбор данных начинается сразу после входа; перезапуск не нужен.
Индикатор активности
Начиная с версии 1.2.0, в строке состояния DBeaver внизу окна отображается чип PanDev Metrics — по одному на каждый настроенный сервер. На чипе есть точка состояния и время активности за сегодня, например 3 h 51 m; он обновляется сам каждые 60 секунд в фоне.
- Зелёная точка — сервер отвечает.
- Красная точка — сервер недоступен или нужно войти снова.
- Серая точка — данные загружаются.
Время на чипе — это весь ваш день по всем категориям: написание кода, браузер, базы данных, терминал и AI, — то же число, что показывает веб-дашборд, а не только работа с базами. Клик по чипу открывает всплывающее окно «Время активности»: кольцевую диаграмму по категориям, разбивку со временем и долями, отдельный раздел AI, включающий фоновое время AI, не учитываемое в общей сумме, и кнопку перехода в полный дашборд. Это тот же индикатор, что и в плагине для JetBrains.
Настройки
PanDev Metrics → Настройки…, либо Preferences → PanDev Metrics.
| Настройка | По умолчанию | За что отвечает |
|---|---|---|
| Собирать статистику работы в DBeaver | Вкл | Главный переключатель |
| SQL-запросы, выполненные пользователем | Вкл | События CONSOLE_QUERY |
| Подключения к базам данных (успешные и неудачные) | Вкл | События CONNECTION_SUCCESSFUL / CONNECTION_FAILED |
| Ручные правки данных в гриде результатов | Вкл | События DB_CELL_MANUAL_CHANGE |
| Скрывать значения в тексте запросов | Вкл | Маскирование литералов |
| Сохранять новые значения при ручной правке ячеек | Вкл | Новое значение внутри события правки |
Конфиденциальность
По умолчанию значения внутри текста запроса заменяются на ?: структура сохраняется, данные — нет. Комментарии удаляются целиком, потому что именно туда обычно попадают скопированные продакшн-данные.
-- вы выполнили
SELECT * FROM clients WHERE email = 'ivan@example.com' AND balance > 1000000
-- на сервер уходит
SELECT * FROM clients WHERE email = ? AND balance > ?
Содержимое результирующих наборов не собирается никогда, ни при каких настройках. Пароли к базам плагин не видит: ему известно только имя пользователя подключения. Передаются структура запроса, имена таблиц и колонок, метаданные подключения, длительность и результат, а также сам факт и содержимое ручного изменения данных, — всё по HTTPS, и каждый из этих пунктов можно отключить в настройках плагина, включая сбор целиком.
Проверка
- Сразу после перезапуска откройте Window → Show View → Error Log. Там должны появиться строки
[PanDev Metrics], сообщающие, что бандл активен и обработчик Query Manager зарегистрирован. - Откройте подключение и выполните любой запрос.
- Подождите до 90 секунд — это интервал отправки.
- Откройте веб-приложение PanDev Metrics → ваш профиль → сегодня. Активность в базах данных появится на шкале времени.
Устранение неполадок
В Error Log нет строк [PanDev Metrics].
Плагин не установлен. Повторите установку через мастер или p2 director — папка dropins не работает.
На дашборде нет данных. События отправляются пакетами каждые 90 секунд, поэтому подождите пару минут. Затем проверьте, что главный переключатель в настройках плагина включён, а чип в строке состояния зелёный.
Ошибка аутентификации или чип стал красным. Скорее всего, токен был обновлён или отозван в веб-приложении. Скопируйте текущий токен из Настройки → Плагины и вставьте его заново в PanDev Metrics → Вход…
macOS удалила DBeaver как повреждённый.
Плагин был установлен в бандл, который ни разу не запускали. Переустановите DBeaver командой brew reinstall --cask dbeaver-community, запустите его один раз, затем установите плагин.
Нужен подробный лог.
Добавьте -Dpandev.metrics.debug=true после -vmargs в dbeaver.ini (/Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini в macOS, C:\Program Files\DBeaver\dbeaver.ini в Windows, /usr/share/dbeaver/dbeaver.ini в Linux) и перезапустите DBeaver.
Я часто работаю офлайн. Настраивать ничего не нужно. События накапливаются локально в зашифрованном виде, переживают перезапуск и отправляются, как только появится сеть.
FAQ
Почему отдельный плагин, а не плагин для Eclipse?
DBeaver построен на Eclipse RCP, но бандл PanDev для Eclipse жёстко требует org.eclipse.egit, org.eclipse.debug.core и org.eclipse.core.resources, которых в DBeaver нет; такой бандл там просто не разрешится. Отличается и предмет измерений: плагин для Eclipse считает работу над кодом — проекты, ветки, коммиты, — а в DBeaver речь о подключениях, запросах и данных.
Мои результаты запросов будут отправлены? Нет. Результирующие наборы не собираются никогда. Плагин отправляет структуру запроса, метаданные подключения и тайминги — а литералы внутри текста запроса по умолчанию маскируются.
Он замедляет мои запросы? Нет. Обработчик лишь кладёт событие в очередь в памяти; внутри выполнения запроса нет ни сетевой, ни дисковой работы, а любая ошибка внутри плагина глушится на месте.
Можно использовать его вместе с другими плагинами PanDev Metrics? Да. Активность в DBeaver попадает на ту же шкалу, что и активность в IDE, браузере, терминале и AI. Данные из DBeaver и DataGrip сводятся в один отчёт.
Нужно ли входить по логину и паролю? Нет, и такой возможности нет. API-токен содержит внутри себя адрес сервера, поэтому токен — единственное, что нужно вводить.