¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

¿Alguna vez te ha pasado que el servidor de Confluence se quedó sin espacio y no sabes quién está subiendo más archivos adjuntos?

Para saberlo, necesitas acceso a la base de datos PostgreSQL de Confluence.

Con una consulta SQL a la base de datos PostgreSQL, puedes obtener estadísticas útiles sobre Confluence.

Tamaño total de todos los archivos adjuntos en 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;

Salida (spacename reemplazado):

¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

Páginas con más versiones históricas en serie:

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

Salida:

¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

Los archivos adjuntos más grandes en tu instancia de 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;

Salida:

¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

Número de páginas en la papelera y tamaño total de las páginas en la papelera por espacio:


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;

Salida:

¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

Tamaño total de los archivos adjuntos subidos por cada usuario en todas las 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;

Salida:

¿Dónde se fue el espacio en el servidor de Confluence? O estadísticas de Confluence sobre adjuntos

P.D. Completa la publicación con consultas SQL útiles para Confluence

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster