From d9aa05a4b5ae0db9f2eda61b667003b348fa5d7b Mon Sep 17 00:00:00 2001 From: f Date: Thu, 28 May 2026 21:00:10 -0300 Subject: [PATCH] feat: send metrics to prometheus --- .env.sample | 1 + abra.sh | 2 +- compose.yml | 6 ++++++ config.alloy.tmpl | 23 +++++++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/.env.sample b/.env.sample index 11f6563..3850f0f 100644 --- a/.env.sample +++ b/.env.sample @@ -19,6 +19,7 @@ ENABLE_BACKUPS=true # ## Prometheus # COMPOSE_FILE="$COMPOSE_FILE:compose.prometheus.yml" +# PROMETHEUS_REMOTE_WRITE_URL=https://prometheus.$DOMAIN/api/v1/write # PROMETHEUS_RETENTION_TIME=1y # ## Prometheus Pushgateway diff --git a/abra.sh b/abra.sh index 6ba5581..e99c190 100644 --- a/abra.sh +++ b/abra.sh @@ -12,7 +12,7 @@ export PROMETHEUS_YML_VERSION=v2 export MATRIX_ALERTMANAGER_CONFIG_VERSION=e export MATRIX_ALERTMANAGER_ENTRYPOINT_VERSION=a export GRAFANA_ALERTS_NODE_VERSION=v1c -export CONFIG_ALLOY_VERSION=v2 +export CONFIG_ALLOY_VERSION=v4 # creates a default prometheus scrape config for a given node add_node(){ diff --git a/compose.yml b/compose.yml index 5f03571..5cbc951 100644 --- a/compose.yml +++ b/compose.yml @@ -16,6 +16,8 @@ services: - "/etc/alloy/config.alloy" networks: - internal + secrets: + - basic_auth deploy: restart_policy: condition: on-failure @@ -34,3 +36,7 @@ networks: internal: volumes: alloy-data: +secrets: + basic_auth: + external: true + name: ${STACK_NAME}_basic_auth_${SECRET_BASIC_AUTH_VERSION} diff --git a/config.alloy.tmpl b/config.alloy.tmpl index 4b4b921..1b09113 100644 --- a/config.alloy.tmpl +++ b/config.alloy.tmpl @@ -5,3 +5,26 @@ logging { prometheus.exporter.cadvisor "docker" { } + +prometheus.scrape "default" { + targets = array.concat( + [{ + job = "alloy", + __address__ = "127.0.0.1:12345", + }], + prometheus.exporter.cadvisor.docker.targets, + ) + + forward_to = [prometheus.remote_write.prometheus.receiver] +} + +prometheus.remote_write "prometheus" { + endpoint { + url = "{{ env "PROMETHEUS_REMOTE_WRITE_URL" }}" + + basic_auth { + username = "admin" + password = "{{ secret "basic_auth" }}" + } + } +}