From 1ccafbf407eb934a3e3d30ca769f8da6f04bc9e9 Mon Sep 17 00:00:00 2001
From: gabo <gabo@crans.org>
Date: Sat, 11 May 2024 18:40:58 +0200
Subject: [PATCH 1/3] [monitoring] ajout des variables de lancements promotheus

---
 roles/prometheus/tasks/main.yml               |  7 ++
 .../templates/prometheus/default.j2           | 64 +++++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 roles/prometheus/templates/prometheus/default.j2

diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml
index 0208135c..3445d4b5 100644
--- a/roles/prometheus/tasks/main.yml
+++ b/roles/prometheus/tasks/main.yml
@@ -21,6 +21,13 @@
     mode: 0644
   notify: Restart Prometheus
 
+- name: Configure Prometheus default
+  template:
+    src: prometheus/default.j2
+    dest: /etc/default/prometheus
+    mode: 0644
+  notify: Restart Prometheus
+
 # We don't need to restart Prometheus when updating nodes
 - name: Configure Prometheus targets
   copy:
diff --git a/roles/prometheus/templates/prometheus/default.j2 b/roles/prometheus/templates/prometheus/default.j2
new file mode 100644
index 00000000..7c885e2d
--- /dev/null
+++ b/roles/prometheus/templates/prometheus/default.j2
@@ -0,0 +1,64 @@
+{{ ansible_header | comment }}
+
+# Set the command-line arguments to pass to the server.
+
+ARGS="--storage.tsdb.retention.time={{ prometheus_retention_time }} \
+--web.enable-admin-api \
+--storage.tsdb.retention.size={{ prometheus_retention_size }}"
+# voir prometheus --help pour plus d’option
+
+
+# Prometheus supports the following options:
+#  --config.file="/etc/prometheus/prometheus.yml"
+#                             Prometheus configuration file path.
+#  --web.listen-address="0.0.0.0:9090"
+#                             Address to listen on for UI, API, and telemetry.
+#  --web.read-timeout=5m      Maximum duration before timing out read of the
+#                             request, and closing idle connections.
+#  --web.max-connections=512  Maximum number of simultaneous connections.
+#  --web.external-url=<URL>   The URL under which Prometheus is externally
+#                             reachable (for example, if Prometheus is served
+#                             via a reverse proxy). Used for generating
+#                             relative and absolute links back to Prometheus
+#                             itself. If the URL has a path portion, it will
+#                             be used to prefix all HTTP endpoints served by
+#                             Prometheus. If omitted, relevant URL components
+#                             will be derived automatically.
+#  --web.route-prefix=<path>  Prefix for the internal routes of web endpoints.
+#                             Defaults to path of --web.external-url.
+#  --web.local-assets="/usr/share/prometheus/web/"
+#                             Path to static asset/templates directory.
+#  --web.user-assets=<path>   Path to static asset directory, available at
+#                             /user.
+#  --web.enable-lifecycle     Enable shutdown and reload via HTTP request.
+#  --web.enable-admin-api     Enables API endpoints for admin control actions.
+#  --web.console.templates="/etc/prometheus/consoles"
+#                             Path to the console template directory,
+#                             available at /consoles.
+#  --web.console.libraries="/etc/prometheus/console_libraries"
+#                             Path to the console library directory.
+#  --storage.tsdb.path="/var/lib/prometheus/metrics2/"
+#                             Base path for metrics storage.
+#  --storage.tsdb.min-block-duration=2h
+#                             Minimum duration of a data block before being
+#                             persisted.
+#  --storage.tsdb.max-block-duration=<duration>
+#                             Maximum duration compacted blocks may span.
+#                             (Defaults to 10% of the retention period)
+#  --storage.tsdb.retention=15d
+#                             How long to retain samples in the storage.
+#  --storage.tsdb.use-lockfile
+#                             Create a lockfile in data directory.
+#  --alertmanager.notification-queue-capacity=10000
+#                             The capacity of the queue for pending alert
+#                             manager notifications.
+#  --alertmanager.timeout=10s
+#                             Timeout for sending alerts to Alertmanager.
+#  --query.lookback-delta=5m  The delta difference allowed for retrieving
+#                             metrics during expression evaluations.
+#  --query.timeout=2m         Maximum time a query may take before being
+#                             aborted.
+#  --query.max-concurrency=20
+#                             Maximum number of queries executed concurrently.
+#  --log.level=info           Only log messages with the given severity or
+#                             above. One of: [debug, info, warn, error]
-- 
GitLab


