RedmineKit

Redmine Dashboards

Dashboards

Дашборды на основе уже имеющихся у вас сохранённых запросов — сетка с перетаскиванием из KPI-плиток, таблиц и пятнадцати типов диаграмм, с агрегацией в SQL и с учётом того, что разрешено видеть конкретному пользователю.

Несколько серверов: $399

Возврат в течение 5 рабочих дней12 месяцев обновленийИсходный код в комплекте
Плагин Redmine Dashboards: Дашборд Redmine Charts в Redmine 6: KPI-плитка с 10 000 задач, кольцевая диаграмма по проектам, столбцы задач по приоритету, кольцевая диаграмма по статусам и линейный график созданных задач по месяцам.
Живой дашборд KPI-плитки, кольцевые, столбчатые и линейные диаграммы на одном дашборде — каждая цифра агрегируется в SQL из собственных данных Redmine с учётом прав доступа.
Типы виджетов
23
Варианты диаграмм
15
Redmine
4 · 5 · 6 · 7
Базы данных
MySQL, MariaDB, PostgreSQL
Патчи ядра
Нет

Конструктор с перетаскиванием

Сетка, элементы которой можно менять в размере и переставлять, сохраняется автоматически по ходу работы. Располагайте KPI, диаграммы и таблицы так, чтобы дашборд рассказывал нужную историю, — без файлов разметки и перезагрузки страницы.

Пятнадцать типов диаграмм

Столбчатая, горизонтальная, с накоплением, линейная, многолинейная, с областями, круговая, кольцевая, радарная, полярная, шкала, воронка, тепловая карта, древовидная карта и кольцо прогресса — на Apache ECharts, в светлом и тёмном оформлении.

Ваши сохранённые запросы — наглядно

Укажите для виджета сохранённый запрос, и он унаследует его фильтр — включая настраиваемые поля, наблюдателей и подпроекты. Или превратите запрос в целый дашборд одним щелчком.

Агрегация в SQL

GROUP BY, COUNT, SUM и AVG выполняются в базе данных, поэтому сто тысяч задач подсчитываются, а не загружаются в память. Результаты кэшируются по пользователю, виджету и активным фильтрам.

С учётом прав зрителя

Каждое чтение начинается с Issue.visible(user), TimeEntry.visible(user) и Query.visible(user), поэтому ни одна диаграмма не посчитает итоги по проекту, в котором смотрящий не участвует.

Фильтры, обновление и детализация

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

Посмотрите, как это работает внутри Redmine

Все скриншоты здесь сделаны на стандартной установке Redmine 6 с плагином, просто помещённым в plugins/. Дашборды находятся под штатными шапкой и меню Redmine, потому что именно там они и работают.

Создание дашборда

Плагин Redmine Dashboards: Режим редактирования дашборда: у каждого виджета есть маркеры перетаскивания и углы для изменения размера, а макет сохраняется автоматически.
Режим редактирования Включите переключатель «Редактировать», и каждый виджет можно перетаскивать и менять в размере. Макет сохраняется сам по ходу работы.
Плагин Redmine Dashboards: Диалог добавления виджета: тип виджета, источник данных, необязательный сохранённый запрос, показатель и агрегация — всё выбирается из выпадающих списков.
Добавление виджета Выберите тип виджета, источник данных и при необходимости сохранённый запрос, затем показатель и агрегацию. Писать SQL никому не нужно.

Виджеты

Плагин Redmine Dashboards: Выбор типа виджета: пятнадцать вариантов ECharts, KPI и таблица, а также Markdown, заметки, HTML, iframe, лента активности и последние задачи.
23 типа виджетов Пятнадцать вариантов ECharts, а также KPI, таблица и шесть контентных виджетов — Markdown, заметки, HTML, iframe, лента активности и последние задачи.
Плагин Redmine Dashboards: Открытое меню виджета на дашборде с действиями «Обновить», «Настроить» и «Удалить».
Действия с виджетом Каждый виджет загружается независимо и имеет собственное меню — обновите одну диаграмму, не перезагружая весь дашборд.

Общий доступ и переключение

Плагин Redmine Dashboards: Диалог общего доступа к дашборду с видимостью «личный», «общий» и «публичный» и выбором ролей, групп и проектов.
Общий доступ Оставьте дашборд личным, откройте его определённым ролям, группам или проектам либо всем вошедшим пользователям — доступ определяется через участие в проектах Redmine.
Плагин Redmine Dashboards: Переключатель дашбордов на панели инструментов со списком всех доступных дашбордов и вариантами сделать дашборд основным, экспортировать в JSON или создать новый.
Переключение дашбордов Переключатель на панели инструментов показывает все доступные вам дашборды. Закрепите один как основной, экспортируйте его в JSON или создайте новый.

