# Configura el tamaño de retención de almacenamiento en Prometheus con GitLab y evita llenar el disco

- Link: https://binariocero.com/linux/configura-el-tamano-de-retencion-de-almacenamiento-en-prometheus-con-gitlab-y-evita-llenar-el-disco
- Published: 2025-06-28T09:16:40+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Prometheus, el sistema de monitorización y alertas de código abierto, permite ajustar
el tiempo y tamaño de retención de sus datos locales mediante flags personalizados.
Esta capacidad es especialmente útil para optimizar el uso del almacenamiento en
entornos con recursos limitados o requisitos específicos de retención de datos.

### Parámetros de retención de almacenamiento en Prometheus

Prometheus dispone de dos flags clave para configurar la retención de datos en disco:

 * **`storage.tsdb.retention.time`**: define el tiempo máximo que se conservarán
   los datos. El valor predeterminado es 15 días. Si se establece explícitamente,
   anula cualquier configuración anterior de `storage.tsdb.retention`.
 * **`storage.tsdb.retention.size`** _(experimental)_: especifica el tamaño máximo(
   en bytes) de los bloques de almacenamiento que se deben conservar. Los datos 
   más antiguos se eliminan primero cuando se alcanza este límite. Por defecto está
   deshabilitado (`0`). Soporta unidades como B, KB, MB, GB, TB, PB, EB (por ejemplo,`
   512MB`).

### ¿Por qué es importante configurar esto?

Prometheus almacena sus datos en el directorio:

    ```wp-block-preformatted
    /var/opt/gitlab/prometheus
    ```

Si este directorio se llena, Prometheus puede dejar de funcionar correctamente, 
afectando a la recolección de métricas y alertas. Para evitar que esto ocurra, **
es fundamental establecer límites tanto por tiempo como por tamaño** en la retención
de datos.

### Cómo configurar la retención en GitLab

Para personalizar estos parámetros en una instancia de GitLab que utiliza Prometheus,
sigue los siguientes pasos:

 1. **Edita el archivo de configuración**:
    Abre `/etc/gitlab/gitlab.rb` y agrega o 
    modifica la sección correspondiente a Prometheus con los parámetros deseados: `
    prometheus['flags'] = { ``'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",``'
    storage.tsdb.retention.time' => "7d", ``'storage.tsdb.retention.size' => "2GB",``'
    config.file' => "/var/opt/gitlab/prometheus/prometheus.yml" ``}`
 2. **Reconfigura GitLab**:
    Aplica los cambios ejecutando: `sudo gitlab-ctl reconfigure`

### Otra solución alternativa

Si prefieres una configuración más simple y directa, también puedes establecer solo
el parámetro de retención por tiempo (por ejemplo, 1 día) sin necesidad de definir
ruta ni archivo de configuración, como en el siguiente ejemplo:

    ```wp-block-preformatted
    prometheus['flags'] = {#   'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",   'storage.tsdb.retention.time' => "1d",#   'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml"}
    ```

Esta configuración también es válida y funcional. Establecer un tiempo de retención
más corto puede ser una solución eficaz para evitar que el disco se llene, especialmente
en entornos donde se puede tolerar una pérdida frecuente de métricas históricas.

### Conclusión

Si el disco donde Prometheus almacena sus datos comienza a llenarse (`/var/opt/gitlab/
prometheus`), existen dos soluciones efectivas:

 * **Limitar el tiempo y tamaño de retención de datos** mediante las flags `storage.
   tsdb.retention.time` y `storage.tsdb.retention.size`.
 * **Reducir exclusivamente el tiempo de retención**, como en el ejemplo anterior,
   para minimizar el uso de disco sin mayor complejidad.

Ambas soluciones ayudan a mantener el sistema de monitorización funcionando correctamente
y a evitar interrupciones por falta de espacio.

> **Nota:** El parámetro `storage.tsdb.retention.size` es experimental y podría 
> modificarse en futuras versiones de Prometheus. Se recomienda revisar la documentación
> oficial al actualizar.
