From a2f1636ed4c975334e2f21ec82e95b5b267ca6f0 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jun 2026 13:34:10 -0300 Subject: [PATCH 1/2] feat: forgejo monitoring --- .env.sample | 6 ++++++ compose.forgejo.yml | 10 ++++++++++ config.alloy.tmpl | 15 +++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 compose.forgejo.yml diff --git a/.env.sample b/.env.sample index b68f7c4..4c0907f 100644 --- a/.env.sample +++ b/.env.sample @@ -88,3 +88,9 @@ SECRET_BASIC_AUTH_VERSION=v1 #ALERT_BACKUP_NOT_SUCCESSFULL_ENABLED=true #ALERT_NODE_DISK_SPACE_ENABLED=true #ALERT_NODE_MEMORY_USAGE_ENABLED=true + +# Forgejo metrics +# SECRET_FORGEJO_METRICS_TOKEN_VERSION=v1 +# FORGEJO_METRICS_HOSTNAME= +# FORGEJO_INSECURE_SKIP_VERIFY=false +# COMPOSE_FILE="$COMPOSE_FILE:compose.forgejo.yml" diff --git a/compose.forgejo.yml b/compose.forgejo.yml new file mode 100644 index 0000000..9c418c7 --- /dev/null +++ b/compose.forgejo.yml @@ -0,0 +1,10 @@ +--- +version: "3.8" +services: + app: + secrets: + - forgejo_token +secrets: + forgejo_token: + external: true + name: ${STACK_NAME}_forgejo_token_${SECRET_FORGEJO_METRICS_TOKEN_VERSION} diff --git a/config.alloy.tmpl b/config.alloy.tmpl index 2083ce6..b65dff0 100644 --- a/config.alloy.tmpl +++ b/config.alloy.tmpl @@ -29,6 +29,21 @@ prometheus.scrape "default" { forward_to = [prometheus.remote_write.prometheus.receiver] } +{{ if ne (env "FORGEJO_METRICS_HOSTNAME") "" }} +prometheus.scrape "forgejo" { + bearer_token = "{{ secret "forgejo_token" }}" + job_name = "forgejo" + scheme = "https" + + targets = [{ __address__ = "{{ env "FORGEJO_METRICS_HOSTNAME" }}:443" }] + forward_to = [prometheus.remote_write.prometheus.receiver] + + tls_config { + insecure_skip_verify = {{ env "FORGEJO_INSECURE_SKIP_VERIFY" }} + } +} +{{ end }} + prometheus.remote_write "prometheus" { endpoint { url = "{{ env "PROMETHEUS_REMOTE_WRITE_URL" }}" -- 2.49.0 From bf8af312ebd6b9de33c219eac690d93a52dc4e7d Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jun 2026 17:48:13 -0300 Subject: [PATCH 2/2] fix: remove port, add sni when setting the port, alloy sends host:port as Host header and confuses nginx --- config.alloy.tmpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config.alloy.tmpl b/config.alloy.tmpl index b65dff0..cd80302 100644 --- a/config.alloy.tmpl +++ b/config.alloy.tmpl @@ -35,11 +35,12 @@ prometheus.scrape "forgejo" { job_name = "forgejo" scheme = "https" - targets = [{ __address__ = "{{ env "FORGEJO_METRICS_HOSTNAME" }}:443" }] + targets = [{ __address__ = "{{ env "FORGEJO_METRICS_HOSTNAME" }}" }] forward_to = [prometheus.remote_write.prometheus.receiver] tls_config { insecure_skip_verify = {{ env "FORGEJO_INSECURE_SKIP_VERIFY" }} + server_name = "{{ env "FORGEJO_METRICS_HOSTNAME" }}" } } {{ end }} -- 2.49.0