Блог публикация

Кастомные скрипты для проверки состояния и эффективности использования Confluence

Главная    —    Блог    —    Кастомные скрипты для проверки состояния и эффективности использования Confluence
Aleks Yenin
Posted by Aleks Yenin
24 июля, 2020

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

Как повысить повысить скорость работы приложения и процессов без дополнительных инвестиций в сервера? Для начала — оценить его текущее состояние. Мы рады поделиться скриптами по проверке различных параметров для принятия решений об оптимизации системы. 

Скрипты работают с базой данных PostgreSQL, она самая популярная для Confluence. Их можно легко адаптировать и под другие базы данных — Oracle, MySQL, MS SQL. Дайте нам знать, если понадобится помощь.

7 готовых скриптов для Confluence:

25 biggest attachments

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

SELECT DISTINCT c.title AS attachmentTitle, u.username AS uploadedBy, s.spacekey, co.title AS pageTitle, cn.longval/1024/1024 as mbytes
FROM CONTENT AS c
JOIN USER_MAPPING AS u
ON u.user_key = c.creator
JOIN CONTENT AS co
ON c.pageid = co.contentid
JOIN CONTENTPROPERTIES AS cn
ON cn.contentid = c.contentid
JOIN SPACES AS s
ON c.spaceid = s.spaceid
WHERE c.contenttype = 'ATTACHMENT'
AND cn.longval IS NOT NULL
ORDER BY mbytes DESC LIMIT 25;

Inactive users

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

SELECT cu.user_name, cu.first_name, cu.last_name, cu.created_date, cu.updated_date, cd.directory_name
FROM cwd_user cu
JOIN cwd_directory cd ON cu.directory_id = cd.id
WHERE cu.active = 'F';

Users with old last login data

Проверяем пользователей, которые давно не заходили в Confluence, решаем, нужно ли тратить на них лицензии.

SELECT cu.user_name, cu.first_name, cu.last_name, cu.email_address,
li.successdate, li.PREVsuccessdate
FROM logininfo li
JOIN user_mapping um ON um.user_key = li.username
JOIN cwd_user cu ON um.username = cu.user_name
JOIN cwd_directory cd ON cu.directory_id = cd.id
where li.successdate < '2019-10-01'
ORDER BY successdate;

Spaces with large volume of attachments

Ищем спейсы с самым большим количеством атачментов (прикрепленных файлов), изучаем, что они из себя представляют, оптимизируем.

select
s.spacekey,
sum(LONGVAL/1024/1024)
FROM
contentproperties cp
JOIN content c
ON
cp.contentid = c.contentid
JOIN spaces s
ON
s.spaceid = c.spaceid
WHERE
c.contenttype = 'ATTACHMENT'
AND
cp.propertyname = 'FILESIZE'
GROUP BY
s.spacekey
oRDER BY sum(LONGVAL) desc
;

Largest pages

Изучаем самые объемные страницы, оптимизируем.

SELECT s.spacekey, c.title, LENGTH(bc.body)
FROM BODYCONTENT bc
JOIN CONTENT c ON bc.contentid = c.contentid
JOIN SPACES s ON c.spaceid = s.spaceid
WHERE c.prevver IS NULL AND c.contenttype IN ('BLOGPOST','PAGE')
ORDER BY LENGTH(bc.body) DESC LIMIT 25;

Pages with the biggest sum of version sizes

Находим страницы с самым большим количеством версией. Иногда это могут быть десятки и сотни тысяч версий. Избавляемся от избыточности.

SELECT s.spacekey, c.title, subq.sum_size_in_bytes / 1024/1024
FROM CONTENT c
JOIN SPACES s ON c.spaceid = s.spaceid
JOIN (
SELECT c2.prevver, SUM(LENGTH(bc.body)) AS sum_size_in_bytes
FROM BODYCONTENT bc
JOIN CONTENT c2 ON bc.contentid = c2.contentid
WHERE c2.prevver IS NOT NULL AND c2.contenttype IN ('BLOGPOST','PAGE')
GROUP BY c2.prevver
ORDER BY SUM(LENGTH(bc.body)) DESC LIMIT 25
) AS subq ON c.contentid = subq.prevver
ORDER BY subq.sum_size_in_bytes DESC;

All about calendars

Календари — это сложная и ресурсозатратная структура в Confluence. Анализируем, что с ними происходит. Иногда бывает, что существует сотни забытых календарей. Избавляемся от них.

SELECT um.lower_username as creator, tc."NAME" as calendar_name, to_timestamp(CAST(tc."CREATED" AS bigint)/1000) as creation_date
FROM "AO_950DC3_TC_SUBCALS" tc
JOIN user_mapping um ON um.user_key = tc."CREATOR"
WHERE tc."PARENT_ID" IS NULL
ORDER BY creator;

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

Не нашли подходящего решения? Запланируйте бесплатную консультацию, и мы обсудим ваш проект. 

Другие услуги Polontech

Услуги

Миграция на Atlassian

На сервер. На облако. На Data center. С сервера на сервер. С облака на облако. На Atlassian
Перейти
Услуги

Настройка продуктов Atlassian

Jira Software. Confluence. Jira Service Desk. Atlassian addons. Custom scripting.
Перейти
Услуги

Обучение

Быстрый старт. Agile. ITSM. Atlassian.
Перейти
Услуги

Поддержка

Техподдержка 24/7. Технический аудит. Обновление. Защита данных. Управляемые услуги
Перейти
Услуги

Установка Atlassian

Выбрать правильные продукты. Получить максимум от Atlassian. Установить Atlassian в облако или на сервер
Перейти
Услуги

Консалтинг

Аудит. Приложения и аддоны Atlassian. Agile. ITIL/ITSM. Управление пользователями. Взаимодействие между командами. Управление IT-ресурсами.
Перейти
Услуги

Хостинг

Миграция в облако Atlassian. Частное облако. Облако Polontech.
Перейти
Услуги

Управление портфолио

Аудит. Разработка. Запуск. Поддержка.
Перейти
Услуги

Управление лицензиями

Покупаем. Обновляем. Управляем лицензиями.
Перейти
Услуги

CI/CD + DevOps

Непрерывная интеграция. Автоматизация тестирования. Тестирование DevOps. Agile инструменты
go to page

Напишите нам в этой форме