diff --git a/defaults/main.yml b/defaults/main.yml
index 5432ecade7a8fe56caf3dc395de0235c34aee4e9..b630f6cccb1605a6cce3cf897fcd49d5a830646b 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -44,3 +44,4 @@ gitlab:
     verify_ssl: 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'
     ca_path: ~ # eg '/etc/ssl/certs'
     ca_file: ~ # eg '/etc/ssl/certs/ca-certificates.crt'
+  prometheus_tsdb_retention_time: ~
diff --git a/templates/gitlab.rb.j2 b/templates/gitlab.rb.j2
index 576bda20b3a171a5dfaa14b1e61aedbf0b672666..79d85e7b272704915b6418a0a04e0b810463a1fe 100644
--- a/templates/gitlab.rb.j2
+++ b/templates/gitlab.rb.j2
@@ -1664,6 +1664,11 @@ registry_nginx['enable'] = false
 #   'storage.tsdb.retention.time' => "15d",
 #   'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml"
 # }
+{% if gitlab.prometheus_tsdb_retention_time %}
+prometheus['flags'] = {
+  'storage.tsdb.retention.time' => "{{ gitlab.prometheus_tsdb_retention_time }}"
+}
+{% endif %}
 
 ##! Advanced settings. Should be changed only if absolutely needed.
 # prometheus['listen_address'] = 'localhost:9090'