Запрос уже и есть отчёт

Здесь вас ни разу не попросят описывать данные повторно. Отфильтруйте список задач как обычно, сохраните его — и этот сохранённый запрос станет областью, которую агрегирует виджет, тем же отношением, которое Redmine использует для отображения самого списка.

Один сохранённый запрос — три способа попасть на дашборд
ШагЧто вы делаетеЧто получаете
1. Сохраните запросОтфильтруйте список задач — настраиваемые поля, наблюдатели, подпроекты — и нажмите «Сохранить»Именованный запрос, доступный тем, кому вы его открыли
2. Укажите его в виджетеВыберите этот запрос в диалоге виджетаИсточник данных и разумная группировка по умолчанию определяются автоматически
3. Или создайте весь дашбордНажмите «Из запроса»Дашборд из KPI-плиток и диаграмм, привязанных к запросу, за один запрос

Настройка через выпадающие списки, а не SQL

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

Плагин Redmine Dashboards: Диалог «Из запроса»: выбор сохранённого запроса Redmine для создания дашборда из KPI и диаграмм, привязанных к его фильтрам.
Из сохранённого запроса Выберите любой сохранённый запрос и получите готовый дашборд из KPI и диаграмм — статус, приоритет, исполнитель, динамика и таблица, — привязанный к его фильтрам.

Каждый виджет настраивается в одной форме

Любой виджет — KPI, столбчатая или кольцевая диаграмма — настраивается в одной и той же короткой форме: заголовок и тип, источник данных, необязательный сохранённый запрос для фильтров, показатель и группировка с Top-N. Смените тип — и форма подстроится.

Плагин Redmine Dashboards: Форма настройки виджета KPI: заголовок «Всего задач», источник данных «Задачи», сохранённый запрос, показатель «Количество задач», функция «count».
KPI-плитка Одно число: показатель и агрегация по сохранённому запросу.
Плагин Redmine Dashboards: Форма настройки столбчатой диаграммы: «Задачи по приоритету», группировка по приоритету, Top N 20.
Столбчатая диаграмма Группируйте по любому измерению, например по приоритету, и отсекайте длинный хвост с помощью Top-N.
Плагин Redmine Dashboards: Форма настройки кольцевой диаграммы: «Задачи по статусу», группировка по статусу.
Кольцевая диаграмма Те же поля, другой тип. При смене диаграммы настройки данных сохраняются.
Плагин Redmine Dashboards: Настройки плагина Redmine Charts: кэширование включено, срок жизни кэша 300 секунд, тема по умолчанию светлая, интервал автообновления 0.
Настройки плагина Кэширование, срок жизни кэша, тема по умолчанию и автообновление — на штатном экране настроек Redmine.

Одна страница настроек для администраторов

В разделе «Администрирование › Модули › Redmine Charts» задаются кэширование результатов для каждого пользователя, срок жизни кэша (5–86 400 секунд, по умолчанию 300), светлая или тёмная тема по умолчанию и интервал автообновления по умолчанию, где 0 отключает его. Это штатный экран настроек плагинов Redmine.

23 типа виджетов — и место для ваших

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

Каталог, который поставляется в комплекте
СемействоТипыНастраивается через
ДиаграммыСтолбчатая, горизонтальная столбчатая, столбчатая с накоплением, линейная, многолинейная, с областями, круговая, кольцевая, радарная, полярная, шкала, воронка, тепловая карта, древовидная карта, кольцо прогрессаИсточник, измерение, показатель, агрегация
KPI / числоОдно агрегированное значение с собственным фильтромcount · sum · avg · min · max
ТаблицаТаблица с постраничным выводом по тем же данным с учётом прав доступаВыбор столбцов и фильтры
КонтентMarkdown, заметки, HTML, iframe, лента активности, последние задачиПроизвольный текст или одна из штатных лент Redmine

Отрисовка на Apache ECharts

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

Детализация из любого сегмента

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

Глобальные фильтры и автообновление

Одна панель фильтров сразу меняет охват всех виджетов на дашборде, а интервал обновления для каждого дашборда поддерживает актуальность экрана в коридоре. Значение 0 отключает обновление.

Шаблоны и схемы

Сохраните дашборд как шаблон для повторного использования, создайте копию для каждой команды или экспортируйте его как JSON-схему и импортируйте в другой экземпляр — со staging на production без ручной пересборки.

