Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

Já aconteceu de você ficar sem espaço no servidor do Confluence e não saber quem mais está carregando anexos?

Para descobrir isso, é necessário ter acesso ao banco de dados PostgreSQL do Confluence.

Com uma consulta SQL ao banco de dados PostgreSQL, é possível obter estatísticas úteis sobre o Confluence.

Tamanho total de todos os anexos no Confluence:

SELECT s.spaceid,
       s.spacename,
       sum(LONGVAL)
FROM contentproperties c
JOIN content co ON c.contentid = co.contentid
JOIN spaces s ON co.spaceid = s.spaceid
WHERE c.contentid IN
    (SELECT contentid
     FROM content
     WHERE contenttype = 'ATTACHMENT')
  AND c.propertyname = 'FILESIZE'
GROUP BY s.spaceid
ORDER BY SUM DESC
LIMIT 5;

Saída (spacename substituído):

Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

Páginas com o maior número de versões históricas em queda:

SELECT title,
       MAX(VERSION)
FROM content
WHERE contenttype = 'PAGE'
GROUP BY title
ORDER BY 2 DESC
LIMIT 5;

Conclusão:

Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

Os maiores arquivos de anexos na sua instância do Confluence

SELECT DISTINCT c.contentid,
                c.title AS attachmentTitle,
                u.username AS uploadedBy,
                co.title AS pageTitle,
                cn.longval AS bytes
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
WHERE c.contenttype = 'ATTACHMENT'
  AND cn.longval IS NOT NULL
ORDER BY cn.longval DESC
LIMIT 5;

Conclusão:

Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

Número de páginas na lixeira e o tamanho total das páginas na lixeira por espaço:


SELECT Count(content.contentid) AS number_of_trashed_pages,
       Pg_size_pretty(SUM(Pg_column_size(bodycontent.BODY))) AS trash_total_size,
       spaces.spacename AS space_name
FROM bodycontent
INNER JOIN content ON (content.contentid = bodycontent.contentid)
INNER JOIN spaces ON (content.spaceid = spaces.spaceid)
WHERE bodycontent.contentid IN
    (SELECT contentid
     FROM content
     WHERE content_status = 'deleted'
       AND contenttype = 'PAGE')
GROUP BY space_name
ORDER BY trash_total_size
LIMIT 5;

Conclusão:

Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

Tamanho total dos anexos carregados por cada usuário em todas as páginas

SELECT u.lower_username,
       sum(cp.longval) AS "size"
FROM content c1
JOIN content c2 ON c1.contentid = c2.pageid
JOIN user_mapping u ON c1.creator=u.user_key
JOIN contentproperties cp ON c2.contentid = cp.contentid
WHERE c2.contenttype='ATTACHMENT'
GROUP BY u.lower_username
ORDER BY sum(cp.longval) DESC
LIMIT 5;

Conclusão:

Onde foi parar o espaço no servidor Confluence? Ou estatísticas do Confluence sobre anexos

P.S. Adicione consultas SQL úteis para o Confluence ao post.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster