Перейти к основному содержимому
Версия: v2 (текущая)

Установка плагина для 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 для массового развёртывания. Шаги мастера описаны ниже.

  1. В DBeaver откройте HelpInstall New Software…

  2. Нажмите Add… и вставьте URL update site в поле Location:

    https://storage.googleapis.com/pandev-backoffice-cloud-test-assets/dbeaver/updates/

    Офлайн-установка: скачайте архив плагина и укажите его через Add…Archive….

  3. Выберите категорию PanDev Metrics, нажмите Next и примите лицензию.

  4. Завершите работу мастера и согласитесь на перезапуск DBeaver.

После перезапуска в главном меню появляется пункт PanDev Metrics.

Прочитайте это, если у вас macOS

Перед установкой плагина запустите 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 сервера зашифрован внутри самого токена и извлекается локально.

  1. После перезапуска DBeaver показывает окно входа. Открыть его позже можно через PanDev MetricsВход…
  2. Вставьте 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, и каждый из этих пунктов можно отключить в настройках плагина, включая сбор целиком.

Проверка

  1. Сразу после перезапуска откройте WindowShow ViewError Log. Там должны появиться строки [PanDev Metrics], сообщающие, что бандл активен и обработчик Query Manager зарегистрирован.
  2. Откройте подключение и выполните любой запрос.
  3. Подождите до 90 секунд — это интервал отправки.
  4. Откройте веб-приложение 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-токен содержит внутри себя адрес сервера, поэтому токен — единственное, что нужно вводить.

См. также