Один плагин — дашборд для каждой команды

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

Плагин Redmine Dashboards: Полноразмерный дашборд: KPI, кольцевые диаграммы, столбцы по приоритетам, динамика по месяцам, загрузка по исполнителям и таблица задач с постраничным выводом.
Обзор портфеля KPI, кольцевые диаграммы, динамика, загрузка по исполнителям и таблица задач с постраничным выводом.
Плагин Redmine Dashboards: Дашборд «Назначенные мне задачи» с KPI, диаграммой с областями и кольцевой диаграммой по статусам.
Назначенные мне задачи Личный дашборд с диаграммой с областями и кольцевой диаграммой по статусам.
Плагин Redmine Dashboards: Дашборд «Созданные задачи» с KPI, кольцевой диаграммой по трекерам и столбцами по приоритетам.
Созданные задачи Распределение по трекерам, приоритетам и статусам — с первого взгляда.
Плагин Redmine Dashboards: Дашборд службы поддержки: KPI-плитки с общим числом задач и трудозатратами, кольцевая диаграмма по статусам, столбцы по приоритету, подтрекеру и модулю и линейный график созданных задач по месяцам.
Служба поддержки Обращения, трудозатраты, приоритеты, подтрекеры и загрузка по модулям за один период поддержки.
Плагин Redmine Dashboards: Годовой дашборд поддержки: KPI-плитки с общим числом задач и трудозатратами, кольцевая диаграмма по статусам, столбцы по приоритету, модулю и подтрекеру и линейный график созданных задач по месяцам.
Год поддержки в цифрах Объём обращений, внесённые часы, распределение по приоритетам и модулям и помесячная динамика.

Два встроенных источника — и ваши рядом с ними

Задачи и трудозатраты поставляются с заранее зарегистрированными измерениями и показателями, и оба источника работают через штатные области видимости Redmine. Источник, добавленный другим плагином, обрабатывается точно так же.

ИсточникИзмеренияПоказатели
ЗадачиСтатус, приоритет, трекер, проект, исполнитель, автор, категория, версия, дата создания, дата обновления, срок завершенияКоличество задач, оценка временных затрат, готовность
ТрудозатратыПроект, пользователь, деятельность, датаЧасы, количество записей
Ваш собственныйВсё, что вы зарегистрируетеВсё, что вы зарегистрируете

Расширение — это регистрация, а не патчи

Источник данных — это класс с именем, измерениями, показателями и base_scope с учётом прав доступа; тип виджета — это хеш. Зарегистрируйте любой из них в init.rb своего плагина через RedmineCharts.register_data_source или register_widget_type, и он сразу появится в интерфейсе настройки — с фильтрацией, кэшированием и детализацией. Для этого в самом плагине ничего не нужно редактировать.

Никто не агрегирует то, что не может прочитать

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

Сначала видимость, потом группировка

Issue.visible(user), TimeEntry.visible(user) и Query.visible(user) ограничивают выборку ещё до того, как будет подсчитана хотя бы одна строка. Итог по проекту, в котором вы не участвуете, не может появиться ни в одном виджете, потому что этих строк никогда не было в наборе.

Четыре детальных права доступа

Просмотр дашбордов, их создание, управление всеми дашбордами, управление шаблонами — каждое назначается по ролям. И всё это остаётся выключенным, пока кто-нибудь не включит модуль Charts & Dashboards для проекта.

Общий доступ через участие в проектах

Открывайте дашборд пользователям, группам, ролям или целым проектам. При каждом запросе viewable_by? и editable_by? заново вычисляются через штатное участие в проектах Redmine, а не через параллельный список доступа, который со временем расходится с реальностью.

Ничто не покидает сервер

Фронтенд обращается только к JSON API этого плагина на вашем собственном Redmine, используя уже имеющиеся сессию и CSRF-токен. Никаких внешних сервисов, проверок лицензии через интернет и телеметрии.

Рассчитан на большие экземпляры

Подсчёт ста тысяч задач не должен означать загрузку ста тысяч объектов. Здесь и не означает.

Что происходит при открытии дашборда
ЗадачаКак она решается
АгрегацияGROUP BY, COUNT, SUM и AVG выполняются в SQL — строки никогда не загружаются в память только ради подсчёта
Широкие измеренияСвёртка Top-N сохраняет небольшой объём ответа, когда у измерения тысячи значений
Повторные просмотрыРезультаты кэшируются через Rails.cache по пользователю, времени изменения виджета и активным фильтрам; срок жизни задаётся в настройках, Redis работает без доработок
Один медленный виджетВиджеты загружаются независимо, поэтому один тяжёлый запрос никогда не держит в заложниках весь дашборд
Отсутствующая JS-сборкаВ качестве запасного варианта Rails отрисовывает данные каждого виджета на сервере, поэтому страница деградирует, а не остаётся пустой

