From c182cdae845f68644546eb39fff8191cbc46decf Mon Sep 17 00:00:00 2001 From: Arne Teuke Date: Mon, 24 Feb 2025 15:23:20 +0100 Subject: [PATCH] add prom logic and variables --- manifests/params.pp | 13 +++++++++---- templates/config.alloy.erb | 27 ++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index 81f8cfd..b6a9754 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -6,6 +6,9 @@ # @param [string] ay_loki_url the url where alloy will send logs to. # @param [string] ay_loki_username the username to logon to loki # @param [string] ay_loki_userpass the password to logon to loki +# @param [boolean] ay_manage_loki whether to manage log forwarding to loki +# @param [boolean] ay_manage_prom whether to manage metric forwarding +# @param [string] ay_prom_url the url where alloy will send metrics # @summary Class contains all parameters for the cd_alloy module. ############################################################################## class cd_alloy::params ( @@ -14,13 +17,15 @@ $reqpackages = 'alloy', $pkg_ensure = 'latest', # loki +$ay_manage_loki = true, $ay_loki_url = 'https://loki.example.net/loki/api/v1/push', $ay_loki_username = '', $ay_loki_userpass = '', -$ay_log_targets = [ - '/var/log/messages', - '/var/log/secure', - ], +$ay_log_targets = ['/var/log/messages','/var/log/secure',], + +# prometheus +$ay_manage_prom = true, +$ay_prom_url = 'https://prometheus.example.net/api/v1/write', ) { diff --git a/templates/config.alloy.erb b/templates/config.alloy.erb index 29f1b1b..056809c 100644 --- a/templates/config.alloy.erb +++ b/templates/config.alloy.erb @@ -1,3 +1,4 @@ +<% if @ay_manage_loki == true -%> logging { level = "info" format = "logfmt" @@ -20,4 +21,28 @@ loki.write "loki" { password = "<%= @ay_loki_userpass %>" } } -} \ No newline at end of file +} +<% end -%> +<% if @ay_manage_prom == true -%> +// Metrics collection +prometheus.exporter.unix "system_metrics" { + include_exporter_metrics = true + disable_collectors = ["mdadm"] # Optional: adjust based on your needs +} + +prometheus.scrape "scrape_system" { + targets = prometheus.exporter.unix.system_metrics.targets + forward_to = [prometheus.remote_write.prometheus.receiver] + scrape_interval = "15s" # Adjust as needed +} + +prometheus.remote_write "prometheus" { + endpoint { + url = "<%= @ay_prom_url %>" + basic_auth { + username = "<%= @ay_loki_username %>" + password = "<%= @ay_loki_userpass %>" + } + } +} +<% end %> \ No newline at end of file