From ca70e1284db6896a16e551ff35f22e3f72777634 Mon Sep 17 00:00:00 2001
From: gabo <gabo@crans.org>
Date: Sat, 18 May 2024 14:39:07 +0200
Subject: [PATCH 2/3]  [monitoring] ajout des variable retention_size &
 retention_time au host_var fyre

---
 host_vars/fyre.adm.crans.org.yml                 | 3 +++
 roles/prometheus/templates/prometheus/default.j2 | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/host_vars/fyre.adm.crans.org.yml b/host_vars/fyre.adm.crans.org.yml
index 21ad35fc..535dd4a5 100644
--- a/host_vars/fyre.adm.crans.org.yml
+++ b/host_vars/fyre.adm.crans.org.yml
@@ -250,3 +250,6 @@ loc_prometheus:
             target_label: instance
           - replacement: "{{ query('ldap', 'ip4', 'helloworld', 'adm') }}:9116"
             target_label: __address__
+  tsdb:
+    retention_time: "180d"
+    retention_size: "200GB"
diff --git a/roles/prometheus/templates/prometheus/default.j2 b/roles/prometheus/templates/prometheus/default.j2
index 7c885e2d..43814263 100644
--- a/roles/prometheus/templates/prometheus/default.j2
+++ b/roles/prometheus/templates/prometheus/default.j2
@@ -2,9 +2,9 @@
 
 # Set the command-line arguments to pass to the server.
 
-ARGS="--storage.tsdb.retention.time={{ prometheus_retention_time }} \
+ARGS="--storage.tsdb.retention.time={{ prometheus.tsdb.retention_time }} \ #prometheus.tsdb.retention_time
 --web.enable-admin-api \
---storage.tsdb.retention.size={{ prometheus_retention_size }}"
+--storage.tsdb.retention.size={{ prometheus.tsdb.retention_size }}"  # prometheus.tsdb.retention_size
 # voir prometheus --help pour plus d’option
 
 
-- 
GitLab


From 885a21b3c662f0df6af2a9c94a370fb05a3d2692 Mon Sep 17 00:00:00 2001
From: gabo <gabo@crans.org>
Date: Sat, 18 May 2024 16:45:14 +0200
Subject: [PATCH 3/3] [monitoring] correction templates

---
 roles/prometheus/templates/prometheus/default.j2 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/roles/prometheus/templates/prometheus/default.j2 b/roles/prometheus/templates/prometheus/default.j2
index 43814263..1c506e13 100644
--- a/roles/prometheus/templates/prometheus/default.j2
+++ b/roles/prometheus/templates/prometheus/default.j2
@@ -2,9 +2,9 @@
 
 # Set the command-line arguments to pass to the server.
 
-ARGS="--storage.tsdb.retention.time={{ prometheus.tsdb.retention_time }} \ #prometheus.tsdb.retention_time
+ARGS="--storage.tsdb.retention.time={{ prometheus.tsdb.retention_time }} \
 --web.enable-admin-api \
---storage.tsdb.retention.size={{ prometheus.tsdb.retention_size }}"  # prometheus.tsdb.retention_size
+--storage.tsdb.retention.size={{ prometheus.tsdb.retention_size }}"
 # voir prometheus --help pour plus d’option
 
 
-- 
GitLab