Переносимость по замыслу, а не случайно

Поддержка разных версий и баз данных заложена в архитектуру — миграции, хранение JSON и группировка по датам написаны с учётом всех различий.

АспектПоддерживаетсяКак
Redmine4.x, 5.x, 6.x, 7.xОбъявляет requires_redmine version_or_higher 4.0.0, без переопределений ядра, которые могли бы устареть
Rails5.2 → 8.0Миграции рассчитаны на базовый уровень 5.2, который понимают все релизы вплоть до 8.0
Ruby2.5+Соответствует минимальным требованиям Redmine 4
Базы данныхMySQL, MariaDB, PostgreSQLJSON хранится в обычных текстовых столбцах — DDL везде одинаковый — с сериализатором, который выбирает нужный формат для версии Rails
Группировка по датамДень, неделя, месяц, годГруппировка по переносимому CAST(col AS DATE) с последующей свёрткой в интервалы на Ruby — без SQL, специфичного для конкретной СУБД
Повторный запуск миграцийБезопасенМиграции написаны с защитой от сбоев, поэтому прерванное обновление можно выполнить повторно

Автоматизация с первого дня

Все endpoint'ы находятся под /redmine_charts/api, возвращают JSON и применяют ровно те же права доступа, что и интерфейс, — так что дашборды можно создавать из CI или генерировать для каждой команды.

МетодПутьЧто делает
GET/dashboardsВсе дашборды, видимые вызывающему
POST/dashboardsСоздать дашборд
GET/dashboards/:idПолучить дашборд с виджетами
PATCH/dashboards/:idИзменить название, макет или настройки
POST/dashboards/:id/duplicateСоздать копию вместе с виджетами
GET/dashboards/:id/exportЭкспортировать JSON-схему
POST/dashboards/importСоздать дашборд из схемы
POST/dashboards/:id/widgetsДобавить виджет
GET/widgets/:id/dataАгрегированные данные виджета с учётом прав доступа
GET/meta/data_sourcesИсточники, измерения, показатели и доступные вам сохранённые запросы

Что есть сегодня и что будет дальше

Пункты дорожной карты по замыслу лишь добавляют возможности — новые источники данных, типы виджетов и сервисы экспорта, — поэтому ни один из них не потребует что-либо мигрировать. Они перечислены как планы, а не как функции, чтобы вы принимали решение о покупке по тому, что есть в комплекте уже сегодня.

ВозможностьСтатус
Дашборды: создание, копирование, выбор основного, экспорт и импортДоступно
Сетка с перетаскиванием и изменением размера, с автосохранениемДоступно
KPI, таблица и полный набор диаграмм EChartsДоступно
Визуальная настройка виджетов без SQLДоступно
Использование сохранённых запросов и создание дашборда в один щелчокДоступно
Глобальные фильтры, обновляющие весь дашбордДоступно
Детализация: диаграмма → список задачДоступно
Агрегация в SQL и кэширование для каждого пользователя с учётом прав доступаДоступно
Общий доступ, шаблоны, светлая и тёмная темыДоступно
Поддержка разных версий и баз данных, серверный запасной вариантДоступно
Экспорт в PDF, PNG и ExcelЗапланировано
Фоновые задания для очень тяжёлых отчётовЗапланировано
Обновления в реальном времени через WebSocketЗапланировано
Снимки по расписанию с отправкой по электронной почтеЗапланировано
Режим киоска / настенного экранаЗапланировано
Конструктор отчётов на естественном языке с ИИЗапланировано
Виджеты календаря, диаграммы сгорания и сводной диаграммы ГантаЗапланировано

Цены

Один сервер

$199

Один экземпляр Redmine · неограниченное число пользователей · 12 месяцев обновлений.

Unlimited users12 months of updatesEmail support
Купить лицензию

Несколько серверов

$399

Неограниченное число серверов Redmine · неограниченное число пользователей · 12 месяцев обновлений.

Unlimited users12 months of updatesEmail support
Купить лицензию

Нужно решение для Redmine под ваши задачи?

Ищете функцию, которой нет в наших плагинах?

RedmineKit занимается разработкой плагинов Redmine на заказ, доработкой плагинов, автоматизацией рабочих процессов, интеграцией со сторонними системами и созданием решений под ваш бизнес.

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

Купить